Введение

Огибающая световых лучей, отраженных или преломленных искривленной поверхностью/объектом.

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

Компьютерная графика

В компьютерной графике большинство современных систем рендеринга поддерживают каустику. Некоторые из них даже поддерживают объемную каустику. Это достигается путём трассировки лучей, отслеживающей возможные пути светового луча с учётом преломления и отражения. Фотоновое отображение является одной из реализаций этого метода. Объемную каустику также можно получить с помощью объемной трассировки пути. Некоторые компьютерные графические системы работают по принципу "прямой трассировки лучей", где фотоны моделируются как исходящие от источника света и рассеивающиеся в окружающей среде согласно определённым правилам. Каустика формируется в областях, куда попадает достаточное количество фотонов, делая поверхность ярче средней освещённости в сцене. "Обратная трассировка лучей" работает в обратном порядке, начиная с поверхности и определяя, существует ли прямой путь к источнику света. Примеры 3D-каустик, полученных трассировкой лучей, можно найти здесь. В большинстве компьютерных графических систем основное внимание уделяется эстетике, а не физической точности. Это особенно заметно в графике реального времени в компьютерных играх, где вместо физически корректных расчётов чаще всего используются универсальные предварительно рассчитанные текстуры.

Каустическая инженерия

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

Основной принцип

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

Проектируемый трубопровод

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

Элементы, способствующие формированию изображения

Внешний вид: внешний вид поверхности для каждого пикселя моделируется как произведение текстуры с mip-уровнями и яркости для каждого пикселя. Геометрия: предполагается, что 3D-сцена аппроксимируется треугольниками, заданными вершинами. Камера: фокусное расстояние, точка обзора, центр камеры. Могут присутствовать и другие элементы, например, альбедо и коэффициент преломления.

Общая дифференцируемая структура

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

Реализация

Одним из распространенных подходов является использование возможности выполнения дифференциальных операций в различных фреймворках и библиотеках автоматической дифференциации глубокого обучения, таких как: Tensorflow, PyTorch, Theano. Другой подход заключается в использовании OpenDR для построения прямой графической модели и автоматического получения производных по параметрам модели для оптимизации. По мере получения свойств оптимизации можно сгенерировать целевое изображение. OpenDR предоставляет метод локальной оптимизации, который можно интегрировать в фреймворки вероятностного программирования. Это может быть использовано для решения задачи каустики.