Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does ray tracing do diffraction/interference/dispersion effects?

As I understand it, ray tracing as used in computer graphics is "geometrical optics" and no wave phenomena are taken into account.

Is there a way to include it anyway in an efficient way, or are there known tricks to fake these concepts into a ray tracing algorithm? My intuitive answer would be no; wave optical simulations are not fast enough for computer gaphics purposes.

tiny update: Are there computer graphics ray tracing algorithms/implementations that can simulate white light dispersing on/through a prism?

like image 450
rubenvb Avatar asked Feb 11 '23 01:02

rubenvb


1 Answers

I've never seen a graphics rendering software package that used anything other than Geometrical Optics for scene illumination, and I guess it's mainly because you don't visually witness many of the wave effects most of the time so GO is good enough.

Some renderers use at least Physical Optics at the gathering step (when computing light returning to an observer) to account for certain phenomena but no creeping wave effects or interference there.

However there certainly are lots of computational electromagnetics software packages out there that use other models accounting for such effects, and specialized software for photonics where wave effects are really important.

Some of those software use algorithms based on Geometrical Optics that are not too far from the classical raytracing approach (adaptative beam tracing with beam subdivision based on scene geometry, shooting and bouncing rays, ...). Some software even take advantage of the parallel processing power of GPUs.

However such algorithms are generally really specialized for one kind of problem and don't scale well for whatever wave lengths or scene sizes because they have to take the boldest simplification hypotheses possible for a given class of problems to make computations fast.

I worked on one algorithm that used raytracing and took interferences into account (among other things) to simulate RADARs used in automotive applications at interactive-ish speeds, but it could not be used for simulating anything else. There are also some proposal for taking diffraction and creeping wave effects into account with raytracing.

It's really a matter of knowing what you want to simulate and what are the features of the output you are interested in, then trade of performance and realism. The only realtime electromagnetics simulator that can take all wave effects into account at every wave length for all scene sizes that I can think of is the real world. ;-)

Also don't forget that a lot of computer graphics techniques come from computational electromagnetics. There are lots of academic resources in this field regarding wave effects that are generally overlooked in CG, along with technical solutions to take those effects into account.

like image 152
Shadocko Avatar answered May 16 '23 06:05

Shadocko