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%
Опрос с выбором нескольких вариантов ответа.
Страница 21 из 109 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя
Показано с 201 по 210 из 1084

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

  1. #201

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

    По умолчанию

    Паяю платы и раздумываю про вывод спрайтов на экран.

    ВидеоЦАП можно сделать по схеме R-2R по 5 бит на каждый из каналов RBG без палитры. Сначала реализовать копирование спрайтов из ОЗУ спрайтов в ОЗУ экрана с учетом прозрачного цвета. Ранее предполагалось две ОЗУ с независимым подключением шин адреса и данных к FPGA. Но теперь понятно, что просто так копировать из одной ОЗУ в другую нельзя. Надо анализировать прозрачный цвет. Если точка прозрачная - записывать не надо. На обработку будет тратиться цикл. Поэтому лучше адреса подавать на две ОЗУ параллельно, а данные и управляющие сигналы соединить отдельно у каждой. Тогда получим ОЗУ 256Kx32. Это позволит загружать и обрабатывать сразу по 4 точки.

    Когда я писал дему к игре FUTURE TANK для ZX SPECTRUM 128K я рисовал на экране танки, у которых корпуса могли быть разного цвета, а гусеницы одного. Наверно в других играх тоже бывают ситуации, когда надо изображать одинаковые объекты разными цветами. Поэтому нужно предусмотреть, чтобы перед отображением спрайта можно было бы выбирать цвет.

    Допустим, мы хотим изобразить шарики одинакового размера, но разного цвета. Мы можем нарисовать шарик одного из цветов с градациями яркости. Шарик будет выглядеть объемно. Сделаем из него спрайт, а при выводе будем менять цвет на тот, который требуется. Для этого каждую точку полутонового изображения закодируем одним байтом в таком формате:
    D7-D5 - номер цвета в спрайте ( при 1-6 эти цвета спрайта можно выбрать при выводе)
    D4-D0 - градация яркости данного цвета.

    Если D7-D5 = 0, то цвета общие у всех перекрашиваемых объектов, например, гусеницы у танков.
    D4-D2 - номер цвета
    D1-D0 - градации яркости

    Несколько перепрограммируемых цветов могут пригодиться, например, при изображении четырех черепашек нидзя. Все одинакового зеленого цвета, глаза белые с черным, а вот повязки на голове разные. Можно нарисовать спрайты для одного, а при выводе задавать цвет повязки. Тут вроде один переопределяемый цвет. Но у врагов могут быть разные шапки, пояса, сапоги и т.п. вещи и было бы удобно нарисовать спрайты для одного, а при выводе немного изменять несколько цветов в каждом. При этом каждая деталь объекта может быть изображена объемно за счет градаций яркости. 32 градации даже может быть многовато.

    Цвета 5+5+5 соответствуют MSX2+

    Еще один вариант кодирования цветов в байте:

    D7-D3 - номер цвета: 0 - черный, 1-8 - номера цветов спрайта, которые можно менять при выводе, 9-30 фиксированный набор оттенков из палитры 5+5+5, 31 - прозрачная точка.
    D2-D0 - 8 градаций яркости для выбранной пары оттенков.

    Оттенки можно выбрать различимые и привычные:

    от черного до синего
    от черного до красного
    от черного до сиреневого
    от черного до зеленого
    от черного до желтого
    от черного до голубого
    от черного до белого

    от красного до белого
    от зеленого до белого
    от синего до белого

    от желтого до белого
    от сиреневого до белого
    от голубого до белого

    от красного до сиреневого
    от красного до желтого

    от зеленого до голубого
    от зеленого до желтого

    от синего до голубого
    от синего до сиреневого
    Вложения Вложения
    Последний раз редактировалось zx-kit; 12.06.2015 в 20:00.
    "L-256"

  2. #202

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

    По умолчанию

    Всё ж хочется 512 КБ для спрайт ОЗУ.
    V6Z80P - Back for Good

  3. #203

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

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    Всё ж хочется 512 КБ для спрайт ОЗУ.
    ОЗУ лучше общее. 256Kx32 бита = 1Мбайт.
    1 экран 256х192=48 Кбайт
    2 экран 256х192=48 Кбайт
    шрифты 256х8х8=16 Кбайт
    буфер команд - несколько килобайт
    остальное почти все - под спрайты

    В буфер команд записывать можно будет сразу по 4 байта. За два такта видеокарты запишется, а потом при выполнении последовательности команд загрузятся 8 переопределяемых цветов для спрайтов объектов, отличающихся цветами отдельных элементов.

    Для градаций яркости точки для каждого оттенка 3 бита в байте, что позволит использовать до 8 градаций.
    Дла раскраски отличающихся деталей спрайтов можно будет использовать 7 основных цветов ZX SPECTRUMa, но у каждого по 8 градаций. Конечно можно будет использовать и указанные выше оттенки, но они отличаются не по яркости, а плавно переходят из одного в другой. Не идеально - но значительно лучше, тем более цвета точек независимы друг от друга плюс прозрачный цвет. Кроме этого не надо стирать объекты при движении, так как фон и движущиеся объекты можно рисовать каждый кадр на новом месте.

    Слоев, аппаратных спрайтов наверно не надо. А вот карту уровня игры возможно лучше сделать в FPGA, чтобы не гонять большие объемы данных.

    В кодировку байта можно добавить еще три пары оттенков по 8 градаций. Например, коричневый и еще пару каких-нибудь.
    Последний раз редактировалось zx-kit; 12.06.2015 в 20:21.
    "L-256"

  4. #204

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

    По умолчанию

    zst, а почему не использовать палитру нормальную 24бита, зачем извраты с 18битами?
    Программирование, если честно, слегка путанное. всё завязано, как я понял, на индексных регистрах и почему-то на одних и тех же индексах. Касательно темы навороченных экранов и способов работы с ними, удобнее спринтеровского экрана пока ничего не встречал. Может загляните туда? исходники-то есть.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  5. #205

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

    По умолчанию

    Палитра нужна по любому.
    V6Z80P - Back for Good

  6. #206

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

    По умолчанию

    Палитра возможна, но лучше ограничиться 15-битной. По расчетам на сайте MARSOHOD, пятибитный ЦАП сделать можно на резисторах R-2R, а 8-ми битный можно, но имеет смысла. Поэтому выход видео нужно делать 15 битным для совместимости с платой MARSOHOD2. За основу можно взять его схему, чтобы цвета были полностью такими же. 16-ый бит можно не подключать.
    Этих цветов должно хватить для игр. Даже фотографии при 15-ти битной палитре
    получаются вполне различимыми.

    Давайте аппаратуру разрабатывать не от палитры, а от функций, которые нам нужны при выводе изображения. Все мы знаем про особенности графики компьютера ZX Spectrum. Допустим мы сделаем новую видеокарту и хотим раскрасить старую игру, например, WHREE WEEKS IN PARADISE. Это одна из немногих игр, где можно выбирать, как отображать главного героя при его движении. На видео про эту игру в 11:03 мы видим, что Валли перекрашивается в цвета фона, а в 23:09 уже включен второй вариант отображения - фон перекрашивается в желтый цвет Валли .

    Допустим, мы захотели устранить этот недостаток. Какие команды нам пригодятся? Речь идет не о перерисовке всех спрайтов как на этом видео, а оставить старую графику.
    Последний раз редактировалось zx-kit; 14.06.2015 в 15:20.
    "L-256"

  7. #207

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

    По умолчанию

    Возможен такой вариант хранения спрайта в памяти видеокарты:

    Так как в стандартном экране спектрума каждой клетке размером 8х8 точек соответствует один байт атрибутов, видеокарта должна быть совместима с таким заданием цвета. Клетку спрайта в старом формате можно представить как 8 байтов расположенных на экране стопкой. Сверху байт 0, снизу байт 7.

    В видеокарте можно хранить их так: байт 0, маска 0, байт 1, маска 1 и т.д. Если нужно отобразить все точки спрайта, то маска должна быть FF, Обычно это применимо для построения фона. Чтобы наложить поверх фона движущийся объект в его спрайте маска должна иметь нулевые биты для точек, которые изображать не надо.

    Перед отображением клетки на экране мы передаем видеокарте стандартный байт атрибута, координаты печати и номер спрайта размером 8х8 точек. Видеокарта читает одновременно байт и маску для 8 точек и определяет, каким цветом зарисовать точку на экране. Если маска 0, то эту точку ОЗУ экрана записывать не надо.

    Таким образом, мы сможет без существенного изменения спрайтов устранить клэшинг атрибутов.
    Последний раз редактировалось zx-kit; 14.06.2015 в 19:37.
    "L-256"

  8. #208

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Палитра возможна, но лучше ограничиться 15-битной.
    Нормуль.

    Цитата Сообщение от zst Посмотреть сообщение
    Возможен такой вариант хранения спрайта в памяти видеокарты:
    Приблизительно понятно.
    Т.е. будет два формата спрайтов, байт на точку и этот ?


    Будет ли полно-экранный 320x240, с теми же времянками (без бордюра) ?
    V6Z80P - Back for Good

  9. #209

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

    По умолчанию

    Палитра возможна, но лучше ограничиться 15-битной.
    Тогда вопрос - а чем 15бит палитра лучше, чем 24 бита палитра? На лицо удобство работы с полными 8ми битными компонентами. т.е. 8 бит на каждые из трёх компонент RGB. Опять-таки, удобно конвертить и ворочить эту палитру на самом zx.
    пятибитный ЦАП сделать можно
    ЦАП аля Спринтер (8ми битный) собирается за 15 минут. Все резюки доставаемы и достаточно не дорогие.
    15 битным для совместимости с платой MARSOHOD2
    и для чего эта совместимость? Почему именно с этой штукой? Почему не с zxevo или там ещё с чем-нибудь?
    Давайте аппаратуру разрабатывать не от палитры, а от функций,
    конечно, но для начала - а какие собственно цели преследует девайс?Вы хотите сделать "перехватывалку" 128го экрана и просто его "красить" + блиттер или всё же там у карты что-то своё, что-то новенькое и интересное должно быть? Не думаю, что делать какие-то перехваты 128го режима с целью его улучшения или изменения является чем-то сильно важным и нужным. Помню времена на пц, когда была такая штука, как voodoo 2. Она умела выдавать только 3д. Для работы с 2д нужна была отдельная карточка. Почему бы не перенять этот опыт и не сделать сквозной прогон 128го режима через эту карту, просто для того, чтобы минимизировать количество проводов и мониторов?! Извращать стандартный режим особо не к чему. Если кому-то хочется избавится от клэшинга или раскрасить, всё ровно нужно влезать в код игрушки и добавлять поддержку карты и режимов, всё ровно нужно менять графику. просто убирать атрибутный клэшинг даже не так интересно, как добавить новых цветов, да побольше.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  10. #210

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

    По умолчанию

    Возможно глупость скажу.

    А не расматривался вариант битплановых видеорежимов. К примеру 8битный режи
    можно использовать как 8-однобитных, 4-2хбитных 2-4хбитных и один байтовый видеорежим. Причем за счет палитры можно много каких фокусов провернуть.

    Как по мне, спектруму с его как раз битплановым экраном, это самое логичное расширение. Использовались же аналогичные методы, к примеру в специалисте

    ---------- Post added at 10:45 ---------- Previous post was at 10:45 ----------

    Да и самый известный битплановый адаптер EGA от PC

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

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

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

Эту тему просматривают: 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

Ваши права

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