Освещение компьютерной графики - Computer graphics lighting
Освещение компьютерной графики это набор методов, используемых для имитации света в компьютерная графика сцены. Хотя методы освещения предлагают гибкость в отношении уровня детализации и доступных функций, они также работают на разных уровнях вычислительных требований и сложность. Художники-графики могут выбирать из множества источников света, моделей, методов затенения и эффектов в соответствии с потребностями каждого приложения.
Источники света
Источники света позволяют по-разному вводить свет в графические сцены.[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] Излучение требует большей вычислительной мощности, чем трассировка лучей, но может быть более полезным для сцен со статическим освещением, потому что его нужно будет вычислить только один раз.[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] Каустика может быть реализована в 3D-графике путем смешивания каустики. карта текстуры с текстурной картой затронутых объектов.[29] Текстура каустики может быть статическим изображением, анимированным для имитации эффектов каустики, или В реальном времени расчет каустики на пустое изображение.[29] Последний более сложный и требует обратного трассировка лучей для имитации фотонов, движущихся в среде 3D-рендера.[28] В модели освещения фотонного отображения Монте-Карло выборка используется вместе с трассировкой лучей для вычисления интенсивности света, вызванного каустикой.[28]
Отображение отражения
Отображение отражения (также известное как отображение среды) - это метод, который использует двухмерные карты среды для создания эффекта отражательная способность без использования трассировки лучей.[30] Поскольку внешний вид отражающих объектов зависит от относительного положения зрителей, объектов и окружающей среды, графические алгоритмы создают векторы отражения, чтобы определить, как раскрасить объекты на основе этих элементов.[31] Используя 2D-карты окружающей среды, а не полностью визуализированные, 3D-объекты для представления окружающей среды, отражения от объектов можно определять с помощью простых, недорогих в вычислительном отношении алгоритмов.[30]
Системы частиц
Системы частиц используют наборы небольших частицы для моделирования хаотических событий высокой сложности, таких как пожар, движущиеся жидкости, взрывы и движущиеся волосы.[32] Частицы, составляющие сложную анимацию, распределяются эмиттером, который придает каждой частице ее свойства, такие как скорость, продолжительность жизни и цвет.[32] Со временем эти частицы могут двигаться, менять цвет или изменять другие свойства в зависимости от эффекта.[32] Обычно системы частиц включают случайность, например, в исходных свойствах, которые эмиттер придает каждой частице, чтобы сделать эффект реалистичным и неоднородным.[32][33]
Смотрите также
Рекомендации
- ^ а б «Введение в компьютерную графику: освещение и затенение». www.cs.uic.edu. Получено 2019-11-05.
- ^ а б c d е «Введение в компьютерную графику: освещение и затенение». www.cs.uic.edu. Получено 2019-11-05.
- ^ а б c «Освещение в 3D графике». www.bcchang.com. Получено 2019-11-05.
- ^ а б c «Понимание различных типов света». www.pluralsight.com. Получено 2019-11-05.
- ^ а б c «Освещение в 3D графике». www.bcchang.com. Получено 2019-11-05.
- ^ а б c d «Освещение в 3D графике». www.bcchang.com. Получено 2019-11-05.
- ^ а б c d е Поллард, Нэнси (весна 2004 г.). «Освещение и затенение» (PDF).
- ^ а б c d е ж грамм «LearnOpenGL - Основное освещение». Learnopengl.com. Получено 2019-11-08.
- ^ «Введение в компьютерную графику: освещение и затенение». www.cs.uic.edu. Получено 2019-11-08.
- ^ а б c d е «Глобальное освещение» (PDF). Технологические классы Джорджии. 2002.
- ^ а б c d е Фаррелл. «Местное освещение». Кентский университет.
- ^ а б c d е ж грамм «Компьютерная графика: затенение и освещение». cglearn.codelight.eu. Получено 2019-10-30.
- ^ а б Джеймс Ф. Блинн (1977). «Модели отражения света для изображений, синтезированных на компьютере». Proc. 4-я ежегодная конференция по компьютерной графике и интерактивным техникам: 192–198. CiteSeerX 10.1.1.131.7741. Дои:10.1145/563858.563893
- ^ Университет Иакова "Модель отражения Блинна-Фонга ", 2010.
- ^ а б c d Ли, Хао (2018). «Затенение в OpenGL» (PDF).
- ^ а б c Ли, Хао (осень 2018). «Глобальное освещение» (PDF).
- ^ «Представляем платформу трассировки лучей NVIDIA RTX». Разработчик NVIDIA. 2018-03-06. Получено 2019-11-08.
- ^ а б Рейф, Дж. Х. (1994). "Вычислимость и сложность трассировки лучей "(PDF). Дискретная и вычислительная геометрия.
- ^ а б Уоллес, Джон Р .; Коэн, Майкл Ф .; Гринберг, Дональд П. (1987). «Двухпроходное решение уравнения рендеринга: синтез методов трассировки лучей и излучения». Материалы 14-й ежегодной конференции по компьютерной графике и интерактивным технологиям. СИГГРАФ '87. Нью-Йорк, Нью-Йорк, США: ACM: 311–320. Дои:10.1145/37401.37438. ISBN 9780897912273.
- ^ а б Гринберг, Дональд П. (1989-04-14). «Модели отражения света для компьютерной графики». Наука. 244 (4901): 166–173. Дои:10.1126 / science.244.4901.166. ISSN 0036-8075. PMID 17835348.
- ^ Синди Горал, Кеннет Э. Торранс, Дональд П. Гринберг и Б. Баттейл "Моделирование взаимодействия света между рассеянными поверхностями ", Компьютерная графика, Vol. 18, № 3. (PDF )
- ^ а б c Ванн Йенсен, Хенрик (1996). "Глобальное освещение с использованием фотонных карт В архиве 2008-08-08 на Wayback Machine "(PDF). Методы рендеринга '96: 21–30.
- ^ а б "Фотонная карта - Зак Уотерс". web.cs.wpi.edu. Получено 2019-11-08.
- ^ «Введение в освещение».
- ^ «Спецификация вершин - OpenGL Wiki». www.khronos.org. Получено 2019-11-06.
- ^ а б c d е ж Фоли. «Модели освещения и затенение» (PDF).
- ^ а б c d «Введение в компьютерную графику: освещение и затенение». www.cs.uic.edu. Получено 2019-11-05.
- ^ а б c "Камни GPU". Разработчик NVIDIA. Получено 2019-10-30.
- ^ а б c «Текстурирование воды Caustics с использованием Unity 3D». www.dualheights.se. Получено 2019-11-06.
- ^ а б «Компьютерная графика: картографирование окружающей среды». cglearn.codelight.eu. Получено 2019-11-01.
- ^ Шэнь, Хань-Вэй. «Картирование окружающей среды» (PDF).
- ^ а б c d Бейли, Майк. «Системы частиц» (PDF).
- ^ «Системы частиц». web.cs.wpi.edu. Получено 2019-11-01.