Графический процессор представляет собой чип собственной разработки под названием Holly, работающий на частоте 100 МГц. В отличие от предыдущих собственных разработок, на этот раз Sega сотрудничала с VideoLogic (ныне известной как Imagination Technologies), чтобы те предоставили им конкурентоспособный 3D ускоритель.

Чип Holly (после удаления термо прокладок) и энкодер видео.
Внутри Holly мы можем обнаружить эксклюзивную схему обработки графики от VideoLogic под названием PowerVR2 (также известен как "PowerVR Series2" и "CLX2"). Она основана на их предыдущих ГП PowerVR, но подогнана под нужды Dreamcast.
Архитектура
VideoLogic выбрала альтернативный подход к архитектуре своего 3D ядра под названием Tile-Based Deferred Rendering (TBDR, отложенная отрисовка основанная на тайлах).
Вместо отрисовки всего кадра за раз (как это делают традиционные Immediate Mode Renderers или 'IMR' ), TBDR нарезает область отрисовки на несколько секций называемых 'тайлами'. Процесс отрисовки выполняется отдельно для каждого тайла, после чего результат комбинируется вместе для составления конечного кадра .
Этот инновационный дизайн привносит интересные преимущества:
- Он отлично параллелизуется, что существенно уменьшает необходимую пропускную способность и энергопотребление.
- Он реализует умное решение проблемы с видимостью, автоматически сортируя полигоны от переднего плана к заднему, а затем выполняя z-тесты на первых этапах конвейера. Комбинация этих задач не только решает изначальную проблему, но и предотвращает "overdraw" (отрисовка полигонов полностью скрытых другими) который тратит ресурсы впустую и ухудшает производительность.
Неудивительно, что Imagination и далее использовала эту эффективную технологию в видео-ядрах Series 4 PowerVR, которые использовались на невероятном количестве устройств, включая первое поколение iPhone, iPhone 3G, Nokia N95 и Dell Axim x51.
Строение
Давайте рассмотрим два основных компонента графического чипа Dreamcast :
Tile Accelerator
Прежде чем начнется процесс отрисовки, компонент известный как Tile Accelerator (тайловый ускоритель) производит предварительную обработку. Сперва он аллоцирует несколько 32x32 групп тайлов в которые будет отрисовываться геометрия.
Затем ускоритель:
- Забирает (при помощи прямого доступа к памяти (DMA) или обычной передачи) геометрические данные и команды отрисовки (drawing commands) сгенерированные процессором.
- Конвертирует эти данные в свой внутренний формат.
- Распределяет геометрию в каждую из групп тайлов в зависимости от их координат. Геометрия вне поля видимости отбрасывается на этом этапе.
- Генерирует окончательные списки отрисовки (Display Lists).
Списки отрисовки затем интерпретируются 3D ядром: PowerVR2.
Ядро PowerVR2
Здесь графика воплощается в жизнь. Руководствуясь списками отрисовки, полученными от Tile Accelerator, 3D ядро отрисовывает каждый тайл в свой внутренний кадровый буфер (framebuffer). Этот процесс выглядит так:
- Image Synthesis Processor (процессор синтеза изображения) или 'ISP' извлекает примитивы (треугольники либо четырехугольники) и выполняет удаление скрытых поверхностей (Hidden-Surface Removal) чтобы убрать скрытые полигоны. Затем, после рассчета их Z-буферов и трафаретных (stencil) буферов, данные проходят через тест глубины (Depth Testing) чтобы избежать отрисовки полигонов которые скрыты другими и трафаретный тест (Stencil Tests) чтобы отбросить геометрию которая не будет видна если расположена за двухмерными полигонами (так же называемыми масками).
- Обратите внимание, что эти тесты фактически выполняются в самом начале конвейера. Для сравнения, предыдущие консоли, использующие позднюю z-буфферизацию, отбрасывают скрытую геометрию в конце конвейера. Подход ISP предотвращает обработку геометрии, которая в последствии будет отброшена , сохраняя ресурсы.
- Texture and Shading Processor (процессор текстурирования и шейдирования) или 'TSP' окрашивает и затеняет (shading) тайлы, а так же применяет к ним различные эффекты.
- Текстуры не применяются пока тайл не экспортирован. Это означает что накопленный overdraw (если он присутствует к этому этапу) не снизит скорость заполнения.
После завершения этого процесса, отрисованный тайл записывается в основной кадровый буфер находящийся в видео-памяти (VRAM). Этот процесс повторяется пока все тайлы не будут отрисованы. После завершения отрисовки, конечный кадр читается Video encoder -ом (кодировщиком видео) из кадрового буфера и отправляется на видеовыход.
Общая картина
Кроме очевидных архитектурных различий, у TSP есть еще много способностей, из которых ясно, насколько эта консоль далека от своего предшественника Saturn. Вот некоторые из его самых выдающихся возможностей:
- Альфа-смешение (Alpha blending): Смешивает цвета наложенных друг на друга слоев, чтобы добиться эффекта (полу-)прозрачности.
- Процесс для применения прозрачности в этой системе называется order-independent transparency (прозрачность, независящая от порядка). Алгоритм автоматически сортирует примитивы прежде чем смешивать их цвета. Это замедляет процесс отрисовки, но позволяет не полагаться на то что игра отсортирует примитивы сама. Именно по этой причине игры для Dreamcast отлично отображают объекты с прозрачностью.
- Вместе с отрисовкой основанной на тайлах, алгоритм order-independent transparency полностью решает прошлые неудачи.
- Mip-Mapping: Автоматически выбирает версию текстуры меньшего разрешения в зависимости от необходимого уровня детализации. Это нужно чтобы не обрабатывать большие текстуры которые находятся далеко от камеры (что тратит ресурсы и вызывает артефакты (aliasing)).
- Environment mapping: Применяет отражения к текстурам.
- Билинейная, трилинейная и анизотропная фильтрация: Это разные алгоритмы, применяемые, чтобы сгладить текстуры и снизить пикселизацию. Они расположены в порядке от худшего к лучшему, где качество результата прямо пропорционально необходимому количеству вычислений.
- Это огромный шаг вперед от Saturn, который вовсе не предоставлял никаких возможностей для фильтрации текстур.
- Bump mapping: Симулирует неровности на поверхностях не тратя лишние полигоны.
Больше деталей
Holly может отрисовать примерно в 10 раз больше полигонов чем его предшественник, вот примеры до и после, которые показывают насколько менее ограничен теперь дизайн моделей. Попробуйте поиграться с ними!

Интерактивная модель доступна в современной версии
Sonic R (1997) для Saturn.
286 треугольников (или 185 четырёхугольников).

Интерактивная модель доступна в современной версии
Sonic Adventure (1999) для Dreamcast.
1001 треугольник.
Видео режимы
Подсистема вывода видео была спроектирована с поддержкой нескольких типов экранов и выходных форматов, так video encoder выводит видео на единый выходной порт, который поддерживает следующие форматы:
- Композитный: Объединяет три сигнала, необходимые для отображения видео (chroma (цвет), luma (яркость) и sync (синхронизация)) в один, требуя только одну линию в кабеле.
- Этот формат используется в старых PAL и NTSC телевизорах с RCA портами.
- S-Video: Совмещает luma и sync, но отделяет chroma (всего требуя две линии).
- RGB: Передает отдельные сигналы для красного, зеленого и синего компонентов, и предоставляет на выбор разные варианты сигнала синхронизации (композитный или извлеченный из S-Video).
- SCART кабель использует этот формат.
- VGA: Совмещает RGB и два сигнала синхронизации (горизонтальный и вертикальный), всего используя 5 линий. Этот режим позволяет отобразить самое большое из возможных разрешений (720x480) в прогрессивном режиме (поэтому этот режим часто называют '480p'). VGA некоторое время был стандартным форматом/подключением, используемым компьютерными мониторами.
- Чтобы использовать этот режим, Sega выпустила VGA адаптер в качестве дополнительного аксессуара.
Dreamcast не может кодировать все эти форматы одновременно, поэтому у GPU и аудиопроцессора есть регистр Image Mode, который указывает какие аудио/видео шины должны быть активированы чтобы генерировать нужный сигнал. Процессор проверяет тип подключенного кабеля (проверяя какие "select bits" пины видео коннектора подключены) и записывает нужные значения в регистр GPU. Эти значения так же передаются аудиопроцессору.
Учитывая что VGA это исключительно прогрессивный формат (в противовес традиционному чересстрочному), у игр предполагавших использование только чересстрочной развертки проявились проблемы совместимости. Такие игры явно указывают в своем коде что не будут работать с VGA, чтобы процессор приостановил игру пока пользователь не сменит VGA кабель на другой.


