Raytracing не в реальном времени

13

Я немного поиграл с трассировкой лучей в реальном времени (и лучевой трассировкой и т. Д.), Но не тратил так много времени на трассировку лучей не в реальном времени - для изображений более высокого качества или для предварительного рендеринга видео и тому подобного.

Я знаю одну распространенную технику для улучшения качества изображения в случае не в реальном времени, это просто навести ОЧЕНЬ больше лучей на пиксель и усреднить результаты.

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

Алан Вульф
источник

Ответы:

9

Трассировка пути - это стандартная техника фотореалистичного рендеринга не в реальном времени, и вам следует обратить особое внимание на двунаправленную трассировку пути, чтобы получить такие эффекты, как каустика, которых вы не можете получить при базовой трассировке пути. Двунаправленная трассировка путей также быстрее сходится к наземной истине, как показано на изображении ниже: введите описание изображения здесь Кроме того, светопередача Metropolis (MLT) является более продвинутой техникой трассировки путей, которая еще быстрее сходится к наземной истине, изменяя существующие «хорошие» пути: введите описание изображения здесь

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

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

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

JarkkoL
источник
5

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

Другой пример является использование визуализации времени отображения фотонов и диффузного interreflection вычислений: это позволяет получить точные световые эффекты в изменяющейся сцене. При трассировке лучей в реальном времени они слишком дороги для вычисления, поэтому либо источники света и основные геометрические элементы вынуждены оставаться стационарными (для обеспечения предварительного расчета), либо эффекты полностью исключаются.

отметка
источник
Подразделение поверхностей используется гораздо больше, чем конструктивная геометрия твердого тела. Они все еще включают треугольники (или альтернативно сплайны).
3

Хотя я не знал о трассировке Монте-Карло, когда писал это, я случайно описал это. По иронии судьбы, трасса Монте-Карло - это ответ, который я искал в то время.

Наивное отслеживание пути Монте-Карло работает путем оценки того, что называется уравнением рендеринга, для численного решения цветового значения пикселя. Он отбирает случайные выборки путем случайного дрожания в пикселе (есть лучшие стратегии выборки и фильтрация: какова основная причина сглаживания при использовании нескольких случайных выборок в пикселе? ), А также путем отскока в случайных направлениях, когда луч попадает на поверхность ,

Для получения хороших результатов может потребоваться много образцов, и при недостаточном количестве образцов ваше изображение будет выглядеть шумным. Требуется в 4 раза больше образцов, чтобы уменьшить шум пополам. Время рендеринга может составлять порядка часа с использованием 8 современных процессорных ядер для простой сцены.

Существуют более продвинутые методы отслеживания пути Монте-Карло, которые позволяют быстрее получать более качественные изображения, такие как выборка по важности или шумоподавление изображения после его рендеринга.

Трассировка по методу Монте-Карло может создавать фотореалистичные изображения и дает вам много продвинутых функций рендеринга только потому, что она соответствует физическим законам, что дает реалистичные результаты.

Вы можете прочитать больше об этом здесь: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/

Вот пример изображения, на рендеринг которого использовались все 8 ядер моего процессора: около часа:

введите описание изображения здесь

Алан Вульф
источник