Учитывая всю работу, выполненную Emotion Engine, осталось ли что-нибудь еще? На самом деле последний шаг: Отображение!
Существует простой, но быстрый чип, специализирующийся на этом: Графический Синтезатор или 'GS', работающий на частоте ~147,46 МГц. В него встроено 4 МБ DRAM для обработки всех задач. Таким образом, отпадает необходимость в доступе к основной памяти. Встроенное ОЗУ (embedded RAM, eDRAM) соединяется с различными шинами в зависимости от типа необходимых данных.
GS имеет меньше возможностей, чем другие графические системы, ранее рассмотренные на этом сайте. Тем не менее, он очень быстр в том, что он делает.
Архитектура и строение
Этот GPU выполняет только растеризацию, и это... Генерация пикселей, картирование текстур, наложение освещения и некоторые другие эффекты. Это означает, что нет преобразований вершин (они обрабатываются VPUs). Также это конвейер с постоянной функцией, поэтому ни сложных настроек, ни шейдеров нет, вы ограничены фиксированной моделью затенения (например, Гуро).

Дизайн конвейера Графического Синтезатора
Выглядит довольно просто, верно? Ну что ж, давайте углубимся, чтобы понять, что происходит на каждом этапе.
Предварительная обработка

Стадия предварительной обработки.
Процессор Emotion Engine запускает синтезатор графики, заполняя его встроенную DRAM необходимыми материалами (битмапы текстур и таблицы поиска цвета, последние также известны как 'CLUT'), назначая значения в регистрах GS для его настройки и, наконец, выдавая команды рисования (списки отображения), которые инструктируют GS рисовать примитивы (точки, линии, треугольники, спрайты и т.д.) в определенных местах экрана.
Кроме того, GS будет предварительно обрабатывать некоторые значения, которые будут нужны для последующих расчетов. Наиболее заметным является значение алгоритма цифрового дифференциального анализа, которое будет использоваться для интерполяций во время рисования.
Растеризация
Используя ранее рассчитанные значения, рендерер генерирует пиксели из примитивов. Этот блок может генерировать 8 пикселей (с текстурами) или 16 пикселей (без текстур) одновременно, каждый из которых содержит следующие рассчитанные свойства:
- RGBA: Соответствующий градиент красного, зеленого, синего и альфа (прозрачности).
- Z-значение: Используется для тестирования глубины на поздних стадиях.
- Туман: Необязательный, для имитации тумана в окружающей среде.
- Свойства текстуры: Содержит адрес текстуры в DRAM и другие свойства (координаты, уровень детализации, фильтр и т.д.), которые будут использоваться на следующем этапе.
Он также выполняет тесты на отсечение, чтобы отбрасывать полигоны вне области кадра (на основе их значений X/Y), некоторые свойства пикселей передаются на стадию 'тестирования пикселей' для дополнительных проверок. Освещение также обеспечивается выбором одного из двух доступных вариантов: Гуро и Равномерное.
Пакет затем передается в 'двигатель текстурирования', но каждое свойство обрабатывается специализированным 'поддвигателем', что позволяет обрабатывать различные свойства параллельно.
Текстурирование

Стадия текстурного отображения
Эта стадия обеспечивается мощной пиксельной единицей, которая может обрабатывать до 16 пикселей одновременно, здесь текстуры будут наложены на полигоны (теперь пиксели). Кроме того, здесь применяются эффекты тумана и сглаживания.
Текстурные карты извлекаются из DRAM в области, определенной как буфер текстур, хотя это администрируется отдельной областью, называемой буфер страницы текстур, который, по-видимому, служит механизмом кэширования для текстур. CLUT также отображаются с использованием этой системы страниц. Оба элемента извлекаются с использованием 512-битной шины.
Обработчик пикселей выполняет коррекцию перспективы для отображения текстур на примитивах (значительное улучшение по сравнению с предыдущим подходом аффинного накладывания). Более того, он также обеспечивает билинейную и трилинейную фильтрацию, последняя используется вместе с мип-картами текстур.
Тестирование
Здесь определенные пиксели будут отброшены, если они не соответствуют нескольким требованиям. Итак, выполняются следующие тесты:
- Альфа тест: Сравнивает альфа значение (прозрачность) пикселя со 'стандартным' значением. Это связано с тем, что в некоторых случаях альфа значение должно находиться в определенном диапазоне или быть больше/меньше произвольного значения.
- Тест альфа-значения точки назначения: Проверяет альфа-значение пикселя перед его отрисовкой в буфер кадра.
- Тест глубины: сравнивает Z-значение пикселя с соответствующим Z-значением в Z-буфере. Это предотвращает обработку пикселей, которые будут скрыты за другими пикселями.
Пост-обработка
Последняя стадия может применить некоторые эффекты на наши новые пиксели, используя предыдущий буфер кадров, найденный в локальной DRAM:
- Альфа смешивание: Объединяет цвета текущего буфера с предыдущим в памяти.
- Дизеринг: Большие значения RGBA необходимо обрезать, чтобы сгладить потерю точности.
- Ограничение цвета: После применения операций, таких как альфа-смешивание, новое значение RGB может превысить допустимый диапазон (0-255), поэтому ограничение устанавливает значение в пределах диапазона.
- Форматирование: Это преобразует конечный буфер кадра, сгенерированный в конвейере, в формат, который может храниться в памяти.
В конце концов, новый буфер кадров вместе с обновленным Z-буфером записываются в память с использованием 1024-битной шины.
Еще больше пост-обработки
В GS есть специальный компонент, называемый программируемый контроллер ЭЛТ или 'PCRTC', который отправляет буфер кадров в памяти на видео выход, чтобы вы могли видеть кадр на экране телевизора. Но это еще не все: он также содержит специальный блок под названием Схема слияния, который позволяет альфа-смешивать два отдельных кадровых буфера (полезно, если игры хотят повторно использовать предыдущий кадр для формирования нового). Результирующий кадр может быть выведен через видеосигнал и/или записан обратно в память.
Лучшие модели
С учётом всего сказанного, это, конечно, принесло лучшее дизайны для обновления уже известных персонажей. Посмотрите на этот 'До & После':

Интерактивная модель доступна в современной версии
Crash Bandicoot (1996) для PS1.
732 треугольника.

Интерактивная модель доступна в современной версии
Crash Bandicoot: The Wrath of Cortex (2001).
2226 треугольника.
Вот персонажи из новых игровых серий, которые были смоделированы с высоким уровнем детализации с нуля:

Интерактивная модель доступна в современной версии
Kingdom Hearts (2002).
2744 треугольника.

Интерактивная модель доступна в современной версии
Dragon Quest VIII (2004).
2700 треугольника.
Стоит отметить, что игры, такие как Dragon Quest, реализовали пользовательскую модель освещения под названием Cel Shading (термин, который я упоминал раньше), однако в моих предыдущих статьях я объяснял, что за это в основном отвечает GPU. В случае PS2, предполагается, что необходимые цветовые вычисления выполняются Emotion Engine, так как GS не такой гибкий, как другие GPU.
Видеовыход
Как уже упоминалось ранее, PCRTC отправляет кадровый буфер через видеосигнал. Интерфейс может транслировать видео с использованием широкого диапазона форматов (чтобы работать с телевизорами из любого географического региона) :
- PAL: Передает до 640x512 пикселей с частотой 50 Гц, либо прогрессивно (576p), либо чересстрочно (576i).
- На рынке не найдено игр, использующих 576p. Хотя некоторые поддерживают прогрессивный режим, они делают это в 480p.
- NTSC: До 640x448 пикселей с частотой 60 Гц, либо прогрессивно (480p), либо чересстрочно (480i).
- VESA: До 1280x1024 пикселей.
- DTV: До огромного количества 720x480 пикселей в прогрессивном режиме или 1920x1080 в чересстрочном режиме.
- Настройка параметров PCRTC, игра также может заставить выводить изображение в 1080p. Однако этот режим не документирован и, следовательно, подвержен непредсказуемому поведению.
- Значит ли это, что PS2 может 'отображать HD'? Технически... да, но я не думаю, что большинство игровых студий рискнули бы ухудшить производительность ради формата, который еще не был распространен.

Правая сторона консоли , вид сзади. Показаны порты питания, цифрового аудио и AV Multi Out.
Есть довольно много режимов на выбор, но все сводится к принятию формата в начале 2000-х годов, что сужает выбор до PAL и NTSC. Также, хотя PAL обеспечивал более высокое разрешение, чем NTSC, некоторые европейские версии NTSC-игр использовали letterboxing, чтобы скрыть неиспользуемые горизонтальные линии, и замедляли частоту до 50 Гц (я называю это 'плохими портами'!).
Видео-выходной порт (Multi A/V) очень удобен. Он переносит RGB, компонентное, S-Video и композитное видео. Таким образом, все важные сигналы присутствуют без необходимости в проприетарных адаптерах или внутренних модификациях.



