20
$\begingroup$

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?

$\endgroup$
19
$\begingroup$

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.

$\endgroup$
  • 1
    $\begingroup$ +1 Interesting. Thanks. Do you have any idea when dispersion is coming out? $\endgroup$ – Daniel Pendergast May 22 '13 at 23:08
  • $\begingroup$ unfortunately not really. $\endgroup$ – Mike Pan May 23 '13 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 Jun 21 '13 at 0:28
5
$\begingroup$

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.

$\endgroup$
  • 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 May 30 '13 at 19:21
  • 5
    $\begingroup$ interference and polarization would really be cool.. :D $\endgroup$ – gandalf3 Jun 21 '13 at 0:26
  • $\begingroup$ Is there a way to fake polarisation? I guess you could use normal and camera rays? $\endgroup$ – 3pointedit Jul 2 '16 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$ – Reinstate Monica - ζ-- Jul 2 '16 at 16:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.