JF Nested Dielectric

JF Nested Dielectric is released as a Psyop open source initiative! It’s a shader for Solid Angle’s Arnold Renderer. It has one purpose – efficient, physically-plausible rendering of nested dielectric surfaces in production. Licensing info, source, and DCC helper files are available in the Git Repo linked below.

In large part, this is an implementation of the 2002 paper: Simple Nested Dielectrics in Ray-traced Images by Charles M. Schmidt and Brian Budge

It’s also capable of capable of spectral dispersion, direct refraction of light sources, production-feasible ray traced blurry caustics. It also has a few different optimization techniques built in to improve render times, including Russian Roulette and energy tracking and clamping throughout the ray tree.
Visualized by my ICE ray tracer

Visualization of ray-tracing dielectric media

JF Nested Dielectric is Copyright (c) 2014, Psyop Media Company, LLC and Jonah Friedman

Update: I have released a video of a unreleased photon mapper for JF Nested Dielectric, JF Photon. This was unfortunately never finished into a product suitable for artists, but code is available on Github.

16 thoughts on “JF Nested Dielectric

  1. Hey I’m still new to Arnold, but I’ve noticed that this shader has a good deal of noise in the Refraction passes that I can’t seem to shake off. Is there a different method of treating this shader to achieve cleaner results? Thanks.

  2. Hi Jonah,

    I did sow test renders and the shader looks great, many features. The only thing that gives me a headache (because i tried a lot of things) that i get a lot of noise in my render. For example, i have a object where i put particles on and converted them to a mash. In the droplets is a lot of noise. When i render out passes the noise is in the refractive pass. In the render settings i set refractive to a higher nummer but makes nog difference. Should be so nice of you could help me to get a clean render.

    Kind regards,

  3. Hey. Thanks for the nested dielectrics shader. Amazing! I was hoping you could answer me a simple question about it. I’m using C4D and rendering a glass bottle, it seems like at real world 1 to 1 scale that transmittance does some odd things and can’t colour the bottle the way I want. Its either really dark or really pale with no in-between. Should I be working to a larger scale? I’m usually a vray user and changing scale is a no no but seems like the only way here. Hope you get time to respond, but thanks anyway.

    • Hi Howard,

      There’s a scale control on transmittance. The idea is- scale everything up 10x, you should put the value 10 in there, and it’ll look like the 1x scale with 1. So a higher number in scale makes the medium pass more light though.

      Another thing to make sure- don’t use a fully saturated color in there. If you use a color like 1.0, 0.25, 0.25, because red is 1.0, no red light is ever lost. So the other two values can become really tiny over distance, and it’ll feel like whatever you do, the liquid stays bright red.

    • Hello! I’m having some issues installing the shader for c4dtoa in OSX.. how did you installed it? are you using windows or OSX?? thanks!!

  4. Hi. Thanks for sharing such a wonderful shader. I’m Motiongraphic Designer working in Seoul, Korea. I’m currently working on a project to use JF Nedsted Dielectric. The problem is this. When I use Maya&Arnold basic light(Area, Directional, Physical Sunlight), The shader works fine. But If I use HDR images for realistic lighting, I can’t remove noises or fireflies from everywhere. Refraction, indirect specular and indirect diffuse passes has a lot of noise. Do you have any idea to solve this problem? Especially when you using HDR images.

    • Hi Doseok,

      Thank you! About the fireflies, seeing pictures would help but I have a pretty good guess anyway. I’d say they’re probably all related to direct refraction, which is refraction of direct light sources. The fireflies they cast everywhere else are because of direct refraction caustics (which can be turned off under caustics).

      For the fireflies in the glass itself, I would try increasing the roughness of the direct refraction, or use the controls to increase its roughness with depth.

      Also, please send pictures :)

      • Thanks Jonah
        Could I get your email address? So that I can ask about the shader and send you some pictures which I testing.

  5. Hi Jonah,
    Fantastic shader! Thank you so very much for making it available.

    I’m having difficulty making the specular roughness values (U or V) do anything. Anything above 0 just seems to turn the specular off, and mapping a texture with any grey values doesn’t seem to register at all. Am I missing something? (I am using osx)

    Thanks again!

  6. Jonah,

    First, I want to thank you for sharing this shader. It is amazing and it has not only made my work better but it has given me a much better understanding of light and refraction. Thank you.

    Second, I just downloaded the latest version of Arnold 2.0 C4dtoA and noticed that your shader doesn’t work with it, yet. I would rather have your shader than the new Arnold, but both would be great. So for the time being, I’ve reverted back to an older version of Arnold and I’m curious if you have plans to upgrade so that it will be compatible. Thanks.

  7. Oh no! the wonderful JF Nested Dielectric doesn’t show up anymore with the latest Arnold build. Any chance of an update happening? Thanks for this amazing shader!

Leave a Reply

Your email address will not be published. Required fields are marked *