Iray Programmer's Manual

Refractive objects and IOR handling

Modeling Complex Refractive Objects

When building scenes with multiple refractive objects in it, a common way to deal with hierarchical volumes (that feature a varying index of refraction (IOR)) is to specify separate materials for the inside and outside of an object to provide a necessary hint to the rendering implementation about the order of the IORs. Another common trick to guide the rendering is to leave a small gap of "air" between the volumes to avoid numerical precision issues. In Iray Photoreal, these workarounds are not needed. It will handle all IOR stacking automatically and does not need to care about explicit surface orientation or precision.

Still, there can be different approaches on how to represent hierarchical refractive volumes. As an example, there are different ways to model a glass full of water. First of all we will assume that the glass itself will be modeled double-sided (solid), as this provides the most realistic look by definition. As for the water volume inside the glass, there are now three possibilities: Matching the boundary geometry of the inner glass layer exactly with the water volume geometry, or leaving a small gap of "air" inbetween the two volumes, or making the water volume slightly overlap the glass volume.

While Iray Photoreal can handle all three cases automatically, the most realistic rendering can only be guaranteed by providing slightly overlapping volumes, due to the inherent limited numerical precision of the simulation process. The overlapping volumes will be detected and the simulation will handle the refraction calculations as if the volumes would perfectly align.

More simplistic cases, like for example ice cubes or bubbles floating inside the glass of water, do not need special care at all, and can simply be modeled straight forward (i.e. placed completely inside the other refracting object volume).