Make camera see only object emission, while world receives only object reflections?

What’s the best way to make an object which reflects light onto other objects, but not into the camera, while also being able to emit light which is however only visible to the camera?

I.e.:
light from object seen by camera = emission only
light from object received by other objects = reflections only (casts shadows)

I have played around with the Ray visibility settings of the object, but can’t seem to find a constellation which does what I want.

The only way I am able to get it working is to duplicate the object in place and have one object have the emissions and the other a material with reflective properties, then have only the former be visible to the camera. This would get quite complicated if I were to use this technique for animated things. Is there another way to do it?

This is what it looks like (this cube hovers slightly above the ground, allowing for bounces between the ground and its underside to make its way into its shadow):

My idea in developing this technique is to fully pin color and value of stylized characters while still having them affect environment light in an authentic fashion. (Yeah, emission is a bit extreme in the example above)

Hi, @Zyl! I think you are almost there! If I’m reading it right, you want all pixels of the object when seen by the camera to look one way (an emission shader in your example), and appear another way in the scene, right? I imagine you could achieve this with two shader nodes, a Mix shader node and a Light Path node. This is how I imagine it:
You have your two Emission shaders (they don’t have to be Emission shaders, I think it should work with any type). You have them connected as inputs to your Mix shader, and you use the Is Camera Ray output of the Light Path node as the Factor input of the Mix shader.

That way, everything on that object hitting the camera looks like one shader, and it affects the environment as if it is shaded with the other shader.

Let me know if you’d like a better explanation or pictures! I’ve dropped a link to the Light Path node page in the manual for your reading pleasure!

https://docs.blender.org/manual/en/latest/render/shader_nodes/input/light_path.html?#outputs

That works perfectly. It does exactly the same. Thanks!

1 Like