Трассировка пути

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

Трассировка пути - это компьютер графика Метод Монте-Карло визуализации изображений трехмерных сцен таким образом, чтобы глобальное освещение соответствовало реальности. По сути, алгоритм интегрирует по всей освещенности, приходящей к одной точке на поверхности объекта. Затем эту освещенность уменьшают функцией отражения поверхности (BRDF ), чтобы определить, какая ее часть будет направлена ​​на камеру точки обзора. Эта процедура интегрирования повторяется для каждого пикселя выходного изображения. В сочетании с физически точными моделями поверхностей, точными моделями реальных источников света (лампочек) и оптически правильными камерами трассировка пути может создавать неподвижные изображения, неотличимые от фотографий.

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

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

Содержание
  • 1 История
  • 2 Описание
  • 3 Алгоритм
  • 4 Двунаправленная трассировка пути
  • 5 Производительность
  • 6 Функции распределения рассеяния
  • 7 См. Также
  • 8 Примечания
История

Уравнение рендеринга и его использование в компьютерной графике было представлено Джеймсом Каджией в 1986 году. Трассировка пути была представлена ​​тогда как алгоритм для поиска численное решение интеграла уравнения визуализации. Десять лет спустя Лафортюн предложил множество усовершенствований, в том числе двунаправленную трассировку пути.

Легкий транспорт Metropolis, метод изменения ранее найденных путей для повышения производительности сложных сцен, был представлен в 1997 году Эриком Вичем и Леонидас Дж. Гибас.

В последнее время процессоры и графические процессоры стали достаточно мощными для более быстрого рендеринга изображений, что вызвало более широкий интерес к алгоритмам отслеживания пути. Тим Перселл впервые представил алгоритм глобального освещения, работающий на графическом процессоре в 2002 году. В феврале 2009 года Остин Робисон из Nvidia продемонстрировал первую коммерческую реализацию трассировщика пути, работающего на графическом процессоре, и другие последовали реализации, такие как Владимир Койлазов в августе 2009 года. Этому способствовало созревание таких инструментальных средств программирования GPGPU, как CUDA и OpenCL и GPU ray SDK для трассировки, такие как OptiX.

Трассировка пути сыграла важную роль в киноиндустрии. В более ранних фильмах для создания визуальных эффектов и анимации компьютерной графики использовались средства рендеринга. В 1998 году Blue Sky Studios сняли короткометражный фильм Academy Award Bunny с помощью своего патентованного средства визуализации трассировки пути CGI Studio с мягкими тенями и эффектами непрямого освещения. Sony Pictures Imageworks 'Monster House был в 2006 году первым полнометражным анимационным фильмом, который был полностью визуализирован с помощью трассировщика пути с использованием коммерческого средства рендеринга Arnold. Кроме того, Walt Disney Animation Studios использует свой собственный оптимизированный трассировщик пути, известный как Hyperion, с момента создания Big Hero 6 в 2014 году. Pixar Animation Studios имеет также адаптировал трассировку пути для своего коммерческого средства визуализации RenderMan.

Описание

Уравнение рендеринга Каджиа придерживается трех конкретных принципов оптики; Принцип глобального освещения, Принцип эквивалентности (отраженный свет эквивалентен испускаемому свету) и Принцип направления (отраженный свет и рассеянный свет имеют направление).

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

I.Для данной внутренней сцены каждый объект в комнате должен освещать каждый другой объект.

II. Во-вторых, не следует делать различия между освещением, исходящим от источника света, и освещением, отраженным от поверхности.

Изобретенный в 1984 г. совершенно другой метод под названием радиосити соответствовал обоим принципам. Однако светимость связывает общую освещенность, падающую на поверхность, с однородной яркостью, которая покидает поверхность. Это заставило все поверхности быть ламбертовскими, или «идеально диффузными». В то время как излучение привлекло много внимания при его обращении, идеально рассеянные поверхности не существуют в реальном мире. Осознание того, что рассеяние от поверхности зависит как от входящего, так и от исходящего направления, является ключевым принципом, лежащим в основе функции двунаправленного распределения отражательной способности (BRDF). Эта зависимость от направления была в центре внимания исследований, результатом которых стали публикации важных идей на протяжении 1990-х годов, поскольку учет направления всегда требовал резкого увеличения времени вычислений на настольных компьютерах. Принцип III следует.

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

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

Алгоритм

Следующий псевдокод представляет собой процедуру для выполнения простого отслеживания пути. Функция TracePath вычисляет одну выборку пикселя, в которой учитывается только путь сбора.

1 Color TracePath (луч луча, глубина счета) {2 if (depth>= MaxDepth) {3 return Black; // Отскакивал достаточно раз. 4} 5 6 ray.FindNearestObject (); 7 if (ray.hitSomething == false) {8 return Black; // Ничего не произошло. 9} 10 11 Материал material = ray.thingHit->material; 12 Цветовая светимость = материальная светимость; 13 14 // Выберите случайное направление отсюда и продолжайте движение. 15 Ray newRay; 16 newRay.origin = ray.pointWhereObjWasHit; 17 18 // Это НЕ косинусно-взвешенное распределение! 19 newRay.direction = RandomUnitVectorInHemisphereOf (ray.normalWhereObjWasHit); 20 21 // Вероятность нового луча 22 const float p = 1 / (2 * M_PI); 23 24 // Вычислить BRDF для этого луча (при условии ламбертовского отражения) 25 float cos_theta = DotProduct (newRay.direction, ray.normalWhereObjWasHit); 26 Цвет BRDF = material.reflectance / M_PI; 27 28 // Рекурсивно отслеживайте источники отраженного света. 29 Входящий цвет = TracePath (newRay, depth + 1); 30 31 // Примените здесь уравнение рендеринга. 32 возвратный эмиттанс + (BRDF * incoming * cos_theta / p); 33} 34 35 void Render (Image finalImage, count numSamples) {36 foreach (пиксель в finalImage) {37 foreach (i in numSamples) {38 Ray r = camera.generateRay (pixel); 39 пикселей. Цвет + = TracePath (r, 0); 40} 41 пиксель.color / = numSamples; // Средние выборки. 42} 43}

Затем все образцы усредняются для получения выходного цвета. Обратите внимание, что этот метод всегда выборки случайного луча в полушарии нормали хорошо работает только для идеально рассеянных поверхностей. Для других материалов обычно необходимо использовать выборку по важности, то есть вероятностно выбрать новый луч в соответствии с распределением BRDF. Например, идеально зеркальный (зеркальный) материал не будет работать с описанным выше методом, поскольку вероятность того, что новый луч будет правильным отраженным лучом - а это единственный луч, через который будет отражено любое излучение - равна нулю. В этих ситуациях необходимо разделить коэффициент отражения на функцию плотности вероятности схемы выборки в соответствии с интегрированием Монте-Карло (в приведенном выше наивном случае конкретной схемы выборки нет, поэтому получается PDF быть 1).

Есть и другие соображения, которые необходимо учитывать, чтобы гарантировать сохранение энергии. В частности, в наивном случае коэффициент отражения диффузного BRDF не должен превышать 1 π {\ displaystyle {\ frac {1} {\ pi}}}{\ frac {1} {\ pi}} , иначе объект будет отражать больше света. чем он получает (это, однако, зависит от используемой схемы выборки, и может быть трудно сделать правильно).

Двунаправленное отслеживание пути

Выборка интеграла для точки может выполняться любым из следующих двух различных подходов:

  • Стрельба лучей от источников света и создание путей в место действия. Путь обрезается случайным числом шагов отражения, и результирующий свет проходит через проецируемый пиксель на выходном изображении. Во время рендеринга создаются миллиарды путей, а выходное изображение - это среднее значение каждого пикселя, получившего некоторый вклад.
  • Сбор лучей от точки на поверхности. Луч проецируется с поверхности на сцену по траектории отскока, которая заканчивается при пересечении источника света. Затем свет направляется назад по пути к выходному пикселю. Создание единого пути называется «образцом». Для одной точки на поверхности берутся сотни или тысячи образцов. Конечный результат пикселя - это среднее арифметическое всех этих выборок, а не сумма.

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

Производительность
Шум уменьшается с увеличением количества выборок на пиксель. В левом верхнем углу отображается 1 отсчет на пиксель, каждый квадрат удваивается слева направо.

Трассировщик пути непрерывно отсчитывает пикселей изображения изображения. Изображение начинает становиться узнаваемым после всего лишь нескольких отсчетов на пиксель, возможно, 100. Однако для «схождения» изображения и снижения шума до приемлемого уровня обычно требуется около 5000 отсчетов для большинства изображений и еще много для патологических случаев. Шум является особенно серьезной проблемой для анимаций, придавая им обычно нежелательную "зернистость пленки" случайных пятен.

Основным узким местом производительности в Path Tracing является сложный геометрический расчет построения луча. Выборка по важности - это техника, которая направлена ​​на то, чтобы пропускать через сцену меньшее количество лучей, но при этом правильно сходиться к исходящей яркости в точке поверхности. Это достигается путем направления большего количества лучей в направлениях, в которых яркость в любом случае была бы больше. Если плотность лучей, излучаемых в определенных направлениях, соответствует силе вкладов в этих направлениях, результат будет идентичным, но на самом деле было брошено гораздо меньше лучей. Выборка по важности используется для согласования плотности лучей с законом косинуса Ламберта, а также для согласования с BRDF.

Легковой транспорт Metropolis может дать изображение с меньшим шумом и меньшим количеством сэмплов. Этот алгоритм был создан для более быстрой сходимости в сценах, в которых свет должен проходить через нечетные коридоры или небольшие отверстия, чтобы достичь той части сцены, которую просматривает камера. Он также показал себя многообещающим в правильной визуализации патологических ситуаций с помощью каустиков. Вместо того, чтобы генерировать случайные пути, новые пути выборки создаются как небольшие изменения существующих. В этом смысле алгоритм «запоминает» успешные пути от источников света до камеры.

Функции распределения рассеяния
Функции распределения рассеяния

Отражающие свойства (количество, направление и цвет) поверхностей моделируются с использованием BRDF. Эквивалентом проходящего света (света, проходящего через объект) являются BSDF. Трассировщик пути может в полной мере использовать сложные, тщательно смоделированные или измеренные функции распределения, которые контролируют внешний вид («материал», «текстура» или «затенение» в терминах компьютерной графики) объекта.

См. Также
Примечания
  1. ^Kajiya, JT (1986). «Уравнение рендеринга». Материалы 13-й ежегодной конференции по компьютерной графике и интерактивной технике. ACM. CiteSeerX 10.1.1.63.1402.
  2. ^Лафортун, Э., Математические модели и алгоритмы Монте-Карло для физически обоснованного рендеринга, (докторская диссертация), 1996.
  3. ^Перселл, ТДж; Бак, я; Марк, Вт; и Ханрахан, П., «Трассировка лучей на оборудовании с программируемой графикой», Proc. SIGGRAPH 2002, 703 - 712. См. Также Purcell, T, Трассировка лучей на потоковом процессоре (докторская диссертация), 2004.
  4. ^Робисон, Остин, «Интерактивная трассировка лучей на GPU и Обзор NVIRT », слайд 37, I3D 2009.
  5. ^Vray demo ; Другие примеры включают Octane Render, Arion и Luxrender.
  6. ^Сеймур, Майк. «Новый производственный рендерер Диснея« Гиперион »- Да, Дисней!». fxguide. Проверено 16 сентября 2017 г.
  7. ^Вич, Э., и Гибас, Л. Дж. Легкий транспорт Metropolis. В SIGGRAPH’97 (август 1997 г.), стр. 65–76.
  8. SmallPt - трассировщик образовательного пути Кевина Бисона. Он использует 99 строк C ++ (включая описание сцены). На этой странице есть хороший набор примеров шума, возникающего в результате этого метода.
Последняя правка сделана 2021-06-01 04:53:27
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте