2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Трассировка лучей "в среднем" [машинная графика]
Сообщение03.07.2018, 00:27 
Стоит следующая задача. Есть источник света на поверхности толстого слоя, состоящего внутри из многочисленных произвольным образом распределенных однородных оптических сред, границы которых заданы триангулированными поверхностями. Требуется путем лучевого трассирования найти "картину освещенности" на другом конце слоя.
Если делать в лоб, то получается слишком много вариантов трассирования лучей (экпоненциальный рост, потому что каждая встреча с границей раздела сред порождает два новых луча - отраженный и преломленный). Интуитивно кажется, что можно попробовать найти картину "в среднем", то есть, следить не за всеми лучами, а за случайным образом выбранными.
Но вопрос, как правильно осуществлять такой выбор? Поскольку пространство лучей в общем случае неограниченное, кажется, нужно дополнительно наложить ограничения - например, что суммарная потеря энергии трассируемых лучей не должна превосходить заданную. Получается некая гиперсфера, на которой нужно равномерно осуществлять семплирование...
В общем, кажется, это какая-то стандартная задача в машинной графике, но я не знаю, по каким ключевым словам искать. Буду благодарен, если подскажете.
Спасибо.

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

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение03.07.2018, 12:46 
Аватара пользователя
М.Борн, Э. Вольф. Основы оптики. Параграф 1.6.5 "Слоистые среды", стр. 78 по изданию 1973 года.

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение05.07.2018, 18:00 
amon
ммм... там физика (и для параллельных слоев), а в данном случае мне нужна вычислительная графика (и для произвольным образом расположенных границ раздела).

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение05.07.2018, 18:11 
Аватара пользователя
_hum_ в сообщении #1324680 писал(а):
Там физика (и для параллельных слоев), а в данном случае мне нужна вычислительная графика (и для произвольным образом расположенных границ раздела).
А без физики тут вряд ли можно справиться. Прохождение луча через каждую плоскую границу можно представить как действие некоторой матрицы на направляющий вектор и амплитуду луча. Если интерференцией можно пренебречь (слои толстые), то все совсем просто - связываете с каждым элементом такую матрицу, и вперед с песнями. Если интерференцию надо учитывать, то все становится хитрее.

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение05.07.2018, 19:46 
amon в сообщении #1324687 писал(а):
А без физики тут вряд ли можно справиться. Прохождение луча через каждую плоскую границу можно представить как действие некоторой матрицы на направляющий вектор и амплитуду луча. Если интерференцией можно пренебречь (слои толстые), то все совсем просто - связываете с каждым элементом такую матрицу, и вперед с песнями. Если интерференцию надо учитывать, то все становится хитрее.


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

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение06.07.2018, 09:50 
Аватара пользователя
Обрезайте самые тусклые лучи.

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение14.07.2018, 23:20 
Munin в сообщении #1324798 писал(а):
Обрезайте самые тусклые лучи.

Они могут собраться в конце-концов вместе (например, в фокусе) и дать основную картину :)

 
 
 
 Re: Трассировка лучей "в среднем" [машинная графика]
Сообщение15.07.2018, 10:44 
Аватара пользователя
Этим шансом придётся пожертвовать.

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group