I am looking to render Saturn and its rings. The sun illuminates the diffuse material of the rings on their sunlit side but their backlit side needs to have an emissive shader. However the rings must be unilluminated on either side where shadowed by Saturn itself.

Thus, in the material nodes for Cycles, I need a way to separate light rays into three categories:

  • Direct illumination: light rays directly hitting the diffuse sunlit side
  • Self-shadowed: light rays directly blocked by the sunlit side of the rings themselves
  • Externally-shadowed: light rays that never touch the rings because they are shadowed by the planet

This is similar to the "Is Shadow Ray" output from the Light Path node, except that covers both the self-shadowed and externally-shadowed cases together. I am looking for a way to split that up.

  • $\begingroup$ Do your rings have thickness? $\endgroup$ – Robin Betts Jun 17 '19 at 13:57
  • $\begingroup$ @RobinBetts No, they are just a plane. $\endgroup$ – Keavon Jun 17 '19 at 15:32
  • 1
    $\begingroup$ In reality the rings do not emit any light, they are a bunch of particles floating in orbit. If you are using just a solid opaque ring it will occlude all light, but you could use a translucent shader, or better still a mix of transparent and difuse controlled by some noise texture. $\endgroup$ – user1853 Jun 17 '19 at 17:32
  • $\begingroup$ If it's one plane, The dark side of the ring is not occluded by the light side, as far as the ray-tracer is concerned, is it? The ray makes one hit and moves on.. the reason it's dark is simply because of its angle to the incident light? $\endgroup$ – Robin Betts Jun 17 '19 at 17:56

Your Answer

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

Browse other questions tagged or ask your own question.