2015-01-27 2 views
4

Как я понимаю, трассировка лучей, используемая в компьютерной графике, - «геометрическая оптика», и волновые явления не учитываются.Выполняет ли трассировка лучей эффекты дифракции/интерференции/дисперсии?

Есть ли способ включить его в любом случае эффективным способом или есть известные трюки для подделки этих понятий в алгоритм трассировки лучей? Мой интуитивный ответ не будет; волновое оптическое моделирование недостаточно быстро для целей компьютерных гафиков.

крошечное обновление: Существуют ли алгоритмы/реализации алгоритмов трассировки графики, которые могут имитировать белый свет, рассеивающий на/через призму?

+0

Я согласен, но могу себе представить, что использование лучевого трассировщика в пространстве Voxel может сделать трюк, но размер Voxel будет минимально малым, а требования к памяти огромны ... поэтому можно использовать только для небольших пространств ... Другая возможность - вычислить помехи только после попадания поверхности на основе длины луча .... но это не будет имитировать все эффекты ... – Spektre

ответ

6

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

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

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

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

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

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

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

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

Смежные вопросы