1. ВВЕДЕНИЕ
Одной из сложных проблем является визуализация зеркальных и прозрачных материалов [1]. Для таких материалов свет отражается или преломляется в каждой точке поверхности, поэтому приближения, повышающие скорость за счет размытия, неприемлемы. Эффекты преломления могут сильно влиять на восприятие прозрачных объектов. С другой стороны, скорость имеет приоритет над реализмом в большинстве интерактивных приложений. Желание улучшить качество графики побудило к разработке различных быстрых приближений для реалистичного освещения. Также важным является возможность эффективной реализации методов на GPU c учетом все возрастающей аппаратной поддержки.
В работе [2] представлен метод рендеринга каустики в реальном времени, который использует DirectX Raytracing API и интегрирован в конвейер рендеринга. Использованы карты прямой каустической видимости и карты обратной каустической видимости, которые создаются для источников света и виртуальной камеры соответственно.
Каустика важный визуальный эффект, способствующий восприятию реалистичности сцен с использованием отражающих и преломляющих поверхностей [3, 4].
Последние достижения в области рендеринга значительно снижают стоимость глобального освещения. Но даже с аппаратным ускорением сложные световые пути с множеством взаимодействий с глянцем по-прежнему требуют многих вычислений. В статье [5] описан метод, который в сочетании с традиционными световыми картами для рассеянного освещения интерактивно отображает все световые пути в статичных сценах с непрозрачными объектами. Чтобы минимизировать объем памяти, вводится адаптивная параметризация, которая обеспечивает повышенное разрешение для более блестящих поверхностей и областей с более высокой геометрической сложностью.
Эффекты, такие как отражения, создают существенную проблему для алгоритмов визуализации на основе изображений и нейронных сетей. Прежде всего, это изогнутые отражатели, поскольку они приводят к сильно нелинейным потокам отражения при движении камеры. В статье [6] вводится представление на основе точек для вычисления нейронной точечной катакаустики, позволяющей синтезировать сцены с изогнутыми отражателями в новом ракурсе из набора случайно снятых входных фотографий. В основе метода лежит нейронное деформирующее поле, которое моделирует катакаустические траектории отражений. Поэтому сложные зеркальные эффекты могут быть визуализированы с использованием эффективного точечного сплаттинга в сочетании с нейронным визуализатором.
В данной работе, в отличие от метода [7] высокореалистичной визуализации нереального времени, предлагается интерактивное вычисление преломления света и каустик с применением графического процессора.
Целью представленной работы является разработка метода визуализации преломляющих сред с интерактивной частотой кадров без предварительных вычислений.
Главными отличительными особенностями предложенного метода являются:
- объекты на основе функций возмущения;
- распространение света в виде параллельных плоскостей.
2. ПОСТАНОВКА ЗАДАЧИ
Визуализация сложных пространственных структур является затратной в вычислительном отношении, так как из-за отсутствия дискретных однородных объектов вклад освещенности должен оцениваться и распространяться в каждой точке пространства.
Хотя разработаны эффективные высококачественные методы интерактивного рендеринга объемных данных с улучшенными эффектами освещения, с целью уменьшения вычислений пренебрегают эффектом рефракции. То есть изменением направления распространения света из-за различий в скорости света между передающими средами. Так как эффекты преломления игнорируются, в результате лучи рассматриваются как прямые. А это значительное упрощение.
В то время как рефракция отвечает за широкий спектр оптических явлений, которые сильно влияют на внешний вид полупрозрачных материалов. Например, световой луч внутри стеклянной линзы, окруженной воздухом, распространяется с более высокой скоростью. Каустики представляют собой сложные узоры сфокусированного света, окруженного затененными областями из-за преломления изогнутыми объектами.
То есть скорость света является непрерывно изменяющимся свойством, вызывающим изменение направления в каждой точке пространства, и эффекты преломления сильно влияют на восприятие прозрачных объектов. Преломление вносит важные дополнительные эффекты форм при визуализации.
Физически корректный рендеринг выполняется с помощью таких методов, как описано в [8]. Однако они медленные и результирующие изображения получаются с заметными артефактами.
Для целей визуализации нам требуется интерактивная производительность, позволяющая выполнять такие операции, как смена положения камеры, модификация передаточной функции и клиппирование.
Поскольку искривленные световые лучи значительно усложняют выборку на регулярной сетке, необходимо избежать явного формирования объема освещения, так как для вычисления преломления такая дискретизация проблематична. Кроме этого, необходимо указывать источник света относительно положения камеры, чтобы его не перенастраивать всякий раз, когда сцена поворачивается.
В этой статье представлен подход визуализации преломляющего объемного освещения, включающий каустики, с интерактивной частотой кадров. С помощью совмещения вычислений света и распространения лучей метод не требует запоминания информации освещенности и предварительных вычислений, что позволяет полностью динамично манипулировать всеми параметрами рендеринга. В результате не требуется хранения данных промежуточного объема освещения. Параметры, такие как положение света и передаточная функция, могут изменяться в интерактивном режиме без снижения производительности.
3. ОПИСАНИЕ МЕТОДА
3.1. Объекты на основе функций возмущения
Задание объектов (свободных форм) происходит с применением поверхностей второго порядка квадрик и функций возмущения второго порядка [9]:
(1)
где функция свободной формы; F(x,y,z) функция базовой квадрики; fi форм-фактор; функция возмущения,
(2)
где Q(x, y, z) возмущающая квадрика.
Объект при функциональном задании целиком определен с помощью вещественной непрерывной описывающей функции трех переменных (x, y, z) в виде . Объекты рассматриваются как замкнутые подмножества евклидова пространства E3, определяемые описывающей функцией , где F непрерывная вещественная функция и (x, y, z) задаваемая координатными переменными точка в E3. Здесь задает точки внутри объекта, точки на границе и точки, лежащие снаружи и не принадлежащие объекту.
Решая описывающую функцию в виде неравенства мы можем визуализировать не только поверхность, но и внутреннюю структуру объекта [10].
Важной частью является эффективное нахождение первого пересечения луча с поверхностью. Данная задача напоминает методы визуализации объемных данных, которые часто применяются, например, в томографии. В подобных методах задана функция плотности. Основным отличием является то, что в подобных подходах мы имеем дело с дискретными данными. А в нашем случае есть аналитически заданная функция плотности. Это позволяет более эффективно осуществлять поиск пересечения луча с поверхностью [11]. Так как условные переходы это дорогие операции для геометрического процессора, чтобы не использовать рекурсию, возмущения задаются явно.
3.2. Уравнение переноса излучения
Уравнение в дифференциальной форме имеет следующий вид [12]:
(3)
где излучение, параметризованное точкой и направлением движения ω:
потери, вызванные поглощением и рассеянием;
и
выигрыши, обусловленные излучением и рассеиванием соответственно; функция фазы, количественно определяет направленную плотность рассеянного света (направление движения ωS2); S2 единичная сфера.
С помощью решения интеграла Дирака получается интегральная форма уравнения переноса излучения, включающая прямое рассеяние:
(4)
где и
3.3. Подповерхностное рассеяние
Количество энергии, проходящей в нижние слои поверхности, равно [13]:
(5)
где F коэффициент отражения Френеля для отражения. Для пластика коэффициент отражения зависит от коэффициента отражения ρd диффузного слоя [12]:
(6)
где Fdr коэффициент диффузного отражения Френеля.
Коэффициент диффузного отражения Френеля соответствует интегралу коэффициента отражения Френеля, умноженному на косинус угла по входящим направлениям.
Для подповерхностного слоя это зависит от альбедо a рассеивающего материала [13]:
(7)
где αi′ и αo′ углы преломления лучей с нормалью к поверхности (рис. 1).
Рис. 1. Подповерхностное рассеяние света.
Таким образом, при преломлении света лучи как от источника освещения, так и лучи, видимые наблюдателем, изменяют направление в зависимости от свойств материала.
3.4. Передача света
Перенос света в общем виде описывается с использованием интеграла пути [14]. Интенсивность I определяется в виде интеграла
(8)
где Ω пространство путей переноса света z, f(z) пропускная способность пути.
Интеграл по траектории аппроксимируется оценкой
(9)
где p вклад путей распространения света, отобранных с плотностью вероятности d(z).
Пути распространения света z=xn ym разлагаются на фотонные субпути xn и субпути камеры ym.
Вычисление плотности выполняется в паре вершин xn ym.
3.4.1. Вычисление плотности
Приближенное вычисление плотности полной пропускной способности пути
(10)
здесь Dn,m оценка плотности в паре вершин xn и ym.
3.4.2. Вычисление излучения
Введем трехмерные оценки плотности. Метод может быть повторно применен к еще более высоким измерениям.
Оценка плотности для лучей фотонов вычисляется следующим образом [15, 16]:
(11)
где функции интегрирующей переменной s, K2 2D-ядро размытия.
Интегральные границы определяются пересечением луча камеры и фотонного луча.
Лучи объединяются в непрерывную фотонную плоскость с вкладом
(12)
где якобиан.
Вставим и расширим оценку (12) в уравнение (10), для :
(13)
Заменим выборку расстояния вдоль tn2 детерминированной плоскостью.
однородное ядро размытия. нормаль к плоскости (рис. 2).
Рис. 2. Вклад плоскостей в объем.
Вклад всех плоскостей в объем составит:
(14)
Взятие предела даст непрерывный объем фотонов.
Однако подходы нереального времени [15, 16] не поддерживают рефракцию. Чтобы учесть преломление, модифицируем метод фотонных плоскостей. Искривленные световые лучи значительно усложняют выборку на регулярной сетке. Для визуализации в нереальном времени сцен с преломляющими средами используются методы вычисления освещенности с помощью фотонных карт. Эти методы требуют очень много вычислений, поскольку необходимо огромное количество фотонов для качественного изображения, то есть чтобы изображение казалось непрерывным [17].
Вместо того чтобы испускать отдельные фотоны, в предлагаемом методе распространяется свет плоскость за плоскостью, одновременно с вычислением лучей от наблюдателя. Объем пересекается плоскостями, параллельными плоскости изображения.
При визуализации желательно указывать источник света относительно положения камеры, чтобы его не перенастраивать при геометрических преобразованиях.
Для этого мы использует один удаленный источник света, расположенный в том же полушарии, что и наблюдатель.
Свет распространяется в виде параллельных плоскостей, с сохранением его направления и излучения в 2D-буферах. Для каждой точки в световом буфере происходит интегрирование в обратном направлении вдоль светового пути. Вычисляется пересечение луча, исходящего из текущей точки на световой плоскости, с предыдущей плоскостью света в отрицательном направлении света. Используется билинейная интерполяция для получения значений яркости и направления в точке пересечения.
Нарезка плоскостей происходит, как описано в работе [18].
Входящее излучение смешивается с вкладами частиц и среды между двумя плоскостями. Направление света обновляется на основе градиента поля показателя преломления. Для каждого положения пикселя в текущем световом буфере вычисляем:
(15)
здесь Lj новый цвет света, Lj1 фильтрованный предыдущий цвет света, Ij интенсивность света, α непрозрачность, с средний цвет между плоскостями j −1 и j.
Направление света вычисляется следующим образом:
(16)
здесь dlj новое направления света, dlj−1 фильтрованное предыдущее направление света, Δp расстояние между световыми плоскостями, λ показатель преломления.
Необходимо не только распространять и рассеивать свет, но и находить каустики.
Используем следующее уравнение интенсивности:
(17)
здесь Ij интенсивность света на элементе площадью Aj, передающаяся из элемента с площадью Aj−1 с интенсивностью Ij−1.
Необходимо теперь вычислить требуемые области. Так как графические процессоры имеют встроенные функции для вычисления частных производных, оптимальным решением является аппроксимация областей с использованием частных производных в пространстве экрана. Для этого вычисляются пересечения светового луча с текущей и предыдущей плоскостями.
Области Aj и Aj−1 (17) задаются:
(18)
здесь pi точка пересечения луча и соответствующей плоскости.
Эта поправка затем используется в уравнении (17) для восстановления каустики.
Входящее рассеянное освещение определяется путем поиска значения в световом буфере в текущем местоположении луча обзора. Вычисляется зеркальная составляющая аналитически с использованием коэффициента КукаТорренса в модели BRDF [19]. Зеркальная составляющая вычисляется с помощью направления света, луча обзора и нормали. С помощью нормали вычисляется отражательная способность границы раздела на основе относительного показателя преломления между текущей и предыдущей плоскостями освещения.
Отражения и передача света вычисляются следующим образом.
Цвет:
(19)
непрозрачность:
(20)
среднее значение цвета:
(21)
где Cj новое значение цвета частиц, Cj-1 предыдущее значение цвета частиц, αj новое значение непрозрачности, αj−1 предыдущее значение непрозрачности, cj новое среднее значение цвета частиц, cj−1 предыдущее среднее значение цвета частиц, id вклад рассеянного освещения, is вклад зеркального освещения, ς, σ, υ вклады сегмента луча.
Замечание. В случае таких материалов, как стекло, вклад зеркального освещения не умножается на непрозрачность, так как максимально пропускающие части объема без вклада непрозрачности могут иметь зеркальные отражения.
На рис. 3 показан алгоритм вычислений.
Рис. 3. Алгоритм визуализации.
Используются следующие буферы: буфер освещения, буфер направления света, буферы положения и направления луча обзора, буферы цвета и окружающей среды (рис. 3).
Шаг 1. Буферы инициализируются с помощью шейдера. Шейдер инициализации очищает буферы цвета и окружающей среды, вычисляет направление луча от наблюдателя и начальные положения. Инициализируются буферы освещения, направления света с цветом и направления источника света. Сохраняются координаты направления лучей и положения в пространстве.
Шаг 2. Клиппирование функционально заданного объекта световой плоскостью, получение среза. Вычисляется контур точки на границе (воксели с нормалями) и точки внутри объекта. Алгоритм приведен для одного среза, для остальных он повторяется.
Распространение света и лучей, исходящих от наблюдателя, выполняются с помощью программы фрагментного шейдера для каждой световой (клиппирующей) плоскости.
Шаг 3. Распространение света от предыдущей плоскости выполняется с использованием обратного интегрирования (формулы (15) и (16)). Моделируется направленный источник света.
Шаг 4. Фильтрация цвета и направления входящего света необходима, так как затенение будет становиться все более рассеянным по мере продвижения света от предыдущей плоскости. Используется ядро фильтрации, как описано в [20]. Это же ядро применяется для фильтрации направления лучей, чтобы устранить артефакты, вызванные обратным отображением.
Отфильтрованные цвет Lj−1 и направление света dlj−1 затем используются в уравнениях (15) и (16).
Шаг 5. Коррекция интенсивности света выполняется с использованием конечно-разностных функций графического процессора, то есть частных производных в пространстве экрана от пересечения светового луча с текущей и предыдущей клиппирующими плоскостями, поскольку современные графические процессоры имеют встроенные функции для вычисления этих производных.
Вклад объема в текущей плоскости определяется с использованием таблиц предварительного интегрирования для цвета среды и частиц, непрозрачности и используется для вычисления нового цвета.
Шаг 6. Вычисление нового цвета и показателя градиента преломления, который используется для обновления направления света. Новый цвет и направление света сохраняются в буферах.
Шаг 7. Вычисление зеркального отражения и каустики. В отличие от распространения света, просмотр лучей от наблюдателя происходит с использованием прямого интегрирования. Сохраняется их положение, направление и накопленный цвет в наборе 2D-буферов. Для положения и направления лучей от наблюдателя предыдущие значения, а также накопленный цвет, непрозрачность и цвет окружающей среды извлекаются из соответствующих буферов. Входящее освещение извлекается из светового буфера и вычисляется зеркальное затенение с использованием градиента объема.
Шаг 8. Вклады текущего сегмента луча извлекаются из таблиц предварительной интеграции и используются для вычисления новой непрозрачности, цвета частиц и среды. Направление луча обновляется с использованием градиента показателя преломления. Определяется пересечение луча со следующей световой плоскостью.
Шаг 9. Новые значения сохраняются в буферах.
Для отображения изображений использован OpenGL 4.5 с многослойными вложениями буфера кадра (в режиме Flip-Flop), синхронизацией и т.д. Геометрический шейдер указывает, какой слой вложения записывается. Режим Flip-Flop означает, что можно одновременно в одну часть памяти записывать, а из другой считывать данные. Используется также встроенный контроль за записями текстур и кешированием.
4. РЕЗУЛЬТАТЫ
Тестирование производилось на компьютере с процессором Intel Core i7-4930K OEM и графическом процессоре GeForce GTX 980 Ti. Изображения были визуализированы с разрешением 1024 × 768 пикселей.
На рис. 4а показана каустика от стеклянного эллипсоида на поверхность с диффузно-зеркальной составляющей α = 0,1. Диффузно-зеркальная составляющая поверхности изменяется от 1 (диффузная) до 0 (зеркальная). Параметр α определяет, является ли поверхность диффузной или зеркальной. Такая модель была представлена Шликом в [21]. Эта модель проста и обладает полезным свойством, заключающимся в том, что она обеспечивает непрерывный переход от ламбертовского отражения к глянцевому зеркальному отражению. На рис. 4б показан тот же объект, визуализированный с помощью метода [7], при этом некоторые детали внутренней структуры эллипсоида упущены.
Рис. 4. Слева: прозрачный эллипсоид с каустикой. Справа: тот же объект, визуализированный с помощью метода [7].
На рис. 5а (слева) показан объект с преломлением и сочетанием пропускающих и отражающих свойств материала. Рисунок демонстрирует сложные световые узоры каустики из-за изогнутой геометрии объекта. На рис. 5б показан тот же объект, визуализированный с помощью метода [7], который демонстрирует меньшее изгибание световых лучей.
Рис. 5. Слева: прозрачный объект с каустикой. Справа: тот же объект, визуализированный с помощью метода [7].
Рис. 6 демонстрирует важность преломления для внешнего вида прозрачных структур. В прозрачном сосуде содержится жидкость. Задаем различные показатели преломления для стекла и жидкости. Увеличиваем непрозрачность жидкости. Жидкость теперь поглощает большую часть поступающего света, в результате чего образуется темная тень, а внутри каустика. Кроме того, становится виден рисунок, вызванный преломлением света.
Рис. 6. Слева: прозрачный сосуд с жидкостью и каустикой. Справа: тот же объект, визуализированный с помощью метода [7].
На рис. 6б показан тот же объект, визуализированный с помощью метода [7], на острых краях сосуда видны артефакты, которые уменьшаются с увеличением количества выборок.
В табл. 1 приведены показатели производительности алгоритма. Время указано в миллисекундах.
Как видно из таблицы, визуализация осуществляется в интерактивном режиме. Это стало возможно благодаря некоторым упрощениям.
Таблица 1. Время визуализации
Изображение | Разрешение по глубине в вокселях | Время визуализации. Разрешение 640×480 | Время визуализации. Разрешение 800×600 | Время визуализации. Разрешение 1024×768 |
Рис. 4а Рис. 5а Рис. 6а | 256 512 800 | 15 мс 60 мс 65 мс | 26 мс 109 мс 126 мс | 56 мс 176 мс 203 мс |
В табл. 2 приведены времена вычисления этих изображений с помощью метода [7]. Время указано в минутах.
Таблица 2. Время визуализации метода [7]
Изображение | Время визуализации. Разрешение 1024×768 |
Рис. 4б Рис. 5б Рис. 6б | 1.2 мин. 3.3 мин. 4.8 мин. |
В табл. 1 показаны данные для одного источника света, расположенного в том же полушарии, что и камера. Каждый новый источник освещения требует дополнительных вычислений, которые растут линейно. Рост дополнительного времени вычислений (ордината, в миллисекундах) показан на рис. 7.
Рис. 7. Дополнительное время вычислений.
Кроме этого, наш подход рассматривает показатель преломления как скалярную величину, игнорируя тот факт, что физическое преломление также влияет на длину волны света. Это означает, что наш метод, следовательно, не способен улавливать явления, зависящие от длины волны. Можно было бы решить эту проблему, указав отдельные показатели преломления для спектральных образцов за счет создания их спецификации, или спектральный показатель преломления может быть получен в виде функции цвета среды. Но это требует также дополнительных вычислений.
Тем не менее предлагаемый метод имеет преимущества перед методами, использующими фотонные карты.
В работе [17] отмечено, что если важно уметь получать приближенное решение быстро, то можно использовать различные методы на основе фотонных карт [22]. Однако эти методы имеют недостатки, например, надо выбирать между сильно заниженной дискретизацией каустики и большим снижением скорости, чтобы использовать достаточное количество фотонов для каустики, чтобы получить качественные изображения.
В обзорной статье [23] представлен широкий ряд как интерактивных методов, использующих фотонные карты, так и методы нереального времени, которые включают в себя расширенные световые эффекты. Хотя было разработано много эффективных методов, они либо не поддерживают рефракцию [24], либо являются подходами нереального времени [25].
В статье [26] дан обзор прогрессивных методов переноса света, в том числе рассмотрены несколько подходов на основе фотонных карт, с применением графических процессоров. В ней исследованы три прогрессивных алгоритма, основанных на отображении фотонов, а именно, прогрессивное отображение фотонов (PPM), стохастическое прогрессивное отображение фотонов (SPPM) и прогрессивное двунаправленное отображение фотонов (PBPM). Общим элементом всех алгоритмов является оценка плотности, основанная на сборе фотонов в области с определенным радиусом от точки запроса. Рассмотрены три структуры данных, предназначенные для ускорения этого процесса: kD-дерево, полная хэш-сетка и стохастическая хэш-сетка. Авторы отмечают, что стандартная оценка плотности на глянцевых поверхностях дает результаты с шумом, который можно лишь уменьшить разными способами, но не устранить.
Поскольку и генерация фотонов, и запросы выполняются на графическом процессоре, важно, чтобы построение структуры данных также обрабатывалось графическим процессором, чтобы ограничить передачу данных из CPU в GPU.
Существуют следующие проблемы. Когда радиус значительно меньше размера ячейки, ячейка может содержать много фотонов, которые будут находиться за пределами радиуса запроса и отбрасываться. Или ячейка может содержать много фотонов, которые будут находиться за пределами диапазона запроса. Другая проблема связана с неравномерным количеством фотонов в каждой ячейке например, поверхности, расположенные вблизи источников света, могут иметь значительно более высокую плотность фотонов. Это означает, что количество фотонов, обработанных в каждом запросе, может значительно отличаться, снижая эффективность графического процессора. Есть проблемы балансировки. На графическом процессоре все потоки ожидают, пока каждый поток не обработает все фотоны в своей текущей ячейке, прежде чем обрабатывать следующую ячейку. Это означает, что даже если общее количество фотонов одинаково во всех потоках, некоторые потоки не работают, в то время как другие все еще обрабатывают свои фотоны из данной ячейки.
В статье также анализируются несколько тестовых сцен. Показан объект с зеркальными отражениями и преломлениями, состоящий из 918000 треугольников. При этом используются 175000 фотонов, однако не учитывается перенос преломляющего излучения, которое моделирует непрерывное изгибание световых лучей для физически корректного рендеринга участвующих сред с изменяющимся в пространстве показателем преломления, что является одной из важных возможностей предлагаемого нами метода.
5. ЗАКЛЮЧЕНИЕ
Представлен метод визуализации функционально заданных объектов с эффектами преломления, отражения света и каустики в интерактивном режиме. Использован комбинированный подход передачи света и отслеживания лучей. Для этого применены обратное интегрирование для освещения и прямое интегрирование для отслеживания лучей. Благодаря этому получаем динамическое объемное освещение с мягкими тенями и расширенными эффектами, такими как каустика. В методе не используются предварительные вычисления, что является положительной характеристикой.
ИСТОЧНИК ФИНАНСИРОВАНИЯ
Работа выполнена при поддержке Министерства науки и высшего образования в рамках выполнения работ по Государственному заданию 1023032300221-9-1.2.1 в ИАиЭ СО РАН.