Освещение компьютерной графики - это набор методов, используемых для имитации света в сценах компьютерной графики . Хотя методы освещения предлагают гибкость в отношении уровня детализации и доступных функций, они также работают на разных уровнях вычислительных требований и сложности . Художники-графики могут выбирать из множества источников света, моделей, методов затенения и эффектов в соответствии с потребностями каждого приложения.
Источники света
Источники света позволяют по-разному вводить свет в графические сцены. [1]
Точка
Точечные источники излучают свет из одной точки во всех направлениях, причем интенсивность света уменьшается с расстоянием. [2] Примером точечного источника является автономная лампочка. [3]
Направленный
Направленный источник (или удаленный источник) равномерно освещает сцену с одного направления. [3] В отличие от точечного источника, интенсивность света, создаваемого направленным источником, не изменяется с расстоянием, поскольку направленный источник рассматривается как находящийся очень далеко от сцены. [3] Примером направленного источника является солнечный свет. [4]
Прожектор
Прожектор создает направленный световой конус . [2] Свет становится более интенсивным ближе к источнику прожектора и к центру светового конуса. [2] Пример прожектора - фонарик. [4]
Окружающий
Источники окружающего света освещают объекты, даже когда нет другого источника света. [2] Интенсивность окружающего света не зависит от направления, расстояния и других объектов, что означает, что эффект полностью однороден по всей сцене. [2] Этот источник гарантирует, что объекты будут видны даже в полной темноте. [4]
Освещение взаимодействия
В компьютерной графике свет обычно состоит из нескольких компонентов. [5] Общий эффект источника света на объект определяется комбинацией взаимодействий объекта с этими компонентами. [5] Три основных компонента освещения (и последующих типов взаимодействия) - это диффузное, рассеянное и зеркальное. [5]
Размытый
Рассеянное освещение (или диффузное отражение ) - это прямое освещение объекта ровным количеством света, взаимодействующего со светорассеивающей поверхностью. [6] [7] После того, как свет попадает на объект, он отражается в зависимости от свойств поверхности объекта, а также от угла падающего света. [7] Это взаимодействие вносит основной вклад в яркость объекта и формирует основу его цвета. [6]
Окружающий
Поскольку окружающий свет не имеет направления, он взаимодействует равномерно по всем поверхностям, причем его интенсивность определяется силой источников окружающего света и свойствами материалов поверхностей объектов, а именно их коэффициентами отражения окружающей среды . [6] [7]
Зеркальный
Компонент зеркального освещения придает объектам сияние и блики. [6] Это отличается от зеркальных эффектов, потому что другие объекты в окружающей среде не видны в этих отражениях. [7] Вместо этого зеркальное освещение создает яркие пятна на объектах в зависимости от интенсивности компонента зеркального освещения и коэффициента зеркального отражения поверхности. [7]
Модели освещения
Модели освещения используются для имитации световых эффектов в визуализированных средах, где свет аппроксимируется на основе физики света. [8] Без моделей освещения воспроизведение световых эффектов в естественном виде потребует большей вычислительной мощности, чем это практично для компьютерной графики. [8] Эта модель освещения или освещения предназначена для вычисления цвета каждого пикселя или количества света, отраженного от различных поверхностей в сцене. [9] Существует две основные модели освещения: объектно-ориентированное освещение и глобальное освещение. [10] Они отличаются тем, что объектно-ориентированное освещение рассматривает каждый объект индивидуально, тогда как глобальное освещение отображает, как свет взаимодействует между объектами. [10] В настоящее время исследователи разрабатывают методы глобального освещения, чтобы более точно воспроизвести взаимодействие света с окружающей средой. [10]
Объектно-ориентированное освещение
Объектно-ориентированное освещение, также известное как локальное освещение, определяется путем сопоставления одного источника света с одним объектом. [11] Этот метод быстр в вычислении, но часто является неполным приближением того, как свет будет вести себя в сцене в действительности. [11] Это часто аппроксимируется суммированием комбинации зеркального, рассеянного и окружающего света определенного объекта. [8] Двумя преобладающими моделями местного освещения являются модели освещения Фонга и Блинна-Фонга. [12]
Модель освещения Фонга
Одна из самых распространенных моделей затенения - модель Фонга. [8] Модель Фонга предполагает, что интенсивность каждого пикселя является суммой интенсивности из-за диффузного, зеркального и окружающего освещения. [11] Эта модель учитывает местоположение зрителя для определения зеркального света с использованием угла света, отражающегося от объекта. [12] косинус угла берется и возведенный в степень решила дизайнер. [11] С его помощью дизайнер может решить, насколько широкой подсветкой они хотят выделить объект; из-за этого мощность называется значением блеска. [12] Значение блеска определяется шероховатостью поверхности, где зеркало может иметь значение бесконечности, а самая грубая поверхность может иметь значение единицы. [11] Эта модель создает более реалистичную белую подсветку на основе перспективы зрителя. [8]
Модель освещения Блинн-Фонга
Модель освещения Блинна-Фонга похожа на модель Фонга, поскольку в ней используется зеркальный свет для создания бликов на объекте на основе его блеска. [13] Модель Блинн-Фонга отличается от модели освещения Фонга, поскольку модель Блинн-Фонга использует вектор, нормальный к поверхности объекта и находящийся на полпути между источником света и наблюдателем. [8] Эта модель используется для получения точного зеркального освещения и сокращения времени вычислений. [8] Этот процесс занимает меньше времени, потому что определение направления вектора отраженного света является более сложным вычислением, чем вычисление среднего вектора нормали . [13] Хотя эта модель похожа на модель Фонга, она дает разные визуальные результаты, а показатель степени зеркального отражения или блеска может нуждаться в модификации для получения аналогичного зеркального отражения. [14]
Глобальное освещение
Глобальное освещение отличается от местного, потому что оно рассчитывает свет, который будет распространяться по всей сцене. [10] Это освещение в большей степени основано на физике и оптике, поскольку световые лучи рассеиваются, отражаются и бесконечно отражаются по всей сцене. [15] Все еще ведутся активные исследования глобального освещения, поскольку оно требует большей вычислительной мощности, чем локальное освещение. [16]
трассировка лучей
Источники света испускают лучи, которые взаимодействуют с различными поверхностями посредством поглощения, отражения или преломления. [1] Наблюдатель сцены увидит любой источник света, который достигает их глаз; луч, не доходящий до наблюдателя, остается незамеченным. [17] Это можно смоделировать, если все источники света испускают лучи, а затем вычислить, как каждый из них взаимодействует со всеми объектами сцены. [18] Однако этот процесс неэффективен, так как большая часть световых лучей не достигнет наблюдателя и будет тратить время обработки. [19] Трассировка лучей решает эту проблему, обращая процесс вспять, вместо этого отправляя лучи обзора от наблюдателя и вычисляя, как они взаимодействуют, пока не достигнут источника света. [18] Хотя этот способ более эффективно использует время обработки и обеспечивает имитацию света, максимально имитирующую естественное освещение, трассировка лучей по-прежнему связана с высокими вычислительными затратами из-за большого количества света, который достигает глаз зрителя. [20]
Лучистость
Излучение учитывает энергию, излучаемую окружающими объектами и источником света. [10] В отличие от трассировки лучей, которая зависит от положения и ориентации наблюдателя, лучистое освещение не зависит от положения обзора. [19] Radiosity требует большей вычислительной мощности, чем трассировка лучей, но может быть более полезным для сцен со статическим освещением, потому что его нужно будет вычислить только один раз. [21] Поверхности сцены можно разделить на большое количество фрагментов; каждое пятно излучает некоторый свет и влияет на другие участки, тогда необходимо одновременно решить большой набор уравнений, чтобы получить окончательное излучение каждого участка. [20]
Фотонное отображение
Фотонное отображение было создано как двухпроходный алгоритм глобального освещения, который более эффективен, чем трассировка лучей. [22] Это основной принцип слежения за фотонами, испускаемыми источником света, через ряд этапов. [22] Первый проход включает в себя фотоны, высвобождаемые из источника света и отражающиеся от их первого объекта; затем записывается эта карта расположения фотонов. [16] Карта фотонов содержит положение и направление каждого фотона, который либо отскакивает, либо поглощается. [22] Второй проход происходит при рендеринге, когда отражения рассчитываются для разных поверхностей. [23] В этом процессе фотонная карта отделяется от геометрии сцены, что означает, что визуализация может быть рассчитана отдельно. [16] Это полезный метод, потому что он может моделировать каустику, и шаги предварительной обработки не нужно повторять, если вид или объекты меняются. [23]
Полигональная штриховка
Полигональное затенение - это часть процесса растеризации, когда 3D- модели рисуются как 2D- пиксельные изображения. [12] Затенение применяет модель освещения в сочетании с геометрическими атрибутами 3D-модели, чтобы определить, как освещение должно быть представлено в каждом фрагменте (или пикселе) результирующего изображения. [12] В многоугольниках модельного магазина 3D геометрические значения , необходимых для процесса затенения. [24] Эта информация включает в себя значения положения вершин и нормали к поверхности , но может содержать дополнительные данные, такие как текстуры и карты рельефа . [25]
Плоское затенение
Плоское затенение - это простая модель затенения с равномерным применением освещения и цвета для каждого полигона. [26] Цвет и нормаль одной вершины используются для вычисления затенения всего многоугольника. [12] Плоское затенение стоит недорого, поскольку освещение для каждого многоугольника необходимо рассчитывать только один раз за визуализацию. [26]
Затенение по Гуро
Затенение Гуро - это тип интерполированного затенения, при котором значения внутри каждого многоугольника представляют собой смесь значений его вершин. [12] Каждой вершине дается собственная нормаль, состоящая из среднего значения нормалей к поверхности окружающих многоугольников. [26] Затем вычисляется освещение и затенение в этой вершине с использованием средней нормали и выбранной модели освещения. [26] Этот процесс повторяется для всех вершин в 3D-модели. [27] Затем вычисляется затенение краев между вершинами путем интерполяции между значениями вершин. [27] Наконец, затенение внутри многоугольника вычисляется как интерполяция значений окружающих краев. [27] Затенение по Гуро создает эффект плавного освещения на поверхности 3D-модели. [27]
Затенение по Фонгу
Затенение Фонга , аналогичное затенению по Гуро, представляет собой другой тип интерполяционного затенения, который смешивает значения вершин с затенением полигонов. [15] Ключевое различие между ними состоит в том, что затенение Фонга интерполирует нормальные значения вершин по всему многоугольнику перед вычислением его затенения. [26] Это контрастирует с затенением по Гуро, которое интерполирует уже затененные значения вершин по всему многоугольнику. [15] После того, как затенение Фонга вычислило нормаль фрагмента (пикселя) внутри многоугольника, оно может применить модель освещения, затеняя этот фрагмент. [26] Этот процесс повторяется до тех пор, пока не будет закрашен каждый многоугольник 3D-модели. [15]
Световые эффекты
Каустики
Каустика - это световой эффект отраженного и преломленного света, движущегося через среду. [28] Они выглядят как ленты концентрированного света и часто видны при взгляде на воду или стекло. [29] Каустика может быть реализована в трехмерной графике путем смешивания карты текстуры каустика с картой текстуры затронутых объектов. [29] Текстура каустики может быть либо статическим изображением, которое анимировано для имитации эффектов каустики, либо расчетом каустики в реальном времени на пустом изображении. [29] Последний вариант более сложен и требует обратной трассировки лучей для имитации фотонов, движущихся через среду 3D-рендеринга. [28] В модели освещения с фотонным картированием выборка методом Монте-Карло используется в сочетании с трассировкой лучей для вычисления интенсивности света, вызванного каустикой. [28]
Отображение отражения
Отображение отражения (также известное как отображение среды) - это метод, который использует двухмерные карты среды для создания эффекта отражательной способности без использования трассировки лучей. [30] Поскольку внешний вид отражающих объектов зависит от относительного положения зрителей, объектов и окружающей среды, графические алгоритмы создают векторы отражения, чтобы определить, как раскрасить объекты на основе этих элементов. [31] Используя 2D-карты окружающей среды, а не полностью визуализированные, 3D-объекты для представления окружающей среды, отражения от объектов могут быть определены с помощью простых, недорогих в вычислительном отношении алгоритмов. [30]
Системы частиц
Системы частиц используют наборы мелких частиц для моделирования хаотических событий высокой сложности, таких как пожар, движущиеся жидкости, взрывы и движущиеся волосы. [32] Частицы, составляющие сложную анимацию, распределяются эмиттером, который придает каждой частице ее свойства, такие как скорость, продолжительность жизни и цвет. [32] Со временем эти частицы могут двигаться, менять цвет или изменять другие свойства, в зависимости от эффекта. [32] Обычно системы частиц включают случайность , например, в исходные свойства, которые эмиттер придает каждой частице, чтобы сделать эффект реалистичным и неоднородным. [32] [33]
Смотрите также
- Попиксельное освещение
- Компьютерная графика
Рекомендации
- ^ a b «Введение в компьютерную графику: освещение и затенение» . www.cs.uic.edu . Проверено 5 ноября 2019 .
- ^ а б в г д «Введение в компьютерную графику: освещение и затенение» . www.cs.uic.edu . Проверено 5 ноября 2019 .
- ^ а б в «Освещение в 3D графике» . www.bcchang.com . Проверено 5 ноября 2019 .
- ^ а б в «Понимание различных типов света» . www.pluralsight.com . Проверено 5 ноября 2019 .
- ^ а б в «Освещение в 3D графике» . www.bcchang.com . Проверено 5 ноября 2019 .
- ^ а б в г «Освещение в 3D графике» . www.bcchang.com . Проверено 5 ноября 2019 .
- ^ а б в г д Поллард, Нэнси (весна 2004 г.). «Освещение и затенение» (PDF) .
- ^ Б с д е е г «LearnOpenGL - Основное освещение» . Learnopengl.com . Проверено 8 ноября 2019 .
- ^ «Введение в компьютерную графику: освещение и затенение» . www.cs.uic.edu . Проверено 8 ноября 2019 .
- ^ а б в г д «Глобальное освещение» (PDF) . Технологические классы Джорджии . 2002 г.
- ^ а б в г д Фаррелл. «Местное освещение» . Кентский университет .
- ^ Б с д е е г «Компьютерная графика: затенение и освещение» . cglearn.codelight.eu . Проверено 30 октября 2019 .
- ^ a b Джеймс Ф. Блинн (1977). «Модели отражения света для изображений, синтезированных на компьютере». Proc. 4-я ежегодная конференция по компьютерной графике и интерактивным техникам : 192–198. CiteSeerX 10.1.1.131.7741. DOI : 10,1145 / 563858,563893
- ^ Университет Джейкоба, " Модель отражения Блинна-Фонга ", 2010.
- ^ а б в г Ли, Хао (2018). «Затенение в OpenGL» (PDF) .
- ^ a b c Ли, Хао (осень 2018 г.). «Глобальное освещение» (PDF).
- ^ «Представляем платформу трассировки лучей NVIDIA RTX» . Разработчик NVIDIA . 2018-03-06 . Проверено 8 ноября 2019 .
- ^ a b Рейф, JH (1994). « Вычислимость и сложность трассировки лучей » (PDF). Дискретная и вычислительная геометрия .
- ^ a b Уоллес, Джон Р .; Коэн, Майкл Ф .; Гринберг, Дональд П. (1987). «Двухпроходное решение уравнения рендеринга: синтез методов трассировки лучей и излучения». Материалы 14-й ежегодной конференции по компьютерной графике и интерактивным методам . СИГГРАФ '87. Нью-Йорк, штат Нью-Йорк, США: ACM: 311–320. DOI : 10.1145 / 37401.37438 . ISBN 9780897912273 .
- ^ а б Гринберг, Дональд П. (1989-04-14). «Модели отражения света для компьютерной графики». Наука . 244 (4901): 166–173. DOI : 10.1126 / science.244.4901.166 . ISSN 0036-8075 . PMID 17835348 .
- ^ Синди Горал, Кеннет Э. Торранс, Дональд П. Гринберг и Б. Баттейл, " Моделирование взаимодействия света между рассеянными поверхностями ", Компьютерная графика , Vol. 18, № 3. ( PDF )
- ^ a b c Ванн Йенсен, Хенрик (1996). « Глобальное освещение с помощью фотонных карт в архив 2008-08-08 в Wayback Machine » (PDF). Методы рендеринга '96 : 21–30.
- ^ а б «Фотонное картирование - Зак Уотерс» . web.cs.wpi.edu . Проверено 8 ноября 2019 .
- ^ «Введение в освещение» .
- ^ «Спецификация вершин - OpenGL Wiki» . www.khronos.org . Проверено 6 ноября 2019 .
- ^ а б в г д е Фоли. «Модели освещения и затенение» (PDF) .
- ^ а б в г «Введение в компьютерную графику: освещение и затенение» . www.cs.uic.edu . Проверено 5 ноября 2019 .
- ^ а б в «Самоцветы GPU» . Разработчик NVIDIA . Проверено 30 октября 2019 .
- ^ а б в «Текстурирование воды Caustics с использованием Unity 3D» . www.dualheights.se . Проверено 6 ноября 2019 .
- ^ а б «Компьютерная графика: картографирование окружающей среды» . cglearn.codelight.eu . Проверено 1 ноября 2019 .
- ^ Шэнь, Хань-Вэй. «Составление карты окружающей среды» (PDF) .
- ^ а б в г Бейли, Майк. "Системы частиц" (PDF) .
- ^ «Системы частиц» . web.cs.wpi.edu . Проверено 1 ноября 2019 .