Приветствую всех!
Не секрет наверное, что я сделал видеокарточку на основе V9990. Что за зверь-думаю объяснять тоже не надо...
В прошлом я сталкивался с программированием 2D-графики на ПЦ. Начинал с софтварной реализации движков, закончил акселерацией "старых" видеокарточек (STrio 64V+, Voodoo2,Vooodoo3, S3 Savage4, RivaTNT M64). Программил естественно под DOS'ом не используя никаких графических библиотек. Пришёл к выводу, что пчти все 2D-движки вышеуказанных акселерированных карточек содержат следующее:
1) Вторичную поверхность - где хранятся спрайты(битмапы)
2) Первичную поверхность - которая отображается на экране
3) Далее идёт либо блитинг поверхностей (с задней поверхности на первую) либо флипинг (когда поверхности рисуемые и отображаемые меняются местами с частотой развёртки дисплея)
4) BitBlt со всеми разновидностями (прозрачность/операции...)
5) Аппаратное Отсечение частей спарйтов(битмапов, выходящих за пределы экрана)
6) Растровые операции при блитинге и битовые маски
При освоении спрайтовых режимов V9990 столкнулся с трудностями - ИМХО неудобно пользоваться спрайтами, так как это на мой взгляд усложняет программирование графики. В памяти VDP есть таблица атрибутов спрайта где указываются: x,y - спрайта, его индекс палитры и атрибуты (mirror/enable /disable,...). Неудобно писать алгоритмы на столкновение двух спрайтов, малое количество цветов на один спрайт, принуждение бить на куски большое изображение итп итд...
Вопрос вот в чем. Может кто-нибудь, кто программил спрайтовые (тайловые) режимы объяснит, как надо писать программы, используя спрайты. В частности интересуют:
1) Как быстрее всего битмап побить на спрайты и оптимизировать цвета при разбиении
2) Как реализовать анализ на столкновение спрайтов
3) Как рулить спрайтами, чтоб удобно выводить большое изображение из них
4) как должен быть построен основной цикл в программе для вывода сих спрайтов
5) и многое другое чего не назвал, но существует в природе
Для V9990 учесть, что 1спрайт=16x16pix, 16 цветов
С удовольствием выслушаю советы и предложения программеров, которые использовали спрайтовую графику