Программирование, 2022, № 5, стр. 27-36

ВЫСОКОРЕАЛИСТИЧНАЯ ВИЗУАЛИЗАЦИЯ КАУСТИК И ШЕРОХОВАТЫХ ПОВЕРХНОСТЕЙ

С. И. Вяткин a*, Б. С. Долговесов a**

a Институт автоматики и электрометрии СО РАН
630090 Новосибирск, просп. Академика Коптюга, д. 1, Россия

* E-mail: sivser@mail.ru
** E-mail: bsd@iae.nsk.su

Поступила в редакцию 22.03.2022
После доработки 25.04.2022
Принята к публикации 17.05.2022

Полный текст (PDF)

Аннотация

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

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

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

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

1. ВВЕДЕНИЕ

Распространение света в трехмерной сцене, в которой учитываются множественные отражения и рассеяния света, а также различные виды взаимодействия его с объектами сцены, является сложной проблемой. При синтезе графических сцен необходимо решать двуединую задачу: обеспечение высокой реалистичности воспроизведения графических объектов и достижение приемлемого для конкретной задачи времени формирования изображения. В работе [1] дан обзор методов расчета глобальной освещенности в задачах реалистичной компьютерной графики. Существуют методы как в нереальном времени с высоким реализмом сцен, так и алгоритмы, работающие в режиме реального времени, реализованные на графических процессорах. Например, эффект каустики, реализован в модуле визуализатора Vray для 3DS MAX. Визуализация с помощью Vray может занимать от нескольких минут до часа и больше в зависимости от сложности и качества изображения. Визуализатор Vray базируется на методе [2]. Визуализатор тоже нереального времени Corona основан на методе, описанном в работе [3]. С другой стороны, известны методы, работающие в интерактивном режиме с использованием графических процессоров, например, объемные каустики в однократно рассеивающих средах [4]. В статье [5] предлагается метод рендеринга изображений с глобальным освещением также реализованный на графических процессорах. В методе применяется двунаправленная трассировка пути.

По данному в работе [1] определению в нашей работе рассматриваются каустики второго типа. Как отмечено в [1] такие каустики не могут быть эффективно вычислены с помощью двунаправленной трассировки путей. Из данного обзора, на наш взгляд, следует такой вывод, что создан большой набор специализированных методов, каждый из которых способен отображать определенные типы зеркальных путей. Однако ни один из существующих методов не подходит для общего случая. Каждый подход имеет свой собственный набор ограничений. Например, двунаправленная трассировка путей [5], как уже отмечалось имеет проблемы с бликами и не эффективна для каустик второго типа. Одним из особенно проблемных случаев являются сцены, содержащие каустики или блестящие поверхности, которые имеют случайные узоры бликов из-за зеркальной микрогеометрии. Методы, работающие в терминах светового потока, используют фотонные карты [6] и хорошо решают определенный класс задач, однако они могут привести к нежелательному размытию и не обрабатывают важные случаи, включая каустики на нерассеянных поверхностях и бликах. Так в работе [1] справедливо замечено, что фотонные карты должны применяться с осторожностью на поверхностях с микрорельефом, поскольку могут искажать вид микрорельефа. С другой стороны, методы визуализации точно отображающие шероховатые поверхности с бликами, имеют проблемы с другими типами зеркальных путей [7, 8]. Таким образом, известные методы имеют ограничения, например, в случае бликов и переходов от зеркального к диффузному и обратно к зеркальному пути прохождения света, а также если геометрия сцены имеет высокочастотную детализацию.

В данной работе предлагается общий подход к визуализации каустик второго типа (зеркально-диффузно-зеркальные) [1] и шероховатых поверхностей с бликами. Его суть заключается в следующем: на перовом этапе работы алгоритма не рассматривается карта нормалей, а вычисляются зеркальные пути на исходной гладкой поверхности. Далее возмущение нормалей выбирается случайным образом из распределения нормалей, присутствующих на карте нормалей. Используется гауссова аппроксимация всей карты нормалей, полученная из самого низкого уровня многоуровневой карты [9].

В работе представлен метод визуализации рассеяния света от зеркальных поверхностей, и сложных каустик, а также многократного преломления света и бликов на зеркальных поверхностях. Разработан алгоритм отбора проб зеркальных путей, включая блики и переходы от зеркального к диффузному и обратно к зеркальному пути прохождения света. Метод позволяет обрабатывать высокочастотную геометрию с отображением карт нормалей, карт смещения и зеркально-диффузные отражения. Метод позволяет визуализировать отражающие и преломляющие каустики. При отображении шероховатых поверхностей обеспечивается лучшее приближение для большинства материалов в сравнении с известными подходами [7, 8]. Реализован алгоритм выборки для поверхностей с отображением карт нормалей. Метод отличается уменьшенной дисперсией, повышенной надежностью и сходимостью. Работа базируется на общей выборке путей в исходной задаче, стохастически выбираются отдельные решения. Добавленная дисперсия, вызванная случайным решением, уменьшается вместе с дополнительными источниками дисперсии. К ним относятся отображение окружающей среды, косвенное освещение и т.д. Предлагаемый метод использует стохастическую инициализацию и эффективную оценку веса выборки. В результате можно находить решения для сложной геометрии. Показано, что стохастическая инициализация для поверхностей с отображением карт нормалей, переходы от зеркального к диффузному и обратно к зеркальному пути прохождения света, напрямую связаны с рендерингом бликов. Использование стохастической выборки решений для глянцевых поверхностей в методе также эффективно, поскольку одновременно уменьшается несколько дополнительных источников дисперсии.

2. ОПИСАНИЕ МЕТОДА

2.1. Функционально заданные сцены

Для описания геометрических объектов в функционально заданных сценах используются функции возмущения [9]:

(1)
$F{\kern 1pt} '(x,y,z) = F(x,y,z) + \sum\limits_{i = 1}^N {{{f}_{i}}{{R}_{i}}(x,y,z)} ,$
где F'(x, y, z) – свободная форма; F(x, y, z) – базовая квадрика;  fi – форм-фактор; i = 1…N – количество функций возмущения; Ri(x, y, z) – возмущение,
(2)
${{R}_{i}}(x,y,z) = \left\{ {\begin{array}{*{20}{l}} {Q_{i}^{3}(x,y,z),\quad {\text{if}}\quad {{Q}_{i}}(x,y,z) \geqslant 0} \\ {0,\quad {\text{if}}\quad {{Q}_{i}}(x,y,z) < 0} \end{array}} \right.,$
где Q(x, y, z) – возмущающая квадрика.

Непрерывность функции F(x, y, z) и ее производной F'(x, y, z) гарантируется степенью возмущающей квадрики, которая должна быть больше двух (2).

2.2. Зеркальный перенос света

Рассмотрим путь переноса света, содержащий ряд зеркальных точек ${{\vec {x}}_{2}}$, …, ${{\vec {x}}_{{n - 1}}}$ между двумя не зеркальными конечными точками ${{\vec {x}}_{1}}$ и ${{\vec {x}}_{n}}$. Где ${{\vec {x}}_{1}}$ – точка затенения на поверхности, а ${{\vec {x}}_{n}}$ – положение источника света (рис. 1).

Рис. 1.

Зеркальный перенос света.

Заметим, что каждая зеркальная точка накладывает физические ограничения, например, когда в точке происходит преломление, которое описывается законом Снелла. Ограничения описываются с помощью функции ${{\vec {b}}_{i}}$, связанной с каждой точкой ${{\vec {x}}_{i}}$. Полувектор проецируется на локальное касательное пространство [12 ] :

(3)
${{\vec {b}}_{i}}({{\vec {x}}_{{i - 1}}},{{\vec {x}}_{i}},{{\vec {x}}_{{i + 1}}}) = {{M}_{t}}{{({{\vec {x}}_{i}})}^{T}}{{\vec {v}}_{h}}({{\vec {x}}_{i}},{{\vec {x}}_{i}}{{\vec {x}}_{{i - 1}}},{{\vec {x}}_{i}}{{\vec {x}}_{{i + 1}}}),$
где ${{M}_{t}}({{\vec {x}}_{i}})$ – матрица касательных векторов 3 × 2.

Объединенная функция зеркального пути:

(4)
${{\vec {b}}_{c}}({{\bar {x}}_{i}}) = {{[{{\vec {b}}_{2}},...,{{\vec {b}}_{{n - 1}}}]}^{T}}.$

Функция параметризуется с помощью UV-координат зеркальных точек. Решение уравнения ${{\vec {b}}_{c}}(\bar {u}\bar {v}) = 0$ находится с использованием итерации Ньютона:

(5)
$\bar {u}{{\bar {v}}_{{i + 1}}} = {{(\nabla {{\vec {b}}_{c}}(\bar {u}{{\bar {v}}_{i}}))}^{{ - 1}}} \cdot {{\vec {b}}_{c}}(\bar {u}{{\bar {v}}_{i}}),$
где $\nabla {{\vec {b}}_{c}}$ – Якобиан–матрица, состоящая из блоков 2 × 2.

Шаг Ньютона (5) создает точки, после каждой итерации требуется дополнительный шаг пере- проекции. В предлагаемом методе случайным образом выбирается начальное предположение из распределения вероятностей $\rho ({{\bar {x}}_{0}})$. Все решения находятся с ненулевой вероятностью, поскольку метод Ньютона имеет квадратичную сходимость, и начальная точка близка к корню. Однако вероятность успешной сходимости неизвестна. Выбираем два равномерно распределенных случайных числа в виде входных данных и преобразуем их в желаемое распределение. Цель состоит в генерации начальной выборки близкой к решению для сходимости итераций Ньютона (5).

Дискретная вероятность представляет собой площадь области конвергенции, так как выборки равномерно распределены:

(6)
${{\rho }_{n}} = \int\limits_U {S(\zeta )d\zeta } ,$
где $S$ – форма, зависящая от положения конечных точек пути, $\zeta $ – два равномерно распределенных случайных числа, $U$ – первичная область выборки.

(7)
$\zeta = ({{\zeta }_{1}},{{\zeta }_{2}}) \in {{\left[ {0,1} \right)}^{2}}.$

Вычисление интеграла (6) явно неосуществимо. Применим приближенную оценку:

(8)
$\left\langle {{{\rho }_{n}}} \right\rangle = \frac{1}{K}\sum\limits_{i = 1}^K {S({{\zeta }_{i}})} ,$
где ${{\zeta }_{i}} \in U$ – последовательность однородных переменных.

Вычисление $\left\langle {1{\text{/}}{{\rho }_{n}}} \right\rangle $ осуществляется с использованием итеративного подхода.

(9)
$\frac{1}{{{{\rho }_{n}}}} = \frac{1}{{\int\limits_U^{} {S(\zeta )d\zeta } }} = \frac{1}{{1 - p}} = \sum\limits_{i = 0}^\infty {{{p}^{i}}} ,$
где $p = 1 - \int_U {S(\zeta )d\zeta } $.

Интегрирование функции по единичному квадрату выполняется явно, если $\left| p \right| < 1$.

(10)
$\left\langle {1{\text{/}}{{\rho }_{n}}} \right\rangle = 1 + \sum\limits_{i = 1}^\infty {{\kern 1pt} \prod\limits_{j = 1}^i {{{{\left\langle p \right\rangle }}_{j}}} } ,$
где ${{\left\langle p \right\rangle }_{j}}$ – начальные точки.

Во втором варианте подхода используется компромисс между дисперсией выборки и потерей энергии. Применяется параметр размера пробного набора. Определяется сколько вычислений тратится на оценку излучения от каустик, и контролируется, сколько каустик найдено. Вместо неограниченного количества пробных итераций использует фиксированное число выборок $N$. Выборки группируются в набор решений. Оценка обратной связи определяется по относительному числу вхождений каждого решения. Оценка общей пропускной способности в точке затенения ${{\vec {x}}_{1}}$:

(11)
$\frac{1}{N}\sum\limits_{m = 1}^M {{{n}_{m}}\frac{{f(\vec {x}_{2}^{{(m)}})}}{{p(\vec {x}_{2}^{{(m)}})}}} \approx \frac{1}{N}\sum\limits_{m = 1}^M {{{n}_{m}}f(\vec {x}_{2}^{m})\frac{N}{{{{n}_{m}}}}} = \sum\limits_{m = 1}^M {f(\vec {x}_{2}^{m})} ,$
где $x_{2}^{{(m)}}\;(m = 1,...,M)$ – набор решений.

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

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

(12)
${{D}_{s}}({{\vec {d}}_{i}},\vec {n},r) = \left\{ \begin{gathered} D_{s}^{T}({{{\vec {d}}}_{i}},\vec {n}),\quad r = 1, \hfill \\ D_{s}^{T}({{{\vec {d}}}_{i}},\vec {n},r),\quad otherwise, \hfill \\ \end{gathered} \right.$
где ${{\vec {d}}_{i}}$ – направления падения света, $\vec {n}$ – нормали поверхности, $r$ – относительный показатель преломления.

(13)
$D_{s}^{T}({{\vec {d}}_{i}},\vec {n}) = 2\langle {{\vec {d}}_{i}},\vec {n}\rangle \vec {n} - {{\vec {d}}_{i}},$
(14)
$\begin{gathered} D_{s}^{T}({{{\vec {d}}}_{i}},\vec {n},r) = \\ \, = - r({{{\vec {d}}}_{i}} - \langle {{{\vec {d}}}_{i}},\vec {n}\rangle \vec {n}) - \vec {n}\sqrt {1 - {{r}^{2}}(1 - {{{\langle {{{\vec {d}}}_{i}},\vec {n}\rangle }}^{2}})} . \\ \end{gathered} $

Падающее и исходящее направления света взаимосвязаны следующим образом:

(15)
${{\vec {d}}_{0}} = D({{\vec {d}}_{i}},\vec {n},r).$

Разница в сферических координатах векторов будет:

(16)
${{\vec {b}}_{i}} = \left( \begin{gathered} \theta (D({{{\vec {x}}}_{i}}{{{\vec {x}}}_{{i - 1}}},{{{\vec {n}}}_{i}},{{r}_{i}})) - \theta ({{{\vec {x}}}_{i}}{{{\vec {x}}}_{{i + 1}}}) \\ \varphi (D({{{\vec {x}}}_{i}}{{{\vec {x}}}_{{i - 1}}},{{{\vec {n}}}_{i}},{{r}_{i}})) - \varphi ({{{\vec {x}}}_{i}}{{{\vec {x}}}_{{i + 1}}}) \\ \end{gathered} \right),$
(17)
$\theta ({{\vec {d}}_{s}}) = {{\cos }^{{ - 1}}}({{\vec {d}}_{{iz}}}),$
(18)
$\varphi ({{\vec {d}}_{s}}) = a\tan 2({{\vec {d}}_{{iy}}},{{\vec {d}}_{{ix}}}).$

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

Метод также позволяет обрабатывать блики, которые представляют собой субпиксельные отражения света на зеркальной поверхности с микрогеометрией. Задача поиска бликов идентична случаю с каустикой. Отличием является то, что поиск ограничен небольшими областями поверхности. Для визуализации бликов используется двулучевая функция распределения света (BRDF) по площади пикселя. Генерируются случайные начальные точки внутри пикселя и происходит поиск решений, с помощью дискретного набора решений для вычисления пути $\bar {x} = {{\vec {x}}_{0}},{{\vec {x}}_{1}},{{\vec {x}}_{2}}$, соединяющего камеру с положением источника света с зеркальным отражением.

2.3. Алгоритм рендеринга

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

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

Алгоритм рендеринга:

Вход: Точка затенения x1 и положение излучателя x3 с плотностью $\rho ({{x}_{3}})$

1. ${{x}_{2}}$ $ \leftarrow $ Выборка зеркальной вершины в качестве начальной позиции

2. $x_{2}^{{''}}$ $ \leftarrow $ Проход по многообразию $({{x}_{1}},{{x}_{2}},{{x}_{3}})$

3. $\left\langle {1{\text{/}}{{\rho }_{n}}} \right\rangle $ $ \leftarrow $ 1 Оценка обратной вероятности выборки $x_{2}^{{''}}$

4. Цикл

5. ${{x}_{2}}$ $ \leftarrow $ Выборка зеркальной вершины, как показано выше

6. $x_{2}^{'}$ $ \leftarrow $ Проход по многообразию $({{x}_{1}},{{x}_{2}},{{x}_{3}})$

7. Если ${\text{||}}x_{2}^{'} - x_{2}^{{''}}{\text{||}} < \varepsilon $

8. Выход из цикла

9. $\left\langle {1{\text{/}}{{\rho }_{n}}} \right\rangle $ $ \leftarrow $ $\left\langle {1{\text{/}}{{\rho }_{n}}} \right\rangle $ + 1

10. Завершение выполнения функции

Результат: Оценка излучения, распространяющегося от x3 до x1.

Шаги 1–2 быстро сходятся к определенному решению, и требуется всего несколько итераций, чтобы найти то же самое решение еще раз в шагах 4–9. Двухэтапный подход к отбору проб выполняет два обхода. Первый этап игнорирует карту нормалей и находит зеркальные пути на исходной гладкой поверхности. Нормаль смещения выбирается перед каждым обходом и не меняется во время итерации, которая сходится быстро и с высокой вероятностью. Начальный случайный обход по многообразию приводит к близости различных решений. Оценка взаимной вероятности адаптированной выборки проста. Единственное требование состоит в том, чтобы двухэтапная выборка последовательно использовалась как в шагах 1–2, так и в шагах 4–9 алгоритма.

Если начальные точки ${{\left\langle p \right\rangle }_{j}} = 0$, (формула (10)), то обход по многообразию j сходится к корню ${{\varsigma }^{n}}$, (формула (9)), если ${{\left\langle p \right\rangle }_{j}} = 1$, то процесс нашел другой корень или разошелся. То есть это процесс подсчета: выполняются повторные обходы многообразия до тех пор, пока не будет найдено ${{\varsigma }^{n}}$. Количество испытаний дает объективную оценку $\left\langle {1{\text{/}}{{\rho }_{n}}} \right\rangle $. Моделирование геометрического распределения обеспечивает оценку искомой обратной связи и составляет базовую компоненту алгоритма.

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

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

3. РЕЗУЛЬТАТЫ

Тестирование производилось на компьютере с процессором Intel Core2 CPU E8400 3.0 GHz, и графическом процессоре GeForce GTX 470. Изображения были визуализированы с разрешением 1024 4 768 пикселей.

Сцена колец (рис. 2) показывает, как прямые, так и косвенные каустики, создаваемые отражением от кольца на зеркальной поверхности с диффузно-зеркальной составляющей α = 0.1. Изображение демонстрирует каустики, созданные при отражении света внутри колец. Диффузно-зеркальная составляющая поверхности изменяется от 1 (диффузная) до 0 (зеркальная). Параметр $\alpha $ определяет, является ли поверхность диффузной или зеркальной. Такая модель была представлена Шликом в [10]. Эта модель проста и обладает полезным свойством, заключающимся в том, что она обеспечивает непрерывный переход от ламбертовского отражения к глянцевому зеркальному отражению.

Рис. 2.

Множественные решения ограничения зеркального пути образуют суперпозицию каустик.

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

Другой тестовый пример (рис. 3) представляет собой более сложную сцену, в которой использована не ламбертовская модель отражения. Изображен стеклянный сосуд с водой с каустикой. Образуется каустика, когда свет проходит через стекло и воду. На рис. 4 графики показывают дисперсию внутри каустики и снаружи как функцию от числа выборок. Диффузно-зеркальная составляющая – α = 0.1. Выполняется оценка яркости в пикселях снаружи и внутри каустики. Дисперсия пикселей эквивалентна дисперсии оценки яркости. Графики показывают, что асимптотическое приближение хорошо предсказывает дисперсию.

Рис. 3.

Объемная каустика.

Рис. 4.

Зависимости дисперсии от числа выборок.

Метод также эффективен при визуализации бликов со сложной микроструктурой, заданной с использованием карт нормалей (металлическая поверхность с очень сильной анизотропией (рис. 5)). Измеренные данные коэффициента отражения металлической поверхности в зависимости от угла между нормалью и полувектором, перенормированные по значению в начале координат, показаны на рисунке 6. Модель BRDF Кука–Торренса показана на рис. 7.

Рис. 5.

Зеркальная металлическая поверхность.

Рис. 6.

Данные коэффициента отражения металлической поверхности в зависимости от угла между нормалью и полувектором модели BRDF.

Рис. 7.

Модель BRDF.

В работе рассмотрены количественные показатели (корень из средней квадратичной ошибки). Наша модель обеспечивает очень хорошее представление для глянцевых, шероховатых и зеркальных материалов. Модель имеет меньший показатель корня из средней квадратичной ошибки, чем другие тестируемые модели для нескольких материалов (см. рис. 8).

Рис. 8.

Количественные показатели (корень из средней квадратичной ошибки) в BRDF для нескольких материалов.

Мы сравнили нашу модель с двумя эталонными моделями: распределением гамма-излучения со смещением [7] и моделью плавного отражения [8] (табл. 1).

Таблица 1.

Методы, использованные при сравнении

Методы База Форма лепестка Количество параметров
[7] Модель освещения Кука–Торренса Сдвинутое гамма-распределение 18
[8] Дифракция К-корреляционная модель 9
Наш метод Гауссово поле высот Гауссовский 10

На рисунке 9 показана комбинированная сцена каустики и шероховатой поверхности, видно, что каустика от стеклянного сосуда не размывает шероховатый узор металлической поверхности (количество выборок на пиксель – 10).

Рис. 9.

Комбинированная сцена каустики и шероховатой поверхности.

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

Представленные в работе изображения визуализированы в нереальном времени с разрешением экрана 1024 × 768. Время визуализации зависит от многих факторов, главным образом от числа выборок и количества вершин зеркальных путей (рис. 1). В таблице 2 показано время визуализации для тестовых сцен.

Таблица 2.

Время визуализации

Изображение Время визуализации
Рис. 2 1.8 мин
Рис. 3 4.5 мин
Рис. 5 34 сек
Рис. 9 5.2 мин

4. ЗАКЛЮЧЕНИЕ

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

Список литературы

  1. Фролов В.А., Волобой А.Г., Ершов С.В., Галактионов В.А. Современное состояние методов расчета глобальной освещенности в задачах реалистичной компьютерной графики // Труды Института системного программирования РАН. 2021. Т. 33. № 2. С. 7–48. https://doi.org/10.15514/ISPRAS-2021-33(2)-1

  2. Hachisuka T., Ogaki S., Jensen H.W. Progressive Photon Mapping // ACM Transactions on Graphics. 2008. V. 27. № 5. P. 1–8. https://doi.org/10.1145/1457515.1409083

  3. Sik M., Krivanek J. Implementing One-Click Caustics in Corona Renderer // Eurographics Symposium on Rendering - Industry Track. T. Boubekeur and P. Sen (Editors). 2019. https://doi.org/10.2312/sr.20191221

  4. Hu W., Dong Z., Ihrke I., Grosch T., Yuan G., Seidel H.-P. Interactive Volume Caustics in Single-Scattering Media // In Proc. of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. 2010. P. 109–117. https://doi.org/10.1145/1730804.1730822

  5. Celestino S., Romano D., Laccetti G., Lapegna M. Bidirectional Path Tracing. A rendering method with Global Illumination on GPU // Applied Mathematical Sciences. 2014. V. 8. № 133. P. 6783–6790. https://doi.org/10.12988/ams.2014.49694

  6. Jensen H.W. Realistic image synthesis using photon mapping. Publisher: A. K. Peters, Ltd.63 South Avenue Natick, MA United States. 2001. 181 p. ISBN:978-1-56881-147-5

  7. Bagher M.M., Soler C., Holzschuch N. Accurate fitting of measured reflectances using a Shifted Gamma micro-facet distribution // Computer Graphics Forum. 2012. V. 31. № 4. P. 1509–1518. https://doi.org/10.1111/j.1467-8659.2012.03147.x

  8. Löw J., Kronander J., Ynnerman A., Unger J. BRDF models for accurate and efficient rendering of glossy surfaces // ACM Transactions on Graphics. 2012. V. 31. № 1. P. 1–14. https://doi.org/10.1145/2077341.2077350

  9. Вяткин С.И. Моделирование сложных поверхностей с применением функций возмущения // Автометрия. 2007. Т. 43. № 3. С. 40–47. Vyatkin S.I. Complex Surface Modeling Using Perturbation Functions // Optoelectronics, Instrumentation and Data Processing. 2007. V. 43. № 3. P. 40–47.

  10. Schlick C. A Customizable Reflectance Model for Everyday Rendering // In proceedings of four Eurographics Workshop on Rendering. 1993. P. 73–84. Corpus ID: 18967314

Дополнительные материалы отсутствуют.