Transparency Bounces

Hello everyone,

I have tried to find my doubt everywhere and I haven’t find anything, so I have decided to post my doubt here. I hope someone can help me :slight_smile:

I have an scene with 5 cubes one inside the other. All the cubes have a Transparent BSDF shader in the material, and the biggest cube has a texture applied to the shader. As It can be seen from the images, the area of the last cube appears black in the rendering because the maximum transparency bounces is set to 8 (default).

My doubt is:

In the render it can be seen that all the area of the last cube (the smallest one) appears in black, but, from what I understand from blender wiki ( in Transparency) that should not happen. What should happen is that all the faces before the maximum number of bounces should contribute to the pixel color, except the ones above the maximum. So, I should be able to see in the black area of the last cube the texture from the first cube.

Is this a bug? Exist a fix for this? Is it made intentional to be diferent as wiki specifies?

Of corse I know that if I increase the maximun number of bounces I would not have the problem, but the thing is that I want to control the maximum bounces in other works (the cubes are just an example) where there are a lot of faces overlapped and I am just interested in rendering a specific number of them.

I am not sure about if I have been enough clear with this. Tell me somehing if you don’t understand me.

Thank you!

I did a quick recreation and it works the way you would think (and is documented), with the inner cube having no influence, but the outer cubes are visible. Post your test blend.

#2 Here is the .blend

I am working with Blender 2.69 (last version).

Thank you

test.blend (546 KB)

Ok, I see, I was mixing diffuse with transparent with a texture on the outer cube in my test.

My understanding is that a transparent ray will not change direction or ray type at all, and if it is unable to reach a light source within the maximum number of bounces it terminates and contributes nothing.

I’m still a little hazy on how exactly color transparency works, though. It seems like it should contribute some, although if no light source is found perhaps it is essentially being multiplied by 0.

I looked at the wiki and there seems to be no contradiction between what the wiki says and what happens and what you are getting. As B says above the light ray has to find a light source within the number of bounces or it has nothing to work with, because all the information on color and intensity gathered on each bounce is used to multiply the intensity and color of the light source.

Your proposed setup can never work in any pathtracer - the best it could do is go to background transparency after a set number of bounces, instead of black, for which you will need to use a lightpath node and divert to holdout. Then in post render you could just fill in the transparent areas with the desired texture.

A mix of these might be a workable cheat - rather than going to holdout you could go to a diffuse material or even use the number of bounces to control the mix of diffuse and transparency in the material.

Thank you for your answers and your advices and possible solutions (I will try them :)), but there is something I am not able to understand…

If the problem with the black area is due to the camera rays not finding a light source, why the other cubes are seen if in this areas the rays also don’t arrive to a light source?

I am sorry to double post but I have tried to create the solutions proposed by DruBan and I am having problems. The main problem consist in that the lightpath node that uses cycles seems to consider that a material with Transparency BSDF doesn’t has bounces (extrange because in the lighpath section of the wiki says that it has bounces but in a different way), so the lighpath node it’s not usefull in this case. An option could be using Glass BSDF (lightpad node counts bounces in that case), but the problem is that my object has a lot of faces and overlapping parts creating black areas in some parts of the object when it’s rendered.

Any idea?

Hi Shuken, You’re right the problem was a little more involved because the transparency bounces don’t seem to be counted so ray depth was a no go making things beaucoup harder. Try this following which should give something of the result you want. Vary the circled values to see changes. Remember that one of the thins about transparency is that it adds up so fast that you think it’s stopped bouncing when actually it’s just added up to full black. For many layers even a little bit of density will do it.

It will work without the geometry node and the extra add node but IMO it’s a little nicer looking this way.