Opacity Fade in GPU Mode

Noticed some peculiar behavior while working on a fading animation in GPU mode. When fading from 100% to 0% opacity, the final frames have artifacts. For example, this image has a lighter object faded out to 0% opacity, but it’s still influencing the darker object behind:

gpu_mode_fade_artifacts

I ran a few tests, and it seems like this behavior may be limited to GPU mode. I tried the animation fade, using a color gradient to drive a fade, and hiding the “front” object as a control. The issue is apparent in the “GPU fade animation image”:






Using a Color Gradient Node didn’t seem to yield the same bug:



When rendering the animation, you can see the artifacts as well:

GPU:

CPU:

All of these are done with basic plastic materials in the Default HDRI in Product Lighting mode, and I can upload the BIP if needed.

2 Likes

I’ve reported this bug as well, it’s not a new one and I hope it gets fixed soon. It seems the GPU doesn’t understand ‘0’ opacity since it will still impact surroundings.

Same happens with area lights which are always casting a shadow, and I can imagine it has to do with the same habits. Think I once got a ‘technical limitation’ as response, doesn’t matter, fix that limitation. It’s especially annoying in animations where you sometimes realise a bit late certain frames are messed up because of this behaviour.

Don’t have an answer, just want to give props for some 100% proper troubleshooting. That sort of thing really helps the devs know that this is actully an issue, not just a “missed a tickbox” sort of thing.

3 Likes

Thanks Matt!

@oscar.rottink Haven’t run into the area light one yet - is it the geometry of the area light that is casting a shadow?

Coming back with fresh eyes over the weekend, it seems like the issue didn’t appear when using the material graph to control the opacity, just the “Fade” model/part animation from the wizard. I plugged in a Curve Fade into the opacity and was able to get a result in GPU that was consistent with what CPU was showing:


Seems like this issue can be sidestepped on a per-material basis, but the original bug will still cause issues for hiding and showing groups of objects with different materials. I suppose you could copy and paste a linked Curve Fade animation into every part, but that’s not a real solution for complex assemblies.

1 Like

@calvin.henderson, yes, I used a array/pattern of area lights to lit a huge warehouse the easy way but they cast shadows at the ceiling while having the shadow box unchecked.

I wonder if your workaround also works with a scene I had issues with. It was not even an animated scene instead of actually removing items I gave them a 0 opacity. They still impacted some other objects though like a VDB I think it was. Don’t think I even used a fade but just put black in the opacity of a material.

After I finished a current video thing I’ll try to find the old scene, curious if your way would work. Just not sure which scene it was but I did a report back than. I’ll let you know.