3
$\begingroup$

I want to make an Object which cant be seen on Reflective Surfaces, for example: Metal. I want to make it so that if I Place the Object over a Reflective Material, it should not be seen on there. How can i make it so the Surface doesn't Reflect my Object?

Thanks in Advance!

$\endgroup$
3
  • 1
    $\begingroup$ you could deactivate Glossy option or in the Properties panel > Object > Cycle Settings, but it won't be reflected by any object, I don't know if you can make it reflected by some objects only $\endgroup$
    – moonboots
    Jun 14 '19 at 15:54
  • $\begingroup$ If you're rendering in Blender-Render, select the object, go to it's Material properties at right, open the Options tab and untick "Traceable". (or vers 2.8 equiv) $\endgroup$
    – Edgel3D
    Jun 15 '19 at 4:44
  • $\begingroup$ You got to add your render engine to the tags, please. $\endgroup$
    – Leander
    Jul 15 '19 at 7:00
6
+50
$\begingroup$

You can do this with the Light Path Shader Node.

EDIT: Do note that I what I posted works with the default settings in cycles, but EVEE reflections behave differently so it might not be the exact same.

FOR CYCLES:

Here is a basic shader setup that prevents reflective surfaces from seeing your object. In fact it prevents it from casting any reflected light at all.

You can turn this

Reflecty Ball

Into this

Non reflecty ball

By using this Shader setup Involving the afformentioned Light Path Node.

enter image description here

You can read more about the Light Path Node here but the value you are interested in is the "Is Reflection" value.

Long story short, things that have light reaching you only as a result of reflection from other objects (in this case the underside of the ball) are flagged as "reflection" rays by this light path.

For reference:

This shader setup works by using the mix and transparent shader nodes, driven by the light path. If a ray is a reflected light path, it has a value of 1 being put into the FAC value of the mix shader. This makes the mix shader choose 100% of the SECOND input shader.

Non reflected light gets classified with a 0 in FAC therefore it only chooses 100% of the FIRST input of the mix shader

You can use this effect to for example, make reflections semi transparent if you replaced the second node with a translucent shader instead of a transparent one or you can put a complicated node graph to use in place of the reflection while leaving the original directly viewed object as its normal shader.

This is especially interesting if you plan to do NPR (Non photo real) renders etc.

$\endgroup$
4
$\begingroup$

Just uncheck the Glossy ray visibility mark in Cycles settings for that object:

enter image description here

This turns the object into vampire and won't be reflected from any glossy surfaces.

$\endgroup$
1
$\begingroup$

Considering that the object can have shadow or be emissive, we would possibly want to avoid this (which shows shadows on the mirror and cuts the emissive on the cube outside of the mirror):

enter image description here

This setting intercepts all these effects so that it is totally invisible from the glossy plane above, but all its properties stay visible outside of the glossy plane:

enter image description here

The node setting is set so:

If the ray depth is more than one (for reflective light and shadow) but not if this is a diffuse (we want the object still emit or cast shadow in non reflective space), or if this is a reflection, then we set to transparency.

$\endgroup$
0
$\begingroup$

If you're looking for more precise control, you can place transparent planes in front of glossy surfaces and use nodes to turn them into makeshift masks.

To do so, simply use the Transparent Depth output of the Light Path node in the object that is being reflected. Then, based on how many times the glossy ray has gone through a transparent plane, we can make adjustments to the shaders accordingly, either making the object disappear (as Spancs requested above), or many other possibilities.

In the below instance, we have no transparent planes in front of the left-hand mirror, one transparent plane in front of the middle mirror, and two transparent planes in front of the right-hand mirror... and use the Greater Than operation to adjust the object's shader accordingly:

Viewport Shading: Rendered

Viewport Shading: Wireframe

Node Editor

$\endgroup$

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.