Введение

В компьютерной графике, отражение на карте или отображение окружения — эффективная техника освещения на основе изображений, предназначенная для приближенного воссоздания внешнего вида отражающей поверхности с использованием предварительно вычисленной текстуры. Текстура используется для хранения изображения удалённого окружения, окружающего отрисовываемый объект. Было применено несколько способов хранения окружающего окружения. Первой техникой было сферическое отображение, в котором одна текстура содержит изображение окружения, отражённое в сферическом зеркале. Оно практически полностью уступило место кубическому отображению, в котором окружение проецируется на шесть граней куба и сохраняется в виде шести квадратных текстур или разворачивается в шесть квадратных областей одной текстуры. Другие проекции, обладающие некоторыми превосходящими математическими или вычислительными свойствами, включают отображение параболоидов, пирамидальное отображение, отображение октаэдров и отображение HEALPix. Отражение на карте — один из нескольких подходов к рендерингу отражений, наряду, например, с отражениями в экранном пространстве или трассировкой лучей, которая вычисляет точное отражение, прослеживая луч света и следуя его оптическому пути. Цвет отражения, используемый при вычислении затенения пикселя, определяется путём расчёта вектора отражения в точке на объекте и его сопоставления с текселем в карте окружения. Эта техника часто даёт результаты, поверхностно схожие с теми, что генерируются трассировкой лучей, но менее требовательна к вычислительным ресурсам, поскольку значение излучения отражения получается из расчёта углов падения и отражения, за которым следует поиск текстуры, а не из прослеживания луча по геометрии сцены и вычисления излучения луча, что упрощает нагрузку на графический процессор. Однако в большинстве случаев отображённое отражение является лишь приближением реального отражения. Отображение окружения опирается на два предположения, которые редко выполняются: всё излучение, падающее на затеняемый объект, приходит с бесконечного расстояния. Если это не так, отражение близлежащей геометрии появляется не в том месте на отражённом объекте. В этом случае в отражении не наблюдается параллакс. Затеняемый объект является выпуклым, то есть не содержит самопересечений отражений. Если это не так, объект не отображается в отражении; видно только окружение. Отображение окружения, как правило, является самым быстрым методом рендеринга отражающей поверхности. Для дальнейшего повышения скорости рендеринга, рендерер может вычислить положение отражённого луча в каждой вершине. Затем это положение интерполируется по полигонам, к которым прикреплена вершина. Это устраняет необходимость пересчёта направления отражения для каждого пикселя. Если используется нормальное картирование, каждый полигон имеет множество нормалей граней (направление, в котором обращена данная точка на полигоне), которые можно использовать совместно с картой окружения для получения более реалистичного отражения. В этом случае угол отражения в данной точке на полигоне будет учитывать карту нормалей. Эта техника используется для того, чтобы в противном случае плоская поверхность казалась текстурированной, например, гофрированный металл или шлифованный алюминий.

Картография сферы

Картирование сфер представляет сферу входящего освещения так, как если бы она была видна в отражении отражающей сферы через ортографическую камеру. Текстурное изображение можно создать, аппроксимируя эту идеальную конфигурацию, используя объектив «рыбий глаз» или предварительно отрисовывая сцену со сферическим отображением. Сферическое отображение имеет ограничения, снижающие реалистичность получаемых изображений. Поскольку сферические карты хранятся в виде азимутальных проекций окружающей среды, которую они представляют, на отражении объекта видна резкая точка сингулярности (эффект «чёрной дыры»), где цвета текселей на краю карты или вблизи него искажаются из-за недостаточного разрешения для точного представления точек. Сферическое отображение также неэффективно использует пиксели, находящиеся в квадратной области, но не попадающие на сферу. Артефакты сферического отображения настолько выражены, что оно эффективно только для точек обзора, близких к положению виртуальной ортографической камеры.

Картировка кубиков

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

Картография HEALPix

Картирование окружения HEALPix аналогично другим полиэдрическим проекциям, но может быть иерархическим, предоставляя тем самым единую основу для генерации полиэдров, которые точнее аппроксимируют сферу. Это позволяет добиться меньших искажений ценой увеличения вычислительной нагрузки.

История

В 1974 году Эдвин Кэтмулл создал алгоритм для "визуализации изображений бивариативных поверхностных участков", который работал непосредственно с их математическим описанием. Дальнейшие усовершенствования были исследованы и задокументированы Буй Туонгом Фонгом в 1975 году, а позже Джеймсом Блинном и Мартином Ньюэллом, которые разработали метод отображения окружения в 1976 году; эти разработки, усовершенствовавшие оригинальные алгоритмы Кэтмулла, привели их к выводу, что "эти обобщения приводят к улучшению методов генерации узоров и текстур". Джин Миллер экспериментировал со сферическим отображением окружения в 1982 году в MAGI. Вольфганг Хайдрих представил параболоидное отображение в 1998 году. Эмиль Праун представил октаэдрическое отображение в 2003 году. Мауро Штейгледер представил пирамидальное отображение в 2005 году. Тьен Тсин Вонг и др. представили существующее HEALPix отображение для визуализации в 2006 году.