User Tag List

Результаты опроса: Для какого компьютера и конструктива делать видеокарту "METEOR" ?

Голосовавшие
46. Вы ещё не участвовали в этом опросе
  • "ZXM-PHOENIX" с шиной ZX-BUS без корпуса

    18 39.13%
  • "ЛЕНИНГРАД" с шиной IDC-40 в корпусе

    8 17.39%
  • МОДУЛЬНЫЙ КОМПЬЮТЕР "CHELYABINSK" с шиной ZST-BUS без корпуса

    2 4.35%
  • ОРИГИНАЛЬНЫЙ "ZX SPECTRUM" с шиной ZX-EDGE в корпусе

    9 19.57%
  • "ZX-EVO" с урезанной шиной ZX-BUS без корпуса

    23 50.00%
Опрос с выбором нескольких вариантов ответа.
Страница 24 из 109 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя
Показано с 231 по 240 из 1084

Тема: Быстрая видеокарта "METEOR-2013"

  1. #231

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sayman, zst сейчас предлагает кадравый буфер, второй вариант предалагают, как в приставках, нет кадрового буфера, изображение формируется вслед за телевизионным лучем. По мере надобсности читаются данные для тайловых плоскостей, спрайтовых, в конце концов растровых.

    В NES SEGA изображение мира формируется находу

    ---------- Post added at 14:45 ---------- Previous post was at 14:43 ----------

    Про прозрачноть, в битплановых режимах она достается бесплатно, правильной настройкой палитры, есть конечно ограничения, полоценно прозрачный можно сделать 1-2 слоя, но в конце концов это видеокарта для 8 битного компьютера а не для PC

  2. #232

    Регистрация
    21.12.2005
    Адрес
    Kyiv/Ukraine
    Сообщений
    415
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    как осуществлять смешивание цветов ?
    Из инета
    http://stackoverflow.com/a/746937

    Стандартная формула смешивания
    out = alpha * new + (1 - alpha) * old

    out, new, old - RGB цвета
    alpha - число с павающей точкой в диапазоне [0,1]
    V6Z80P - Back for Good

  3. #233

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Если карта позволяет выводить на экран максимум 256 цветов, то хоть тут завыводись палитры, всё-ровно 256 цветов и всё.
    Теперь в буфере экрана уже не 8 битов на точку (1 байт), а 15 битов (2 байта), что позволит иметь на экране до 32*32*32=32768 оттенков. У спрайтов по 4 и по 8 битов на точку тоже палитры 15 битные. То есть в палитрах выбраны любые цвета из 32768 возможных.

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Спрайты выводятся во время формирования изображения, отсюда ответ, никакой фон под ними сохранять и востанавливать не надо
    К сожалению не всегда получится выводить фон на лету. Иногда лучше нарисовать фон в буфере экрана, при выводе спрайтов сохранять фон в буфере для сохранения фона, а потом восстанавливать для печати спрайтов движущихся объектов на новом месте.

    Цитата Сообщение от Eagle Посмотреть сообщение
    Полупрозрачность надо задавать не на точку спрайта, а указывать на весь спрайт.

    Зачем сохранять фон? Он и так должен каждый раз выводится при отрисовке экрана, в пиксель попадает либо фон, либо спрайт. Стоит предусмотреть приоритет отрисовки спрайтов при их наложении друг на друга.
    Я не планирую копировать видеорежимы SEGA, DANDY, АТМ и др. Я хочу сделать удобные для программирования и быстрые видеорежимы. В моем проекте видеокарты есть буфер экрана. Каждой точке соответствует 15 битов. При выводе на телевизор или монитор ПЛИС читает из буфера экрана последовательно по точке (15 битов) и выводит их на три ЦАПа RGB по 5 битов.

    Перед этим нужно сформировать картинку в буфере экрана. Для этого каждый кадр заново (для простых движущихся фонов ) или меняя изображение в отдельных частях экрана (для статических фонов) нужно напечатать спрайты в буфер экрана. То есть считать из буфера спрайтов и записать в буфер экрана. Этим конечно занимается видеокарта. Z80 передает только изменяемые параметры спрайта из параметров: тип спрайта (4 или 8 бит на точку), размер, координаты на экране, номер палитры, номер спрайта. Можно накладывать спрайты рядом или друг на друга. Возможно использовать прозрачный цвет. Вот результат этих наложений и выводится потом из буфера экрана. Никаких слоев или аппаратных спрайтов нет.

    Цитата Сообщение от Valen Посмотреть сообщение
    Поддерживаю, 15 битовость ОЗУ экрана и 4-битные спрайты (с палитрой) - хорошая идея.

    Но, как правильно тут уже было замечено, если у нас одна палитра 256 цветов, то и мы будет ею ограничены в 256 возможных цветов.
    Этого ограничения уже нет.
    Предлагаю простое решение:
    перед игрой:
    - в ОЗУ видео карты вливаем нужное количество палитр, (хоть 10) и спрайты к этим палитрам
    в игре:
    - даём команду видео-карте "загрузить палитру в чип", ПЛИС загружает палитру к себе в набортную память
    (параметр команды: адрес палитры в видео-памяти откуда загружать)
    - отображаем все спрайты, которые юзают 1 палитру
    - опять посылаем видюхе команду "загрузить палитру в чип", ПЛИС загрузит себе на борт уже вторую палитру
    - отображаем все спрайты, которые юзают 2 палитру
    и т.д. хоть 10 палитр

    Т.е. можем любую палитру "акивировать" в любое время.
    Я так и предлагал. Под спрайты по 4 бита на точку можно сделать до 256 разных палитр. И все они по 32K цветные. Размер каждой 32 байта.

    Цитата Сообщение от Valen Посмотреть сообщение
    Кстати тут действительно, возможно проще будет перерисовать весь экран, чем иметь гемор с сохранением задника спрайта.
    Потому как ПЛИС будет тактироваться на довольно быстрой частоте.
    Не всегда можно быстро перестроить экран. Иногда для этого нужно больше одного кадра. Например, в игре целая галактика и данные хранятся в упакованном виде и распаковка ведется прямо на экран. Для этих случаев лучше сохранять фон под спрайтами.

    Я придумал такой метод:

    Выделяем место в памяти видеокарты под буфер для сохранения фона под спрайтами. Вначале указатель в буфере установлен на начало. Там записан 0 - буфер пуст. При печати нужно выбрать одну из двух команд - печать спрайта с сохранением фона и печать спрайта без сохранения фона. Для первого варианта копируем из буфера экрана в буфер для сохранения фона прямоугольную область начиная с левого верхнего угла прямоугольника размером со спрайт и так до правого нижнего угла. Затем сохраняем в буфер размер спрайта и координаты правого нижнего угла прямоугольника под спрайтом. После этого добавляем в буфер для сохранения фона число 2 (значит там лежит прямоугольник). Для отдельных точек зарезервируем число 1. И так печатаем все спрайты, добавляя после данных параметры и 2.

    Когда приходит пора перестроить экран для передвижения спрайтов, даем команду ВОССТАНОВИТЬ ФОН. Видеокарта начинает брать данные с конца буфера для сохранения фона. Там лежит 2 - значит надо восстановить прямоугольную область. Читаем из буфера координаты правого нижнего угла прямоугольника на экране, размеры прямоугольника и последовательно восстанавливаем фон, копируя по точке из буфера для сохранения фона в буфер экрана. И так пока после данных читается 1 или 2. Если 0 - конец работы, буфер восстановлен.

    Цитата Сообщение от Valen Посмотреть сообщение
    Из инета
    http://stackoverflow.com/a/746937

    Стандартная формула смешивания
    out = alpha * new + (1 - alpha) * old

    out, new, old - RGB цвета
    alpha - число с павающей точкой в диапазоне [0,1]
    Спасибо, пока отложим для более важных команд.
    Последний раз редактировалось zx-kit; 16.06.2015 в 18:00.
    "L-256"

  4. #234

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Я не планирую копировать видеорежимы SEGA, DANDY, АТМ и др. Я хочу сделать удобные для программирования и быстрые видеорежимы.
    Тогда вообще не понятно в чем удобство.
    Если будет все копироваться в кадровый буфер, нужен просто модуль для блочного копирования памяти, возня с палитрой будет совсем лишняя, по 4 бита + палитра, зачем оно нужно? если это аппратно все будет копироваться и очень быстро?

    Сохранение фонов итд, опять же ничего не надо выдумывать, все решается модулем блочного копирования. Его просто нужно обучить работать с прозрачностью, все. Вся карта
    Такая акселерация была в первых видекартах PC с аппартными функциями ускорения, можно даже в VESA VBE посмотреть набор функций

  5. #235

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zst, ты меня в конец запутал. в первопосте сказано, что:
    320х240 точек, 255 цветов с палитрой + «прозрачный» цвет.
    т.е. физическая возможность отобразить всего 256 цветов из палитры 32768 цветов. теперь ты говоришь про гору палитр для той же горы спрайтов, что наводит на мысль о том, а каковы в действительности тогда хар-ки девайса? тут или всего 256цветов (хоть 1000 спрайтов и палитр, но только 256 цветов подлежат выводу) или реально у карты экран 15 бит и можно спокойно кидать 32к картинки. если начинается делёжка на палтиры в рамках 8бит на точку, тогда уже вводятся планы. иначе я не понимаю, что за параметр такой, "255 цветов с палитрой + «прозрачный» цвет".
    собственно говоря, а почему бы не обратиться к алгоритмам современных карт и местами, где это выглядит жирно и дорого, упростить? можно ещё 3д прикрутить, тогда я в первых рядах на заказ))))
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  6. #236

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Тогда вообще не понятно в чем удобство.
    Цель - устранение недостатков стандартной видеокарты ZX SPECTRUM. При этом избавить программиста от расчета адресов по координатам, ускорить копирование на экран, ускорить сохранение и восстановление фона под спрайтами, устранить клешинг атрибутов, увеличить количество цветов. И мы уже близки к технически реализуемому варианту.
    Если будет все копироваться в кадровый буфер, нужен просто модуль для блочного копирования памяти, возня с палитрой будет совсем лишняя, по 4 бита + палитра, зачем оно нужно? если это аппратно все будет копироваться и очень быстро?

    Сохранение фонов итд, опять же ничего не надо выдумывать, все решается модулем блочного копирования. Его просто нужно обучить работать с прозрачностью, все. Вся карта
    Такая акселерация была в первых видекартах PC с аппартными функциями ускорения, можно даже в VESA VBE посмотреть набор функций
    Отлично! Такой метод нам подойдет. Долой палитру. Или использовать ее при загрузке спрайтов в видеокарту. Осталось решить, какого объема и типа озу использовать.

    ---------- Post added at 21:12 ---------- Previous post was at 21:09 ----------

    Цитата Сообщение от Sayman Посмотреть сообщение
    собственно говоря, а почему бы не обратиться к алгоритмам современных карт и местами, где это выглядит жирно и дорого, упростить? можно ещё 3д прикрутить, тогда я в первых рядах на заказ))))
    Палитра нас только тормозила. После загрузки преобразовываем все спрайты в 15 битов на точку.

    Уже вполне хорошо получается:

    У нас 32K цветов на экране.
    Аппаратная печать в буфер экрана спрайтов по координатам и номеру спрайта.
    Возможность при печати аппаратно сохранить, чтобы потом восстановить фон под спрайтами.
    Прозрачный цвет для печати спрайтов произвольной формы и возможность их накладывания.
    Последний раз редактировалось zx-kit; 16.06.2015 в 19:28.
    "L-256"

  7. #237

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    устранить клешинг атрибутов, увеличить количество цветов. И мы уже близки к технически реализуемому варианту.
    клешинг это как раз артефакты индексного указания цвета, нет индексов и палитр, нет клешига, элементарно же

    ---------- Post added at 19:23 ---------- Previous post was at 19:21 ----------

    Опять же аппаратные спрайты, тоже решают проблему клешинга очень простым путем.

    ---------- Post added at 19:25 ---------- Previous post was at 19:23 ----------

    но это если ориентироваться на удобство программирования, а так ради хобби, можно конечно что угодно придумать

  8. #238

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Теперь можно подумать о реализации. Наверно лучше использовать память SDRAM 4 Мбайт, так как 1 Мб может не хватить. Тем более, SDRAM стоит в Speccy2010, ReVeRse, Marsohod2 и других девбордах. Это позволит сделать новый видеорежим массовым.

    Дла начала надо написать алгоритм печати спрайта с учетом прозрачного цвета в буфер экрана. И подумать, как это реализовать на Verilog.

    Давайте прикинем максимальную скорость копирования. Если использовать тактовую частоту ПЛИС 14*6=84 МГц, то один экран размером 256*192=49152 точек можно будет аппаратно скоприровать за время около (49152*2)/84 MHz=1,17 mS. Время отображения одного кадра на TV 20 mS.
    Последний раз редактировалось zx-kit; 16.06.2015 в 19:51.
    "L-256"

  9. #239

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    После загрузки преобразовываем все спрайты в 15 битов на точку.
    Опять не понятная заморочка. почему я не могу загрузить спрайт/картинку сразу в 15бит формате? Если у меня исходный спрайт имеет 32цвета, то после преобразования он будет иметь...32 цвета)) в чём прикол каких-то преобразований? или карточка даёт работать с 15бит спрайтами сразу на входе (т.е. я гружу с диска спрайты сразу 15бит и просто перебрасываю в карточку или если подключена её память, то гружу туда сразу) или лишние заморочки ни к чему.
    это как раз артефакты индексного указания цвета, нет индексов и палитр, нет клешига, элементарно же
    оно как бы любая картинка или спрайт 8бит на точку уже индексная, т.к. в картинке любое значение это индекс в палитре из 256 цветов, в которую мы выбрали цвета из большей палитры. Если заглянуть в bmp файл, там палитра 768байт. Никаких клэшенгов я не замечал)))
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  10. #240

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Опять не понятная заморочка. почему я не могу загрузить спрайт/картинку сразу в 15бит формате?
    Конечно, если все уже 15-битное - ничего преобразовывать не надо.
    "L-256"

Страница 24 из 109 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. Ответов: 19
    Последнее: 30.09.2011, 03:08
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Ответов: 18
    Последнее: 27.08.2008, 20:27
  5. Ответов: 6
    Последнее: 20.11.2007, 11:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •