You know how raytracers pretty much just trace geometrical rays? I was wondering if Cycles has any wave optic features, where it would act as an actual electro-magnetic wave. Some really useful features would be diffraction, Interference, and polarization. Is there a method to getting/tricking Cycles into working this way?


2 Answers 2


I don't believe Cycles simulates light as waves. But Dispersion (Diffraction) effects are on the way, and can already be 'faked' in many ways.

If you are interested in optics experiment with cycles, take a look at the pinhole camera and shaped bokeh.

  • 1
    $\begingroup$ +1 Interesting. Thanks. Do you have any idea when dispersion is coming out? $\endgroup$
    – Daniel
    Commented May 22, 2013 at 23:08
  • $\begingroup$ unfortunately not really. $\endgroup$
    – Mike Pan
    Commented May 23, 2013 at 16:13
  • 1
    $\begingroup$ I have been trying for so long to get nice iridescent materials.. can't wait for dispersion and diffraction (+ absorption, opalescence and all the rest too, why not? ;) ) $\endgroup$
    – gandalf3
    Commented Jun 21, 2013 at 0:28

As Cycles is a RGB-based raytracer, not a spectral raytracer, it's based on single paths for all colors(with the colors changing at every bounce/transmit). Therefore, dispersion cannot be simulated directly.

You can fake it, though, by separating shaders by color and mixing them, though this would often require changes to the entire scene. It can be done, though, by mixing a red refraction/glass, a blue refraction/glass, and a white refraction/glass at the necessary IORs. One can also do a small amount of reflection for the coating seen on some glasses or lenses.

  • 2
    $\begingroup$ Strictly speaking Cycles wouldn't need to be a spectral renderer to support dispersion, it can be fit in without that. At the same time spectral renderers usually do not support effects such as interference and polarization, I've only seen that in research code, not in any production renderer. $\endgroup$
    – brecht
    Commented May 30, 2013 at 19:21
  • 5
    $\begingroup$ interference and polarization would really be cool.. :D $\endgroup$
    – gandalf3
    Commented Jun 21, 2013 at 0:26
  • $\begingroup$ Is there a way to fake polarisation? I guess you could use normal and camera rays? $\endgroup$
    – 3pointedit
    Commented Jul 2, 2016 at 7:55
  • 2
    $\begingroup$ @3pointedit You could possibly use two render layers, each of which renders the contribution of each of two orthogonal polarizations, and then finally combine them. $\endgroup$
    – nanofarad
    Commented Jul 2, 2016 at 16:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .