Введение

Техника рендеринга компьютерной графики В компьютерной графике, освещение на пиксель относится к любой технике освещения изображения или сцены, которая рассчитывает освещение для каждого пикселя на рендеринговом изображении. Это отличается от других популярных методов освещения, таких как вертикальное освещение, которое рассчитывает освещение на каждой вершине 3D-модели, а затем интерполирует полученные значения на поверхности модели, чтобы рассчитать конечные цветные значения на пиксель. Освещение на пиксель обычно используется с такими методами, как смешивание, альфа-смешивание, альфа-покрытие, анти-алиазинг, фильтрация текстуры, обрезка, определение скрытой поверхности, буфринг Z, буфринг штемпеля, затенение, мип-картирование, нормальное отображение, нанесение на карту ударов, отображение смещения, параллаксное отображение, отображение теней, зеркальное отображение, объемы теней, рендеринг высокого динамического диапазона, окклюзия окружающей среды (окклюзия пространства экрана, направленная окклюзия пространства экрана, окклюзия окружающей среды с трассировкой лучей), трассирование лучей, глобальное освещение и тесселяция. Каждый из этих методов предоставляет некоторые дополнительные данные о освещаемой поверхности или об источниках света, которые способствуют окончательному внешнему виду поверхности. Большинство современных движков видеоигр реализуют освещение с использованием методов по пикселю вместо вертикального освещения для достижения большей детализации и реализма. Двигатель id Tech 4, используемый для разработки таких игр, как Brink и Doom 3, был одним из первых игровых движков, реализовавших полностью по пикселю движок затенения. Все версии CryENGINE, Frostbite Engine и Unreal Engine, среди прочих, также реализуют технику затенения на пиксель. Отложенное затенение - это недавнее развитие в освещении на пиксель, известное своим использованием в Frostbite Engine и Battlefield 3. Отложенные методы затенения способны создавать потенциально большое количество небольших огней недорого (другие подходы к освещению на пиксель требуют расчетов на полный экран для каждого света в сцене, независимо от размера).

История

Хотя только недавно персональные компьютеры и видеоаппаратное обеспечение стали достаточно мощными, чтобы выполнять полное затенение на пиксель в приложениях реального времени, таких как игры, многие из основных концепций, используемых в моделях освещения на пиксель, существуют уже десятилетия. Фрэнк Кроу опубликовал статью, описывающую теорию теневых томов в 1977 году. Эта техника использует буфер штемпеля для указания областей экрана, которые соответствуют поверхностям, которые лежат в "теневом объеме" или форме, представляющей собой объем пространства, затворенный от источника света каким-то объектом. Эти затененные области обычно затеняются после того, как сцена отображается в буферах, путем хранения затененных областей с буфером штемпеля. Джим Блинн впервые представил идею нормального картографирования в статье SIGGRAPH 1978 года. Блинн указал, что ранее идея неосвещенной текстуры, предложенная Эдвином Кэтмуллом, была нереалистичной для моделирования шероховатых поверхностей. Вместо того, чтобы наносить на объект текстуру, чтобы имитировать шероховатость, Блинн предложил метод расчета степени освещения, которую должна получить точка на поверхности, основанный на установленной "пертурбации" нормальных значений по всей поверхности.

Рендаринг на аппаратном уровне

Приложения в режиме реального времени, такие как видеоигры, обычно реализуют освещение на пиксель с помощью пиксельных сенсоров, позволяя аппаратному обеспечению GPU обрабатывать эффект. Сцена, которая должна быть отображена, сначала растрируется на ряд буферов, хранящих различные типы данных, которые будут использоваться при отображении сцены, такие как глубина, нормальное направление и диффузный цвет. Затем данные передаются в шейдер и используются для вычисления окончательного вида сцены, пиксель за пикселем. Отложенное затенение - это техника затенения на пиксель, которая недавно стала возможной для игр. При отложенном затенении "g-буфер" используется для хранения всех терминов, необходимых для затенения финальной сцены на уровне пикселей. Формат этих данных варьируется от приложения к приложению в зависимости от желаемого эффекта и может включать в себя нормальные данные, позиционные данные, спекулярные данные, диффузные данные, карты излучения и альбедо, среди прочего. Используя несколько целевых реендеров, все эти данные могут быть отображены в буфер g с помощью одного прохода, а шейдер может рассчитать окончательный цвет каждого пикселя на основе данных из буфера g в окончательном "отложенном прохождении".

Рендаринг программного обеспечения

Освещение на пиксель также выполняется в программном обеспечении на многих высококлассных коммерческих приложениях рендеринга, которые обычно не рендерируют с интерактивными частотами кадров. Это называется оффлайн-рендерингом или программным рендерингом. Хорошо известным примером является программное обеспечение для рендеринга ментальных лучей NVIDIA, которое интегрировано с такими пакетами, как Softimage от Autodesk.