Как работает трассировка лучей в Quake II +22


Когда-то Кристоф Шид разработал проект Q2VKPT — мод для Quake II с поддержкой рейтрейсинга и в то же время унифицированное решение для симуляции и фильтрации всех типов переноса света для лучшего изучения того, что уже возможно, а что еще предстоит сделать в разрезе трассировки лучей в игровой графике.

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

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

Однако такая наивная трассировка оказывается крайне дорогой и требует длительных расчетов для получения стабильных изображений. Даже при использовании умных адаптивных фильтров, которые переиспользуют информацию во многих кадрах и пикселях — например, временное сглаживание (temporal antialiasing, TAA) — необходимо следить за тем, чтобы они действительно выдавали чистые и стабильные изображения.

В случае двунаправленной трассировкой путей (BDPT — Bidirectional Path Tracing) в каждой видимой точке поверхности в таком случае прослеживаются два луча: первый — теневой луч (Shadow PT), направленный к случайной точке непосредственно от источника света. Эта точка на излучателе отбирается таким образом, чтобы сделать его репрезентативным для всего освещения сцены (то есть, вероятность дискретизации конкретных излучателей пропорциональна их вкладу в затенение). Чтобы рекурсивно накапливать освещение с множественными отражениями, другой луч (Simple PT) указывает в случайном направлении, дискретизированном пропорционально рассеянию затененного материала. Следующая видимая поверхность в этом направлении затемняется таким же образом.

Simple PT использует неявную стратегию, Shadow PT — явную. Здесь надо указать, что даже для прямого освещения недостаточно использования какой-либо одной из двух стратегии — поэтому в трассировке путей используют обе. MIS PT комбинирует вклады от явной (теневых лучей) и неявной (лучей, случайно попавших в источник) стратегий при помощи многократной выборки по значимости. 

Методы Монте-Карло (МК), к которым относится и трассировка путей, основываются на отслеживании случайных световых трасс, которые соединяют камеру и источники света через рассеивающие поверхности в сцене. Чтобы результирующие оценки затенения были устойчивыми — то есть, чтобы они эффективно сходились к правильному результату, — такие случайные трассы должны хорошо представлять фактическое освещение в сцене. Для этого все современные методы интегрирования освещенности МК строятся на основе многократной выборки по значимости (Multiple Importance Sampling, MIS). Идея такой выборки состоит в том, что некоторые значения случайной величины в процессе моделирования имеют большую вероятность для заданной функции, чем другие — и выбирается распределение, которое способствует выбору этих более вероятных значений. В случае многократной выборки по значимости такие взвешивания происходят не один раз.

Трассировка путей в Q2VKPT с шумоподавлением (Adaptive Spatiotemporal Variance-Guided Filtering, ASVGF) и без [2]
Трассировка путей в Q2VKPT с шумоподавлением (Adaptive Spatiotemporal Variance-Guided Filtering, ASVGF) и без [2]

На изображении видно, что равномерная выборка всех источников света в сцене приводит к плохому затенению и качеству теней как в случае с шумоподавлением, так и без него. Для версии Q2VKPT, находящейся в свободном доступе, используется стратифицированная перевыборка по значимости (resampled importance sampling, RIS), производящая приблизительную выборку по значимости с учетом вклада света и материала в стохастических подмножествах всех источников света (на рисунке — в центре).

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

Для прогнозирования незатененного вклада в Q2VKPT используется довольно упрощенная эвристика: сначала оценивается BRDF точки затенения для центра источника света, отсекающая результирующее направление света до горизонта затененной поверхности. BSDF (bidirectional scattering distribution function) — двунаправленная функция распределения рассеяния, которая определяет вероятность того, что конкретный луч света будет рассеян. Источники света представляют собой треугольники. Для предотвращения искажения от пиков материалов с высокой отражающей способностью значения шероховатости материала имеют ограничения.

В Q2VKPT, по всем правилам кинорендеринга, трассировка путей используется с дополнительной выборкой источников света (оценка следующего события, next event estimation, NEE) для более надежного поиска соответствующих источников света для каждой поверхности в сцене.

Чтобы избежать дорогостоящего расчета затенения для каждого источника света, необходимо уменьшить их , сохраняя при этом вероятность выборки каждого источника света приблизительно пропорциональной его вкладу относительно всех источников света. В Q2VKPT для каждой точки затенения существует список источников света (порой довольно длинный), которые могут иметь отношение к затенению этой точки. Эти списки образуются путем применения для каждого кластера геометрии уровня потенциально видимого набора (potentially visible set, PVS) — метода отсечения невидимой геометрии, основанного на расчете видимости в разных точках уровня.

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

Выборка источников света производится путем выборки по значимости из сдвинутых на шаг (stride) «репрезентативных» подмножеств полного списка источников света для каждой точки затенения [2]
Выборка источников света производится путем выборки по значимости из сдвинутых на шаг (stride) «репрезентативных» подмножеств полного списка источников света для каждой точки затенения [2]

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

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

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

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

Для MIS стохастические подмножества выбираются случайным образом в пределах каждого шага. Это позволяет нам вычислять дополнительные веса выборки для излучателей, в которые попали рассеивающиеся лучи: можно заменить любое ранее выбранное подмножество на другое репрезентативное стохастическое подмножество для этого излучателя с минимальной дополнительной информацией [2].
Для MIS стохастические подмножества выбираются случайным образом в пределах каждого шага. Это позволяет нам вычислять дополнительные веса выборки для излучателей, в которые попали рассеивающиеся лучи: можно заменить любое ранее выбранное подмножество на другое репрезентативное стохастическое подмножество для этого излучателя с минимальной дополнительной информацией [2].

В отличие от более поздних подходов, таких как ReSTIR, подход Q2VKPT куда более прост, а оттого менее оптимален, но при этом, в отличие от того же ReSTIR, не зависит от пространственно-временных структур данных. Во время разработки Q2VKPT также был протестирован с использованием передовых иерархических подходов к выборке источников света, вдохновленных кино: с помощью иерархической кластеризации источников света можно сразу оценить влияние множества источников света, что позволяет быстро исключить удаленные и тусклые источники, а также указывающие в неправильном направлении. Однако от таких оценок сложно добиться большой точности.

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

Q2VKPT во всех своих вариантах работает в реальном времени на NVIDIA GeForce RTX 2070 с разрешением 1920×1080 при времени кадра 11–17 мс (включая шумоподавление).  Трассировка путей работает со скоростью 7–9 мс на кадр с одним непрямым отражением и размером стохастического подмножества, равным 8. Рандомизация подмножества путем выбора отдельных смещений на шаг добавляет около 0,1 мс по сравнению с рандомизацией с регулярными интервалами. Включение MIS добавляет еще 1–1,5 мс, поскольку требует вычисления и отслеживания нескольких дополнительных величин и дополнительных обращений к текстуре излучателя для точек попадания лучей.

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

Итак, как видно из рисунка, размеры подмножеств влияют на качество результатов, демонстрируя, как хорошая выборка по значимости улучшает производительность трассировки путей Монте-Карло. Результирующий шум значительно снижается с каждым дополнительным источником света в подмножестве — особенно это касается небольших подмножеств. Для Q2VKPT размер подмножества 8 был выбран в качестве компромисса между качеством выборки и производительностью: он давал удовлетворительные результаты, которые выглядели стабильными после шумоподавления. В такой реализации переход размера подмножества от 8 до 16 добавляет 1 мс, переход к 32 — еще 1,5 мс, к 64 — еще 3 мс.

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

Результаты выборок BSDF с весами MIS и без, по одной выборке на пиксель, без фильтрации (вверху) и с шумоподавлением (внизу) [2]
Результаты выборок BSDF с весами MIS и без, по одной выборке на пиксель, без фильтрации (вверху) и с шумоподавлением (внизу) [2]

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

Результаты с MIS-взвешенными выборками BSDF и без них, по одной выборке на пиксель, без фильтрации (вверху) и без шумоподавления (внизу) [2]
Результаты с MIS-взвешенными выборками BSDF и без них, по одной выборке на пиксель, без фильтрации (вверху) и без шумоподавления (внизу) [2]

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

Выводы

Методы уменьшения дисперсии, такие как MIS, являются важными инструментами не только в оффлайн-рендеринге, но даже в большей степени в будущих приложениях трассировки путей в реальном времени с небольшим количеством выборок. Опыт Q2VKPT показал, что даже упрощенный метод перевыборки, работающий с небольшими стохастическими подмножествами полного освещения сцены, может привести к огромным улучшениям качества изображения. Более поздние и сложные разработки, такие как ReSTIR и управление путями в реальном времени (real-time path guiding), в перспективе показывают еще большую надежность, так что в некоторых случаях вообще не требуют шумоподавления.

Ссылки

[1] В.A. Фролов и др. Современное состояние методов расчёта глобальной освещённости в задачах реалистичной компьютерной графики // Труды ИСП РАН, том 33, вып. 2, 2021 г

[2] Tobias Zirr, Light Sampling in Quake 2 Using Subset Importance Sampling // Ray Tracing Gems II: Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX, 2021




К сожалению, не доступен сервер mySQL