3
$\begingroup$

I want to make a mirror surface that is invisible, but still shows reflections. I found this nearly identical question but the only answer didn't work for me. It works great normally, but when I set the film to be transparent, the reflections disappear along with it: The weird thing is that it looks fine in the 3D view:

My materials set up is exactly the same as in the question I linked above, with a transparent and glossy shader added together:

So is it possible to have both a transparent background and a transparent reflective surface in cycles at the same time? Should I work around it with some compositing?

$\endgroup$
  • 1
    $\begingroup$ Check your rendering settings and your output image format. Make sure it's PNG with an alpha channel. $\endgroup$ – Jaroslav Jerryno Novotny Dec 7 '15 at 18:44
  • 1
    $\begingroup$ Related: blender.stackexchange.com/questions/36681/… $\endgroup$ – Carlo Dec 7 '15 at 18:50
  • 1
    $\begingroup$ Can confirm: it's a PNG with an alpha channel. Something else that might be worth mentioning is that when it's in the process of rendering a tile that has a bit of reflection, the reflection will show up, but it disappears by the time it finishes rendering the tile. $\endgroup$ – Burritosaur Dec 7 '15 at 18:51
  • 1
    $\begingroup$ This is a known bug: blender.stackexchange.com/q/32900/599 $\endgroup$ – gandalf3 Dec 7 '15 at 19:19
  • 1
    $\begingroup$ @Burritosaur it would be helpful for other users who have the same question if you wrote an answer detailing how you worked out the issue and shared your "Fancy node setups" $\endgroup$ – cegaton Dec 10 '15 at 17:11
1
$\begingroup$

In the end, I went with compositing an opaque background image underneath the transparent layer and that worked alright, but before that I used this node setup to set the alpha value based on the value of each pixel.

The Subtract node is used as a minimum threshhold. You might have to tweak that depending on your setup.

The first Multiply is just a messy way to get a definite 1 or 0 on whether or not the pixel should be visible or not.

The second Multiply is used to set the final alpha value for the partially transparent pixels.

The Add node at the end is just to make sure that no previously-opaque pixels become transparent.

In my case it ended up looking like this:

$\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.