Отображение отражения - Reflection mapping

Пример отображения отражения

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

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

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

Однако в большинстве случаев отображаемое отражение является лишь приближением к реальному отражению. Картирование окружения основано на двух предположениях, которые редко бывают выполнены:

  1. Все сияние, падающее на затеняемый объект, исходит с бесконечного расстояния. Когда это не так, отражение близлежащей геометрии появляется не в том месте на отраженном объекте. В этом случае параллакс в отражении не наблюдается.
  2. Закрашиваемый объект выпуклый , так что он не содержит взаимных отражений. Когда это не так, объект не появляется в отражении; только окружающая среда делает.

Отображение окружения обычно является самым быстрым методом визуализации отражающей поверхности. Чтобы еще больше увеличить скорость рендеринга, рендерер может вычислить положение отраженного луча в каждой вершине. Затем положение интерполируется по полигонам, к которым прикреплена вершина. Это устраняет необходимость в пересчете направления отражения каждого пикселя.

Если используется отображение нормалей, каждый многоугольник имеет множество нормалей граней (направление, в котором обращена заданная точка на многоугольнике), которые можно использовать в тандеме с картой окружающей среды для создания более реалистичного отражения. В этом случае угол отражения в данной точке многоугольника будет учитывать карту нормалей. Этот метод используется для придания текстурированной плоской поверхности, например, гофрированного металла или матового алюминия.

Типы

Отображение сфер

Карта сфер представляет собой сферу падающего освещения, как если бы она была видна в отражении отражающей сферы через ортогональную камеру. Изображение текстуры можно создать, аппроксимируя эту идеальную настройку, или используя линзу «рыбий глаз», или путем предварительного рендеринга сцены со сферическим отображением.

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

Артефакты сферического картирования настолько серьезны, что они эффективны только для точек обзора, близких к точке обзора виртуальной ортогональной камеры.

Отображение куба

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

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

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

Отображение HEALPix

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

История

Предыдущие работы по наложению текстур были начаты Эдвином Кэтмаллом с уточнениями для криволинейных поверхностей Джеймсом Блинном в 1974 году. Блинн продолжил дальнейшее совершенствование своей работы, разработав к 1976 году отображение окружения.

Джин Миллер экспериментировал со сферическим картированием окружающей среды в 1982 году в MAGI Synthavision .

Вольфганг Гейдрих представил Paraboloid Mapping в 1998 году.

Эмиль Праун представил Octahedron Mapping в 2003 году.

Мауро Штайгледер представил Pyramid Mapping в 2005 году.

Тянь-Цинь Вонг и др. представил существующее отображение HEALPix для рендеринга в 2006 году.

Смотрите также

использованная литература

внешние ссылки