Лекция
Это продолжение увлекательной статьи про рендеринг .
...
мультфильмы визуализировались с помощью растеризации до того, как трассировка лучей и трассировка пути стали практичными.
Рендерер объединяет растеризацию с обработкой геометрии (которая не является специфичной для растеризации) и обработкой пикселей , которая вычисляет значения цвета RGB , которые помещаются в буфер кадра для отображения.
Основными задачами растеризации (включая обработку пикселей) являются:
3D-растеризация обычно является частью графического конвейера , в котором приложение предоставляет списки треугольников для рендеринга, а система рендеринга преобразует и проецирует их координаты, определяет, какие треугольники потенциально видны в области просмотра , и выполняет указанные выше задачи растеризации и обработки пикселей перед отображением конечного результата на экране.
Исторически 3D-растеризация использовала алгоритмы, такие как алгоритм Уорнока и рендеринг сканлайна (также называемый «скан-преобразованием»), которые могут обрабатывать произвольные полигоны и могут растеризовать множество фигур одновременно. Хотя такие алгоритмы по-прежнему важны для 2D-рендеринга, 3D-рендеринг теперь обычно делит фигуры на треугольники и растеризует их по отдельности, используя более простые методы.
Существуют высокопроизводительные алгоритмы для растеризации 2D-линий , включая сглаженные линии , а также эллипсы и заполненные треугольники. Важным частным случаем 2D-растеризации является рендеринг текста , который требует тщательного сглаживания и округления координат, чтобы избежать искажения буквенных форм и сохранить интервал, плотность и резкость.
После проецирования 3D-координат на плоскость изображения растеризация в первую очередь является 2D-проблемой, но 3-е измерение требует удаления скрытых поверхностей . Ранняя компьютерная графика использовала геометрические алгоритмы или ray casting для удаления скрытых частей фигур или использовала алгоритм художника , который сортирует фигуры по глубине (расстоянию от камеры) и визуализирует их сзади вперед. Сортировка по глубине позже была исключена путем включения сравнения глубины в алгоритм визуализации строк сканирования . Алгоритм z-буфера выполняет сравнения косвенно, включая глубину или значение «z» в буфер кадра . Пиксель покрывается фигурой только в том случае, если значение z этой фигуры ниже (указывая на близость к камере), чем текущее значение z в буфере. Z-буфер требует дополнительной памяти (дорогой ресурс на момент его изобретения), но упрощает код растеризации и допускает несколько проходов. Память теперь стала быстрее и объемнее, а z-буфер почти всегда используется для рендеринга в реальном времени.
Недостатком базового алгоритма z-буфера является то, что каждый пиксель либо полностью покрывается одним объектом, либо заполняется фоновым цветом, что приводит к появлению неровных краев на конечном изображении. Ранние подходы к сглаживанию решали эту проблему путем обнаружения частичного покрытия пикселя формой и вычисления покрытой области. A-буфер (и другие методы субпиксельной и множественной выборки ) решают эту проблему менее точно, но с более высокой производительностью. Для 3D-графики в реальном времени стало обычным использовать сложные эвристики (и даже нейронные сети ) для выполнения сглаживания.
В 3D-растеризации цвет обычно определяется пиксельным шейдером или фрагментным шейдером , небольшой программой, которая запускается для каждого пикселя. Шейдер не имеет (или не может) прямого доступа к 3D-данным для всей сцены (это было бы очень медленно и привело бы к алгоритму, похожему на трассировку лучей), и были разработаны различные методы для рендеринга эффектов, таких как тени и отражения, с использованием только текстурного отображения и нескольких проходов.
Более старые и более простые реализации 3D-растеризации не поддерживали шейдеры и использовали простые методы затенения, такие как плоское затенение (освещение вычисляется один раз для каждого треугольника, который затем визуализируется полностью одним цветом), затенение Гуро (освещение вычисляется с использованием векторов нормалей, определенных в вершинах, а затем цвета интерполируются по каждому треугольнику) или затенение Фонга (векторы нормалей интерполируются по каждому треугольнику, а освещение вычисляется для каждого пикселя).
До недавнего времени Pixar использовала растеризацию для рендеринга своих анимационных фильмов . В отличие от рендереров, обычно используемых для графики в реальном времени, система рендеринга Reyes в программном обеспечении Pixar RenderMan была оптимизирована для рендеринга очень маленьких (размером с пиксель) полигонов и включала методы стохастической выборки, которые обычно ассоциируются с трассировкой лучей .
Один из самых простых способов визуализации 3D-сцены — это проверка пересечения луча , начинающегося в точке обзора («глаз» или «камера»), с любой геометрической фигурой в сцене, повторяя этот тест, используя другое направление луча для каждого пикселя. Этот метод, называемый ray casting , был важен в ранней компьютерной графике и является фундаментальным строительным блоком для более сложных алгоритмов. Ray casting может использоваться для визуализации фигур, определенных операциями конструктивной твердотельной геометрии (CSG).
Ранние эксперименты по отбрасыванию лучей включают работу Артура Аппеля в 1960-х годах. Аппель визуализировал тени, отбрасывая дополнительный луч от каждой видимой точки поверхности к источнику света. Он также пытался визуализировать плотность освещения, отбрасывая случайные лучи от источника света к объекту и нанося точки пересечения (аналогично более поздней технике, называемой фотонным отображением ).
Метод Ray marching можно использовать для поиска первого пересечения луча со сложной формой, например, с этим фракталом Мандельбульба .
При рендеринге сцен, содержащих много объектов, проверка пересечения луча с каждым объектом становится очень дорогой. Специальные структуры данных используются для ускорения этого процесса, позволяя быстро исключать большое количество объектов (например, объекты за камерой). Эти структуры аналогичны индексам базы данных для поиска соответствующих объектов. Наиболее распространенными являются иерархия ограничивающего объема (BVH), которая хранит предварительно вычисленный ограничивающий прямоугольник или сферу для каждой ветви дерева объектов, и дерево kd , которое рекурсивно делит пространство на две части. Современные графические процессоры включают аппаратное ускорение для тестов пересечения BVH. Деревья kd являются особым случаем двоичного разбиения пространства , которое часто использовалось в ранней компьютерной графике (оно также может генерировать порядок растеризации для алгоритма художника ). Октодеревья , еще один исторически популярный метод, по-прежнему часто используются для объемных данных.
Геометрических формул достаточно для нахождения пересечения луча с такими фигурами, как сферы , многоугольники и многогранники , но для большинства криволинейных поверхностей нет аналитического решения , или пересечение трудно вычислить точно с использованием чисел с плавающей точкой ограниченной точности . Иногда можно использовать алгоритмы поиска корней , такие как метод Ньютона . Чтобы избежать этих осложнений, криволинейные поверхности часто аппроксимируются как сетки треугольников . Объемный рендеринг (например, рендеринг облаков и дыма) и некоторые поверхности, такие как фракталы , могут потребовать ray marching вместо базового ray casting.
Спиральная сфера и Джулия, Деталь , компьютерное изображение, созданное визуальным художником Робертом У. МакГрегором с использованием только POV-Ray 3.6 и его встроенного языка описания сцен.
Ray casting можно использовать для рендеринга изображения путем трассировки лучей света в обратном направлении от имитируемой камеры. После нахождения точки на поверхности, где возник луч, другой луч трассируется к источнику света, чтобы определить, отбрасывает ли что-либо тень на эту точку. Если нет, то модель отражения (например, модель отражения Ламберта для матовых поверхностей или модель отражения Фонга для глянцевых поверхностей) используется для вычисления вероятности того, что фотон, прибывающий из источника света, будет отражен в сторону камеры, и это умножается на яркость света для определения яркости пикселя. Если имеется несколько источников света, вклад яркости источников света суммируется. Для цветных изображений вычисления повторяются для нескольких длин волн света (например, красного, зеленого и синего).
Классическая трассировка лучей (также называемая Whitted-style или рекурсивной трассировкой лучей) расширяет этот метод, так что он может визуализировать зеркала и прозрачные объекты. Если луч, трассируемый назад от камеры, исходит из точки на зеркале, формула отражения из геометрической оптики используется для вычисления направления, откуда пришел отраженный луч, и другой луч отбрасывается назад в этом направлении. Если луч исходит от прозрачной поверхности, лучи отбрасываются назад как для отраженных , так и для преломленных лучей (используя закон Снеллиуса для вычисления преломленного направления), и поэтому трассировка лучей должна поддерживать ветвящееся «дерево» лучей. В простых реализациях для трассировки каждого луча вызывается рекурсивная функция .
Трассировка лучей обычно выполняет сглаживание , беря среднее значение нескольких образцов для каждого пикселя. Она также может использовать несколько образцов для таких эффектов, как глубина резкости и размытость движения . Если для каждой из этих функций используются равномерно распределенные направления лучей или время, требуется много лучей, и некоторое сглаживание останется. Трассировка лучей в стиле Кука , стохастическая или Монте-Карло избегает этой проблемы, используя случайную выборку вместо равномерно распределенных образцов. Этот тип трассировки лучей обычно называют распределенной трассировкой лучей или трассировкой лучей распределения , потому что она выбирает лучи из распределений вероятностей . Распределенная трассировка лучей также может отображать реалистичные «мягкие» тени от больших источников света, используя случайную выборку точек на источнике света при проверке на затенение, и она может имитировать хроматическую аберрацию , выбирая несколько длин волн из спектра света .
Реальные поверхностные материалы отражают небольшое количество света почти в каждом направлении, поскольку они имеют небольшие (или микроскопические) выпуклости и канавки. Трассировщик лучей распределения может имитировать это, выбирая возможные направления лучей, что позволяет визуализировать размытые отражения от глянцевых и металлических поверхностей. Однако, если эта процедура повторяется рекурсивно для имитации реалистичного непрямого освещения, и если в каждой точке поверхности берется более одного образца, дерево лучей быстро становится огромным. Другой вид трассировки лучей, называемый трассировкой пути , обрабатывает непрямой свет более эффективно, избегая ветвления и гарантирует, что распределение всех возможных путей от источника света до камеры выбирается беспристрастным образом.
Трассировка лучей часто использовалась для рендеринга отражений в анимационных фильмах, пока трассировка пути не стала стандартом для рендеринга фильмов. Такие фильмы, как «Шрек 2» и «Университет монстров», также использовали трассировку лучей распределения или трассировку пути для предварительного вычисления непрямого освещения для сцены или кадра перед его рендерингом с использованием растеризации.
Достижения в области технологий графических процессоров сделали трассировку лучей в реальном времени возможной в играх, хотя в настоящее время она почти всегда используется в сочетании с растеризацией. Это позволяет создавать визуальные эффекты, которые трудно реализовать только с помощью растеризации, включая отражение от изогнутых поверхностей и взаимно отражающих объектов, и тени, которые точны в широком диапазоне расстояний и ориентаций поверхности. Поддержка трассировки лучей включена в последние версии графических API, используемых в играх, таких как DirectX , Metal и Vulkan
Трассировка лучей использовалась для визуализации моделируемых черных дыр и внешнего вида объектов, движущихся со скоростью, близкой к скорости света, путем учета кривизны пространства-времени и релятивистских эффектов во время моделирования световых лучей.
Классическая демонстрация излучательности. Поверхности разделены на ячейки 16x16 или 16x32. Вверху: только прямой свет. Внизу: решение излучательности (для альбедо 0,85).
Вверху: та же сцена с более мелкой сеткой излучения, сглаживание заплаток во время финального рендеринга с использованием билинейной интерполяции . Внизу: сцена, визуализированная с трассировкой пути (с использованием рендерера PBRT).
Излучение (названное в честь радиометрической величины с тем же названием ) — это метод рендеринга объектов, освещенных светом, отражающимся от шероховатых или матовых поверхностей . Этот тип освещения называется непрямым светом , освещением окружающей среды или диффузным освещением , а проблема его реалистичной визуализации называется глобальным освещением . Растеризация и основные формы трассировки лучей (кроме трассировки лучей распределения и трассировки пути) могут лишь приблизительно аппроксимировать непрямой свет, например, путем добавления равномерного количества «окружающего» освещения, выбранного художником. Методы излучения также подходят для рендеринга сцен с площадным освещением , таким как прямоугольные панели флуоресцентного освещения, которые трудно растеризовать и традиционную трассировку лучей. Излучение считается физически обоснованным методом , то есть он направлен на имитацию потока света в среде с использованием уравнений и экспериментальных данных из физики, однако он часто предполагает, что все поверхности непрозрачны и идеально ламбертовы , что снижает реализм и ограничивает его применимость.
В оригинальном методе излучательности (впервые предложенном в 1984 году), который теперь называется классическим излучателем , поверхности и источники света в сцене разбиваются на части, называемые патчами , этот процесс называется сеткой (этот шаг делает его методом конечных элементов ). Затем код рендеринга должен определить, какая часть света, излучаемого или диффузно отражаемого (рассеиваемого) каждым патчем, принимается каждым другим патчем. Эти части называются форм-факторами или факторами вида (впервые использовались в инженерии для моделирования лучистого теплообмена ). Форм-факторы умножаются на альбедо принимающей поверхности и помещаются в матрицу . Затем освещение в сцене можно выразить в виде матричного уравнения (или, что эквивалентно, системы линейных уравнений ), которое можно решить методами линейной алгебры .
Решение уравнения излучательности дает общее количество света, излучаемого и отражаемого каждым патчем, которое делится на площадь, чтобы получить значение, называемое излучательностью , которое может использоваться при растеризации или трассировке лучей для определения цвета пикселей, соответствующих видимым частям патча. Для рендеринга в реальном времени это значение (или, чаще, освещенность , которая не зависит от локального альбедо поверхности) может быть предварительно вычислено и сохранено в текстуре (называемой картой освещенности ) или сохранено как данные вершин для 3D-моделей. Эта функция использовалась в программном обеспечении для архитектурной визуализации, чтобы обеспечить возможность обхода интерьера здания в реальном времени после расчета освещения.
Большой размер матриц, используемых в классической излучательности (квадрат числа участков), вызывает проблемы для реалистичных сцен. Практические реализации могут использовать итерации Якоби или Гаусса-Зейделя , что эквивалентно (по крайней мере, в случае Якоби) моделированию распространения света по одному отскоку за раз, пока количество оставшегося света (еще не поглощенного поверхностями) не станет незначительным. Количество требуемых итераций (отскоков) зависит от сцены, а не от количества участков, поэтому общая работа пропорциональна квадрату числа участков (в отличие от этого, решение матричного уравнения с использованием метода Гаусса требует работы, пропорциональной кубу числа участков). Форм-факторы могут быть пересчитаны, когда они необходимы, чтобы избежать хранения полной матрицы в памяти.
Качество рендеринга часто определяется размером патчей, например, для точного отображения краев теней требуются очень мелкие сетки. Важным усовершенствованием является иерархическая излучательность , которая использует более грубую сетку (большие патчи) для имитации передачи света между поверхностями, которые находятся далеко друг от друга, и адаптивно подразделяет патчи по мере необходимости. Это позволяет использовать излучательность для гораздо более крупных и сложных сцен.
Альтернативные и расширенные версии метода излучательности поддерживают неламбертовские поверхности, такие как глянцевые поверхности и зеркала, и иногда используют объемы или «кластеры» объектов, а также участки поверхности. Стохастическая или излучательность Монте-Карло использует случайную выборку различными способами, например, взятие образцов падающего света вместо интегрирования по всем участкам, что может улучшить производительность, но добавляет шум (этот шум можно уменьшить, используя детерминированные итерации в качестве конечного шага, в отличие от шума трассировки пути). Упрощенные и частично предварительно вычисленные версии излучательности широко используются для рендеринга в реальном времени в сочетании с такими методами, как излучательность октодерева , которые хранят приближения светового поля
В рамках подхода, известного как физически обоснованный рендеринг , трассировка пути стала доминирующей техникой для рендеринга реалистичных сцен, включая эффекты для фильмов. Например, популярное программное обеспечение для 3D-графики с открытым исходным кодом Blender использует трассировку пути в своем рендерере Cycles. Изображения, полученные с использованием трассировки пути для глобального освещения , как правило, более шумные, чем при использовании излучательности (основного конкурирующего алгоритма для реалистичного освещения), но излучательность может быть трудно применима к сложным сценам и подвержена артефактам, которые возникают из-за использования мозаичного представления освещенности
Как и распределенная трассировка лучей , трассировка пути является разновидностью стохастической или рандомизированной трассировки лучей , которая использует интеграцию Монте-Карло или квази-Монте-Карло . Она была предложена и названа в 1986 году Джимом Каджией в той же статье, что и уравнение рендеринга . Каджийя заметил, что большую часть сложности распределенной трассировки лучей можно было бы избежать, если бы трассировка была только одной траектории от камеры за раз (в реализации Каджии это правило «отсутствия ветвления» было нарушено путем трассировки дополнительных лучей от каждой точки пересечения поверхностей до случайно выбранных точек на каждом источнике света). Каджийя предложил уменьшить шум, присутствующий в выходных изображениях, с помощью стратифицированной выборки и выборки по важности для принятия случайных решений, таких как выбор луча для следования на каждом этапе пути. Даже с этими методами трассировка пути была бы непрактичной для рендеринга фильмов с использованием доступных в то время компьютеров, поскольку вычислительные затраты на генерацию достаточного количества выборок для снижения дисперсии до приемлемого уровня были слишком высоки. «Дом-монстр» , первый художественный фильм, полностью созданный с использованием трассировки пути, был выпущен лишь 20 лет спустя.
В своей базовой форме трассировка пути неэффективна (требует слишком много образцов) для рендеринга каустики и сцен, где свет проникает непрямо через узкие пространства. Попытки устранить эти недостатки были предприняты в 1990-х годах. Двунаправленная трассировка пути имеет сходство с фотонным картированием , трассируя лучи от источника света и камеры по отдельности, а затем находя способы соединить эти пути (но в отличие от фотонного картирования она обычно выбирает новые пути света для каждого пикселя, а не использует одни и те же кэшированные данные для всех пикселей). Транспорт света Metropolis выбирает пути, изменяя пути, которые были ранее отслежены, тратя больше времени на исследование путей, которые похожи на другие «яркие» пути, что увеличивает вероятность обнаружения еще более ярких путей. Выборка множественной важности обеспечивает способ уменьшения дисперсии при объединении образцов из более чем одного метода выборки, особенно когда некоторые образцы намного шумнее других.
Эта более поздняя работа была обобщена и расширена в докторской диссертации Эрика Вича 1997 года, которая помогла повысить интерес к трассировке пути в сообществе компьютерной графики. Рендерер Arnold , впервые выпущенный в 1998 году, доказал, что трассировка пути была практичной для рендеринга кадров для фильмов, и что в киноиндустрии существовал спрос на беспристрастный и физически обоснованный рендеринг; начали появляться другие коммерческие и открытые рендереры трассировки пути. Вычислительная стоимость была решена быстрым прогрессом в производительности ЦП и кластера .
Относительная простота трассировки пути и ее природа как метода Монте-Карло (выборка сотен или тысяч путей на пиксель) сделали ее привлекательной для реализации на графическом процессоре , особенно на последних графических процессорах, которые поддерживают технологию ускорения трассировки лучей, таких как RTX и OptiX от Nvidia . Однако двунаправленную трассировку пути и транспортировку света Metropolis сложнее эффективно реализовать на графическом процессоре.
Исследования по улучшению трассировки пути продолжаются. Последние подходы к наведению пути создают аппроксимации распределения вероятности светового поля в каждом объеме пространства, поэтому пути могут быть выбраны более эффективно. Было разработано много методов для шумоподавления выходных данных трассировки пути, уменьшая количество путей, необходимых для достижения приемлемого качества, с риском потери некоторых деталей или введения мелкомасштабных артефактов, которые более нежелательны, чем шум; нейронные сети теперь широко используются для этой цели.
Нейронный рендеринг — это метод рендеринга с использованием искусственных нейронных сетей . Нейронный рендеринг включает в себя методы рендеринга на основе изображений , которые используются для реконструкции 3D-моделей из 2-мерных изображений Одним из таких методов является фотограмметрия , которая представляет собой метод, при котором набор изображений с разных углов объекта превращается в 3D-модель. Также были недавние разработки в области создания и рендеринга 3D-моделей из текста и грубых рисунков, в частности, Nvidia , Google и различными другими компаниями.
1. Растерризовка – это перевод изображения, описанного векторным форматом в пикселе или точке, для вывода на дисплей или принтер. Геометрически проектирует объекты на плоскость изображения без учета оптических эффектов.
Можно выделить алгоритмы растеризувания двумерных сцен и алгоритмы сканирующей линии (Scanline) функционирующего в режиме «строка за строкой». Предположим, что нам необходимо получить изображение разрешения 1024×1080. Программа проводит воображаемую линию через каждый пиксель, вычисляя, какие полигоны лежат на пути этой линии и вычисляет необходимый цвет пикселя, в зависимости от того, какие текстуры и цвета были назначены полигонам. что встретились на пути этой воображаемой линии. Затем берется следующий пиксель, затем следующий – и так до конца. Преимущество метода в том, что нет необходимости транслировать координаты всех вершин из основной в рабочую память — только вершины, попадающие в зону видимости. Каждая из вершин считывается в рабочую память только раз, что значительно повышает скорость выполнения рендеринга.
Основной проблемой этого способа является отделение видимых полигонов от невидимых. В первых поколениях такого рода рендереров процесс вычисления полигонов начинался с самой дальней точки от зрителя и каждый новый полигон закрашивал предыдущий. Такой подход далек от идеала из-за большого количества ненужных сделок. Для решения этой проблемы используется Z-буфер. Программа вычисляет все полигоны, лежащие на пути воображаемой линии и назначает каждому полигону Z – значение в зависимости от его удаленности от экрана. Когда наступает время рендеринга, вычисляются только полигоны с наименьшим Z-значением – другие просто отбрасываются.
2. Бросание лучей (рейкастинг от английского ray casting). Сцена рассматривается как наблюдаемая с определенной точки. С точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пикселя на двумерном экране. При этом лучи прекращают свое распространение (в отличие от метода обратной трассировки), когда достигают какого-либо объекта сцены или ее фона. Возможно использование любых очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом, если лучи поступают под углом, что зависит от положения пикселя на экране и максимального угла объектива камеры.
3. Трассировка лучей (рейтрейсинг от английского ray tracing) сродни методу бросания лучей. С точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пикселя на двумерном экране. Но при этом луч не прекращает свое распространение, а разделяется на три компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отраженный, теневой и преломленный. Количество таких разделений на компоненты определяет глубину трассировки и влияет на качество и реалистичность изображения.
ние.
4. Трассировка пути (пачтрейсинг от английского path tracing) содержит схожий принцип трассировки распространения лучей, однако этот метод является наиболее близким к физическим законам распространения света. Также является самым ресурсоемким.
Современное программное обеспечение обычно объединяет несколько техник, чтобы получить достаточно качественное и фотореалистическое изображение за приемлемые затраты вычислительных ресурсов.
Реализация реалистичного рендерера всегда содержит некий базовый элемент физического моделирования или эмуляции — некоторые вычисления, которые напоминают или абстрагируют реальный физический процесс.
Термин « физически обоснованный » указывает на использование физических моделей и приближений, которые являются более общими и широко принятыми за пределами рендеринга. Определенный набор связанных методов постепенно утвердился в сообществе рендеринга.
Базовые концепции относительно просты, но не поддаются вычислению; и единый элегантный алгоритм или подход оказался неуловимым для более универсальных рендереров. Чтобы удовлетворить требованиям надежности, точности и практичности, реализация будет представлять собой сложную комбинацию различных методов.
Исследования в области визуализации связаны как с адаптацией научных моделей, так и с их эффективным применением.
Математика, используемая при рендеринге, включает: линейную алгебру , исчисление , числовую математику , обработку сигналов и методы Монте-Карло .
Это ключевая академическая/теоретическая концепция в рендеринге. Она служит наиболее абстрактным формальным выражением неперцептуального аспекта рендеринга. Все более полные алгоритмы можно рассматривать как решения частных формулировок этого уравнения.
Значение: в определенном положении и направлении, исходящий свет (L o ) является суммой испускаемого света (L e ) и отраженного света. Отраженный свет является суммой входящего света (L i ) со всех направлений, умноженной на отражение поверхности и входящий угол. Соединяя исходящий свет с внутренним светом через точку взаимодействия, это уравнение обозначает весь «перенос света» – все движение света – в сцене.
Функция распределения двунаправленного отражения (BRDF) выражает простую модель взаимодействия света с поверхностью следующим образом:
Взаимодействие света часто аппроксимируется еще более простыми моделями: диффузным отражением и зеркальным отражением, хотя обе модели ТАКЖЕ могут быть BRDF.
Рендеринг практически полностью связан с аспектом частиц физики света, известным как геометрическая оптика . Рассмотрение света на его базовом уровне как частиц, отскакивающих друг от друга, является упрощением, но уместным: волновые аспекты света незначительны в большинстве сцен и их значительно сложнее моделировать. Известные явления волнового аспекта включают дифракцию (как видно по цветам компакт-дисков и DVD ) и поляризацию (как видно на ЖК-дисплеях ). Оба типа эффекта, если необходимо, создаются путем корректировки модели отражения, ориентированной на внешний вид.
Хотя ему уделяется меньше внимания, понимание человеческого визуального восприятия ценно для рендеринга. Это в основном потому, что дисплеи изображений и человеческое восприятие имеют ограниченные диапазоны. Рендерер может имитировать широкий диапазон яркости и цвета света, но современные дисплеи — киноэкран, компьютерный монитор и т. д. — не могут справиться с таким количеством, и что-то должно быть отброшено или сжато. Человеческое восприятие также имеет ограничения, и поэтому ему не нужно давать изображения большого диапазона для создания реализма. Это может помочь решить проблему размещения изображений на дисплеях и, кроме того, подсказать, какие сокращения можно использовать при моделировании рендеринга, поскольку определенные тонкости не будут заметны. Эта связанная тема — тональная компрессия .
Одной из проблем, с которой должна сталкиваться любая система рендеринга, независимо от того, какой подход она использует, является проблема выборки . По сути, процесс рендеринга пытается изобразить непрерывную функцию от пространства изображения к цветам, используя конечное число пикселей. Как следствие теоремы выборки Найквиста-Шеннона (или теоремы Котельникова), любая пространственная форма волны, которая может быть отображена, должна состоять как минимум из двух пикселей, что пропорционально разрешению изображения . Проще говоря, это выражает идею о том, что изображение не может отображать детали, пики или впадины в цвете или интенсивности, которые меньше одного пикселя.
Если использовать наивный алгоритм рендеринга без какой-либо фильтрации, высокие частоты в функции изображения приведут к появлению уродливого алиасинга в конечном изображении. Алиасинг обычно проявляется в виде неровностей или зубчатых краев на объектах, где видна пиксельная сетка. Чтобы удалить алиасинг, все алгоритмы рендеринга
продолжение следует...
Часть 1 Рендеринг (компьютерная графика)
Часть 2 Научно-математическая основа Непредвзятая визуализация - Рендеринг (компьютерная графика)
Часть 3 Аппаратное обеспечение - Рендеринг (компьютерная графика)
Исследование, описанное в статье про рендеринг , подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое рендеринг и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная графика
Комментарии
Оставить комментарий
Компьютерная графика
Термины: Компьютерная графика