stringtranslate.com

Освещение компьютерной графики

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

Источники света

Источники света позволяют по-разному вводить свет в графические сцены. [1] [2]

Точка

Точечные источники излучают свет из одной точки во всех направлениях, при этом интенсивность света уменьшается с расстоянием. [3] Примером точечного источника является отдельная лампочка. [4]

Направленный источник света, освещающий местность.

Направленный

Направленный источник (или удаленный источник) равномерно освещает сцену с одного направления. [4] В отличие от точечного источника, интенсивность света, создаваемого направленным источником, не меняется с расстоянием в масштабе сцены, поскольку направленный источник рассматривается так, как будто он находится очень далеко. [4] Примером направленного источника является солнечный свет на Земле. [5]

В центре внимания

Прожектор создает направленный конус света. [6] Свет становится более интенсивным по мере приближения наблюдателя к источнику прожектора и к центру светового конуса. [6] Примером прожектора является фонарик. [5]

Область

Area lights — это 3D-объекты, которые излучают свет. В то время как точечные и прожекторные источники света считаются бесконечно малыми точками, area lights рассматриваются как физические формы. [7] Area light создает более мягкие тени и более реалистичное освещение, чем точечные и прожекторные источники света. [8]

Окружающий

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

Светоискажение

Lightwarp — это метод, при котором объект в геометрическом мире преломляет свет в зависимости от направления и интенсивности света. Затем свет деформируется с использованием рассеянного окружающего света с диапазоном цветового спектра . Затем свет может быть отраженно рассеян для получения большей глубины резкости и преломлен . Метод используется для создания уникального стиля рендеринга и может использоваться для ограничения переэкспонирования объектов. Такие игры, как Team Fortress 2, используют метод рендеринга для создания стилизованного вида с затенением мультяшной cel . [9]

HDRI

HDRI означает High dynamic range image и представляет собой 360° изображение, которое обернуто вокруг 3D-модели в качестве наружной обстановки и обычно использует солнце в качестве источника света в небе. Текстуры модели могут отражать прямой и окружающий свет и цвета из HDRI. [10]

Взаимодействие освещения

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

Разложение световых взаимодействий

Диффузный

Рассеянное освещение (или диффузное отражение ) — это прямое освещение объекта равномерным количеством света, взаимодействующего с рассеивающей свет поверхностью. [4] [12] После того, как свет падает на объект, он отражается в зависимости от свойств поверхности объекта, а также угла падения света. [12] Это взаимодействие вносит основной вклад в яркость объекта и формирует основу его цвета. [13]

Окружающий

Поскольку окружающий свет не имеет направления, он равномерно взаимодействует со всеми поверхностями, а его интенсивность определяется силой источников окружающего света и свойствами материалов поверхности объектов, а именно их коэффициентами отражения окружающего света . [13] [12]

Зеркальный

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

Модели освещения

Модели освещения используются для воспроизведения эффектов освещения в визуализируемых средах, где свет аппроксимируется на основе физики света. [14] Без моделей освещения воспроизведение эффектов освещения, как они происходят в естественном мире, потребовало бы больше вычислительной мощности, чем это практично для компьютерной графики. [14] Цель этой модели освещения или освещения заключается в вычислении цвета каждого пикселя или количества света, отраженного для различных поверхностей в сцене. [15] Существуют две основные модели освещения: объектно-ориентированное освещение и глобальное освещение. [16] Они отличаются тем, что объектно-ориентированное освещение рассматривает каждый объект индивидуально, тогда как глобальное освещение отображает, как свет взаимодействует между объектами. [16] В настоящее время исследователи разрабатывают методы глобального освещения, чтобы более точно воспроизвести, как свет взаимодействует с окружающей средой. [16]

Объектно-ориентированное освещение

Объектно-ориентированное освещение, также известное как локальное освещение, определяется путем сопоставления одного источника света с одним объектом. [17] Этот метод быстро вычисляется, но часто является неполным приближением того, как свет будет вести себя в сцене в реальности. [17] Его часто аппроксимируют путем суммирования комбинации зеркального, рассеянного и окружающего света определенного объекта. [14] Двумя преобладающими моделями локального освещения являются модели освещения Фонга и Блинна-Фонга. [18]

Модель освещения Фонга

Одной из наиболее распространенных моделей отражения является модель Фонга. [14] Модель Фонга предполагает, что интенсивность каждого пикселя является суммой интенсивности, обусловленной рассеянным, зеркальным и окружающим освещением. [17] Эта модель учитывает местоположение наблюдателя для определения зеркального света с использованием угла света, отраженного от объекта. [18] Берется косинус угла и возводится в степень, определенную дизайнером. [17] При этом дизайнер может решить, насколько широким должен быть блик на объекте; из-за этого степень называется значением блеска. [18] Значение блеска определяется шероховатостью поверхности, где зеркало будет иметь значение бесконечности, а самая шероховатая поверхность может иметь значение единицы. [17] Эта модель создает более реалистично выглядящий белый блик на основе перспективы наблюдателя. [14]

Модель освещения Блинна-Фонга

Модель освещения Блинна-Фонга похожа на модель Фонга, поскольку она использует зеркальный свет для создания блика на объекте на основе его блеска. [19] Модель освещения Блинна-Фонга отличается от модели освещения Фонга, поскольку модель Блинна-Фонга использует вектор, нормальный к поверхности объекта и находящийся на полпути между источником света и наблюдателем. [14] Эта модель используется для получения точного зеркального освещения и сокращения времени вычислений. [14] Процесс занимает меньше времени, поскольку нахождение направления вектора отраженного света является более сложным вычислением, чем вычисление вектора нормали на полпути . [19] Хотя это похоже на модель Фонга, она дает другие визуальные результаты, и показатель зеркального отражения или блеск могут потребовать модификации для получения аналогичного зеркального отражения. [20]

Глобальное освещение

Глобальное освещение отличается от локального освещения, поскольку оно рассчитывает свет так, как он будет проходить через всю сцену. [16] Это освещение в большей степени основано на физике и оптике, при этом световые лучи рассеиваются, отражаются и бесконечно отражаются по всей сцене. [21] Все еще ведутся активные исследования глобального освещения, поскольку оно требует большей вычислительной мощности, чем локальное освещение. [22]

Трассировка лучей

Изображение, полученное с помощью трассировки лучей

Источники света испускают лучи, которые взаимодействуют с различными поверхностями посредством поглощения, отражения или преломления. [3] Наблюдатель сцены увидит любой источник света, который достигнет его глаз; луч, который не достигнет наблюдателя, останется незамеченным. [23] Можно смоделировать это, заставив все источники света испускать лучи, а затем вычислить, как каждый из них взаимодействует со всеми объектами на сцене. [24] Однако этот процесс неэффективен, так как большинство световых лучей не достигнет наблюдателя и будет тратить время обработки. [25] Трассировка лучей решает эту проблему, обращая процесс, вместо этого отправляя лучи зрения от наблюдателя и вычисляя, как они взаимодействуют, пока не достигнут источника света. [24] Хотя этот способ более эффективно использует время обработки и создает имитацию света, близко имитирующую естественное освещение, трассировка лучей все еще имеет высокие вычислительные затраты из-за большого количества света, которое достигает глаз наблюдателя. [26]

Радиосити

Излучение учитывает энергию, выделяемую окружающими объектами и источником света. [16] В отличие от трассировки лучей, которая зависит от положения и ориентации наблюдателя, освещение с помощью излучательности не зависит от положения взгляда. [25] Излучение требует большей вычислительной мощности, чем трассировка лучей, но может быть более полезным для сцен со статическим освещением, поскольку его нужно вычислить только один раз. [27] Поверхности сцены можно разделить на большое количество участков; каждый участок излучает немного света и влияет на другие участки, затем необходимо одновременно решить большой набор уравнений, чтобы получить окончательный излучательности каждого участка. [26]

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

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

Полигональная штриховка

Полигональное затенение является частью процесса растеризации , в котором 3D- модели рисуются как 2D- пиксельные изображения. [18] Затенение применяет модель освещения в сочетании с геометрическими атрибутами 3D-модели, чтобы определить, как освещение должно быть представлено в каждом фрагменте (или пикселе) результирующего изображения. [18] Полигоны 3D-модели хранят геометрические значения, необходимые для процесса затенения. [30] Эта информация включает значения положения вершин и нормали поверхности , но может содержать дополнительные данные, такие как текстуры и карты рельефа . [31]

Пример плоской штриховки
Пример штриховки Гуро
Пример затенения по Фонгу

Плоское затенение

Плоское затенение — это простая модель затенения с равномерным применением освещения и цвета для каждого полигона. [32] Цвет и нормаль одной вершины используются для расчета затенения всего полигона. [18] Плоское затенение обходится недорого, поскольку освещение для каждого полигона необходимо рассчитывать только один раз за рендеринг. [32]

затенение по Гуро

Затенение по Гуро — это тип интерполированного затенения, при котором значения внутри каждого полигона являются смесью значений его вершин. [18] Каждой вершине присваивается собственная нормаль, состоящая из среднего значения нормалей поверхности окружающих полигонов. [32] Затем освещение и затенение в этой вершине рассчитываются с использованием средней нормали и выбранной модели освещения. [32] Этот процесс повторяется для всех вершин в 3D-модели. [2] Затем затенение ребер между вершинами рассчитывается путем интерполяции между значениями вершин. [2] Наконец, затенение внутри полигона рассчитывается как интерполяция значений окружающих ребер. [2] Затенение по Гуро создает плавный эффект освещения на поверхности 3D-модели. [2]

Фонг-шейдинг

Затенение Фонга , похожее на затенение Гуро, является другим типом интерполяционного затенения, которое смешивает значения вершин для затенения полигонов. [21] Ключевое различие между ними заключается в том, что затенение Фонга интерполирует значения нормали вершины по всему полигону, прежде чем вычисляет его затенение. [32] Это контрастирует с затенением Гуро, которое интерполирует уже затененные значения вершин по всему полигону. [21] После того, как затенение Фонга вычислило нормаль фрагмента (пикселя) внутри полигона, оно может применить модель освещения, затенив этот фрагмент. [32] Этот процесс повторяется до тех пор, пока каждый полигон 3D-модели не будет затенен. [21]

Световые эффекты

Светоотражающий материал, демонстрирующий каустику

Каустики

Каустика — это эффект света, отраженного и преломленного в среде с искривленными границами раздела или отраженного от искривленной поверхности. [33] Они выглядят как ленты концентрированного света и часто видны при взгляде на водоемы или стекло. [34] Каустика может быть реализована в 3D-графике путем смешивания карты текстуры каустики с текстурной картой затронутых объектов. [34] Текстура каустики может быть либо статическим изображением, которое анимировано для имитации эффектов каустики, либо расчетом каустики в реальном времени на пустом изображении. [34] Последнее более сложно и требует обратной трассировки лучей для имитации фотонов, движущихся через среду 3D-рендеринга. [33] В модели освещения с отображением фотонов выборка Монте-Карло используется в сочетании с трассировкой лучей для вычисления интенсивности света, вызванного каустикой. [33]

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

Отражение карт (также известное как отображение окружения) — это метод, который использует 2D-карты окружения для создания эффекта отражательной способности без использования трассировки лучей. [35] Поскольку внешний вид отражающих объектов зависит от относительного положения наблюдателей, объектов и окружающей среды, графические алгоритмы создают векторы отражения, чтобы определить, как раскрашивать объекты на основе этих элементов. [36] Используя 2D-карты окружения вместо полностью визуализированных 3D-объектов для представления окружения, отражения на объектах можно определить с помощью простых, не требующих больших вычислительных затрат алгоритмов. [35]

Системы частиц

Системы частиц используют наборы мелких частиц для моделирования хаотичных, высокосложных событий, таких как огонь, движущиеся жидкости, взрывы и движущиеся волосы. [37] Частицы, которые составляют сложную анимацию, распределяются эмиттером, который дает каждой частице ее свойства, такие как скорость, продолжительность жизни и цвет. [37] Со временем эти частицы могут перемещаться, менять цвет или изменять другие свойства в зависимости от эффекта. [37] Обычно системы частиц включают случайность , например, в начальных свойствах, которые эмиттер дает каждой частице, чтобы сделать эффект реалистичным и неоднородным. [37] [38]

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

Ссылки

  1. ^ "Свет: искусство экспозиции". GarageFarm . 2020-11-11 . Получено 2020-11-11 .
  2. ^ abcde "Введение в компьютерную графику: освещение и затенение". www.cs.uic.edu . Получено 05.11.2019 .
  3. ^ ab "Введение в компьютерную графику: освещение и затенение". www.cs.uic.edu . Получено 05.11.2019 .
  4. ^ abcd "Освещение в 3D-графике". www.bcchang.com . Получено 2019-11-05 .
  5. ^ abc "Понимание различных типов света". www.pluralsight.com . Получено 2019-11-05 .
  6. ^ abcd "Введение в компьютерную графику: освещение и затенение". www.cs.uic.edu . Получено 05.11.2019 .
  7. ^ Лагард, Себастьен; де Русье, Шарль (лето 2014 г.). Перемещение Frostbite на физически обоснованный рендеринг 3.0. SIGGRAPH.
  8. ^ Фарр, Мэтт; Хамфрис, Грег; Венцель, Якоб (2016). Физически обоснованный рендеринг: от теории к реализации (3-е изд.). Морган Кауфманн. ISBN 978-0128006450.
  9. ^ Вернь, Ромен; Пакановски, Ромен; Барла, Паскаль; Гранье, Ксавье; Шлик, Кристоф (19 февраля 2010 г.). «Масштабирование сияния для универсального улучшения поверхности». Труды симпозиума ACM SIGGRAPH 2010 г. по интерактивной 3D-графике и играм . ACM. стр. 143–150. doi :10.1145/1730804.1730827. ISBN 9781605589398. S2CID  18291692 – через hal.inria.fr.
  10. ^ https://visao.ca/what-is-hdri/#:~:text=High%20dynamic%20range%20images%20are,look%20мультяшный%20and%20less%20профессиональный. [ пустой URL ]
  11. ^ ab "Освещение в 3D-графике". www.bcchang.com . Получено 2019-11-05 .
  12. ^ abcde Поллард, Нэнси (весна 2004 г.). «Освещение и затенение» (PDF) .
  13. ^ abc "Освещение в 3D-графике". www.bcchang.com . Получено 2019-11-05 .
  14. ^ abcdefg "LearnOpenGL - Базовое освещение". learnopengl.com . Получено 2019-11-08 .
  15. ^ "Введение в компьютерную графику: освещение и затенение". www.cs.uic.edu . Получено 08.11.2019 .
  16. ^ abcde "Global Illumination" (PDF) . Georgia Tech Classes . 2002.
  17. ^ abcde Фаррелл. «Локальное освещение». Университет Кента .
  18. ^ abcdefg "Компьютерная графика: затенение и освещение". cglearn.codelight.eu . Получено 2019-10-30 .
  19. ^ ab Джеймс Ф. Блинн (1977). "Модели отражения света для компьютерно-синтезированных изображений". Труды 4-й ежегодной конференции по компьютерной графике и интерактивным технологиям : 192–198. CiteSeerX 10.1.1.131.7741. doi :10.1145/563858.563893
  20. ^ Университет Якоба, «Модель отражения Блинна-Фонга», 2010.
  21. ^ abcd Ли, Хао (2018). «Затенение в OpenGL» (PDF) .
  22. ^ abc Ли, Хао (осень 2018 г.). «Глобальное освещение» (PDF).
  23. ^ "Представляем платформу трассировки лучей NVIDIA RTX". Разработчик NVIDIA . 2018-03-06 . Получено 2019-11-08 .
  24. ^ ab Reif, JH (1994). "Вычислимость и сложность трассировки лучей" (PDF). Дискретная и вычислительная геометрия .
  25. ^ ab Wallace, John R.; Cohen, Michael F.; Greenberg, Donald P. (1987). «Двухпроходное решение уравнения рендеринга: синтез методов трассировки лучей и излучательности». Труды 14-й ежегодной конференции по компьютерной графике и интерактивным технологиям . SIGGRAPH '87. Нью-Йорк, штат Нью-Йорк, США: ACM: 311–320. doi :10.1145/37401.37438. ISBN 9780897912273
  26. ^ ab Гринберг, Дональд П. (1989-04-14). "Модели отражения света для компьютерной графики". Science . 244 (4901): 166–173. Bibcode :1989Sci...244..166G. doi :10.1126/science.244.4901.166. ISSN  0036-8075. PMID  17835348. S2CID  46575183.
  27. ^ Синди Горал, Кеннет Э. Торранс, Дональд П. Гринберг и Б. Баттайл, «Моделирование взаимодействия света между диффузными поверхностями», Computer Graphics , том 18, № 3. ( PDF )
  28. ^ abc Wann Jensen, Henrik (1996). «Глобальное освещение с использованием фотонных карт. Архивировано 08.08.2008 в Wayback Machine » (PDF). Rendering Techniques '96 : 21–30.
  29. ^ ab "Картирование фотонов - Зак Уотерс". web.cs.wpi.edu . Получено 2019-11-08 .
  30. ^ «Введение в компьютерную графику, Раздел 4.1 — Введение в освещение». math.hws.edu .
  31. ^ "Спецификация вершин - OpenGL Wiki". www.khronos.org . Получено 2019-11-06 .
  32. ^ abcdef Фоли. «Модели освещения и затенения» (PDF) .
  33. ^ abc "GPU Gems". Разработчик NVIDIA . Получено 2019-10-30 .
  34. ^ abc "Текстурирование воды каустики с использованием Unity 3D". www.dualheights.se . Получено 2019-11-06 .
  35. ^ ab "Компьютерная графика: Картографирование среды". cglearn.codelight.eu . Получено 01.11.2019 .
  36. ^ Шен, Хан-Вэй. «Картографирование окружающей среды» (PDF) .
  37. ^ abcd Бейли, Майк. «Системы частиц» (PDF) .
  38. ^ "Системы частиц". web.cs.wpi.edu . Получено 2019-11-01 .