Многих определенных ресурсов о трассировке лучах говорит о:Raytracing с помощью диффузионного алгоритма
«стрелять лучи, найти первое препятствие, чтобы сократить его»
«стрелять вторичные лучи ...»
«или, сделать это обратным и приблизительным/интерполировать "
Я не видел никаких алгоритмов, которые используют алгоритм диффузии. Предположим, что точка-свет - это точка с большей плотностью, чем другие ячейки (все пространство разделено на ячейки), каждый шаг/итерация освещения/трассировки заставляет этот источник рассеиваться в соседи, используя поле скоростей, и чем их соседи и так продолжается. После некоторых удовлетворительных итераций (например, 30-40 итераций) информация о плотности каждой ячейки используется для просвечивания объектов в этой ячейке.
точечные и поле скоростей:
Но это должно быть как 1000x1000x1000 размера, и это заняло бы слишком много времени и памяти для вычисления. Возможно, просто вычислив 10x10x10 и обнаружив препятствие, разделение этой области на 100x100x100 (в динамическом режиме kd-tree) может помочь генерировать освещение/тени для приемлемого разрешения? Специально для освещения на основе вершины, а не треугольника.
Пробовал ли кто-нибудь такой подход?
Примечание: Поле скорости здесь предназначено для того, чтобы свет рассеивался наружу в основном (а не% 100, а% 99, чтобы иметь некоторое глобальное освещение). Метод конечных элементов может сделать это смущающе-параллельным.
Редактировать: любой объект, пораженный положительной плотностью, будет препятствием для создания нового поля скорости вокруг его поверхности. Таким образом, свет не может пройти через этот объект, но может быть отражен в другом направлении (если объектив объектива, чем свет, рассеивается с трудом через него). Таким образом, отражение света может влиять на другие объекты с более высоким итерированием.
Тот же kd -tree можно использовать в алгоритмах объектно-столкновений :)
Просто взять как соль соли: нейронную сеть можно обучить адвекции & диффузии в сетке 30x30x30 и которая может использоваться в «gpu (opencl/cuda) -> нейронная сеть ---> метод конечных элементов ---> тени ".
кажется классной головоломкой; я в это, но я ничего не знаю об этом. – naomik
Вы правы. Как насчет этого вопроса? Вид применим? –
Он достигнет довольно узкой аудитории только из-за высокого уровня интеллекта, необходимого для этого предмета. Так что да, я бы сказал, применимо :) – naomik