0
$\begingroup$

I want to have a reflective floor, but have it not reflect rays coming from a light. Using Blender 2.90, Cycles. I want the light to create glossy reflections on the other objects in the scene, so I don't want the usual solution of Light > Visibility > Ray Visibility > Glossy off.

Is there any way to get the effect I'm after? Maybe by using the Light Path node somehow?

cyc

$\endgroup$
  • $\begingroup$ try turning of ray visiblity for the light source $\endgroup$ – SHikha Mittal Sep 18 '20 at 1:43
  • $\begingroup$ Thanks, but if I do that then the highlights disappear from the main objects. $\endgroup$ – GaryO Sep 18 '20 at 11:31
  • $\begingroup$ then you can try moving it back , out of the frame ,and compensate by increasing the strength a little $\endgroup$ – SHikha Mittal Sep 18 '20 at 11:34
1
$\begingroup$

It seems that this is ultimately the problem of inhibiting the creation of shadow rays from camera rays incident on the floor. Therefore, we can detect them by looking for rays with a 'Ray Depth' equal to 1. Since we only care about rays coming from the floor, we can use a separate object positioned above it to act as a filter.

Ideally, this would be it: use a mix shader to permit everything but shadow rays with depth equal to 1 from passing through. Unfortunately, it seems that the glossy shader labels some of its shadow rays as glossy, so until this is fixed you have to work around it by selectively making parts of the floor purely diffusive.

Using the naive solution:

Filter Ideal solution

Workaround:

Floor Workaround

Example using a somewhat smooth, metallic 'Principled BSDF' in place of 'Glossy BSDF'.

Example using Principled BSDF

$\endgroup$
  • $\begingroup$ I finally got around to trying this with the filter (naive) solution. Didn't work at all for me; I'm sure it's some difference in my scene. What's the secret to debugging this kind of thing? Is there any way to visualize or log ray types? Or is it just try things & see what works? $\endgroup$ – GaryO Dec 29 '20 at 20:10

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.