Rendering refractive surfaces in arnold with the default shader can be really frustrating, render times can go up really fast and depending on your scene a lot of noise is introduced which is hard to clean even in high quality settings. The jf_nested_dielectric arnold shader is the perfect solution for refractive surfaces, in this post I am going to share a few tips about this shader.
In this scene I have a bottle that has some thickness, and the inner surface (liquid) that should overlap the outer surface. For the lighting I am just using a SkyDomeLight with an hdri.
The first setting you find in this shader is Medium priority. So I have 2 shaders, one green glass for the bottle and an orange-ish for the liquid. In the image above you can see how the medium priority setting is affecting the look. With both shaders set to 0 the render looks like we don’t have enough refraction rays, but that’s not the problem. You will have to set one of the shaders to be 1 and other to 0, in this case setting the bottle shader to 1 and liquid to 0 will “show more” the liquid through the glass.
You also have to set Medium IOR, which as you know is the refraction index, simple enough.
The next setting is Transmission. If you used vray before this is similar to the fog settings in the VrayMtl. You set a color in the medium transmittance color and in the scale factor you adjust how “thick” is the surface. This setting is also dependent on scene scale.
Then you have refraction roughness and specular roughness which is something common in any shader. For the liquid material I used refraction roughness to give it a “thicker” look.
By default the jf_nest_dielectric shader doesn’t refract Skydome Lights, depending on your lighting/scene setup you might need to turn this setting on, you can clearly see the affect of this setting in the image above.
Don’t forget to set enough refraction rays in the render settings. You also get AOV’s for this particular shader.
I was not able to render refractive particles for the water drops, so I had to convert them to polygons and play with the output mesh settings. This was also usefull to give a more random look to the waterdrops since particles render as perfect spheres.
You still have a lot of settings to explore in this shader, I just wanted to share what I have used so far, let me know if you find this useful and please leave a comment if you have any suggestions or questions. Thank you.