appleseed Users Forum

Alpha is zero but object still casts shadow [Solved]

in the alpha/12 scene,when the alpha of transparent_orange is zero, there is still shadows! I think this is strange

In this scene (it’s actually alpha/14), the sphere is assigned a surface shader that is fully transparent.

Surface shaders are only involved when shading pixels covered by objects, they are not taken into consideration during light transport. That’s the reason why, from a light transport point of view, there is a sphere without any BSDF (hence, opaque) in the middle of the room.

OK, got it .So If I want to remove the shadow , I must remove the sphere object, right?

There are multiple ways to remove the shadow without removing the sphere:

  1. You can assign a zero alpha value to the material of the sphere (not the surface shader).

  2. You can use visibility flags (in the object instance) to make the sphere invisible to shadow rays but visible to camera rays:

    <parameters name="visibility">
        <parameter name="shadow" value="false" />

    Check the test scenes in visibility flags/ for other examples. There are additional details in appleseed 1.1.0-beta release notes.

I make the following operations as your first method said :

  1. As before ,set “alpha” of color"transparent_orange" to zero, this make the sphere disappears but shadow still there:

2.Only change the Alpha Map" of “sphere_material” to 0 will make the shadow disappear:

And change the “Alpha Multiplier” of “pass_through_shader” will change nothing.

Now I understand your light transport clearly. Thanks

The important thing to keep in mind is that, in appleseed, surface shader, environment shader, etc. are related to shading pixels and are not involved in light transport, shadow computation, etc.