stringtranslate.com

Картографирование отражений

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

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

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

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

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

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

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

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

Типы

Сферическое картирование

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

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

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

Кубическое отображение

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

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

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

HEALPix картирование

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

История

В 1974 году Эдвин Кэтмелл создал алгоритм для «рендеринга изображений двумерных участков поверхности» [6] [7] , который работал напрямую с их математическим определением. Дальнейшие усовершенствования были исследованы и задокументированы Буи-Туонг Фонгом в 1975 году, а позднее Джеймсом Блинном и Мартином Ньюэллом , которые разработали картографирование среды в 1976 году; эти разработки, которые усовершенствовали исходные алгоритмы Кэтмелла, привели их к выводу, что «эти обобщения приводят к улучшенным методам создания узоров и текстур». [6] [8] [9]

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

Вольфганг Гейдрих представил параболоидное отображение в 1998 году. [10]

Эмиль Праун представил октаэдрическое картирование в 2003 году. [11]

Мауро Штейгледер представил пирамидальное картирование в 2005 году. [12]

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

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

Ссылки

  1. ^ "Высшее образование | Pearson" (PDF) .
  2. ^ http://web.cse.ohio-state.edu/~whmin/courses/cse5542-2013-spring/17-env.pdf [ пустой URL PDF ]
  3. ^ http://www.ics.uci.edu/~majumder/VC/classes/BEmap.pdf [ пустой URL PDF ]
  4. ^ "Подходы к освещению на основе изображений и кубическая карта с коррекцией параллакса". 29 сентября 2012 г.
  5. ^ ab Tien-Tsin Wong, Liang Wan, Chi-Sing Leung и Ping-Man Lam. Картографирование окружения в реальном времени с помощью сферической четырехугольной карты с равными телесными углами, Shader X4: Освещение и рендеринг, Charles River Media, 2006.
  6. ^ ab Blinn, James F.; Newell, Martin E. (октябрь 1976 г.). «Текстура и отражение в компьютерных изображениях». Communications of the ACM . 19 (10): 542–547. doi :10.1145/360349.360353. ISSN  0001-0782.
  7. ^ Кэтмелл, Е. А. Компьютерное отображение криволинейных поверхностей. Труды конференции по компьютерной графике, распознаванию образов и структуре данных, май 1975 г., стр. 11–17 (IEEE Cat. No. 75CH0981-1C).
  8. ^ «Компьютерная графика».
  9. ^ «История картографирования отражений».
  10. ^ Гейдрих, В. и Х.-П. Зайдель. «Карты среды, независимые от вида». Семинар Eurographics по графическому оборудованию 1998, стр. 39–45.
  11. ^ Эмиль Праун и Хьюз Хоппе. «Сферическая параметризация и перестройка сетки». ACM Transactions on Graphics, 22(3):340–349, 2003.
  12. ^ Мауро Штайгледер. «Карандашный легкий транспорт». Диссертация, представленная в Университете Ватерлоо, 2005.

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