I try to transfer my UI design workflow into Blender and I have one major blocker.

In UI design we overuse the ability to group object and modify/animate the properties of this group like scale/position/rotation and alpha (or opacity).

The only way I found to do this is for opacity is to make controller that control the child individually and that really not the result I need. I need to control the opacity of the group as it's a single object.

Is there a way to do that without going into complex, time consuming and not easily iterative process of a compositing phase ?

enter image description here

  • $\begingroup$ I did not understand fully. Maybe others will. Suggestion please rewrite. $\endgroup$ – atomicbezierslinger Dec 3 '20 at 8:32
  • $\begingroup$ Best Guess. Blender can store values and share them. Alpha is just another value. Please search Python Drivers and Functions. $\endgroup$ – atomicbezierslinger Dec 3 '20 at 8:33
  • $\begingroup$ How is controlled the individual transparency in your setting? $\endgroup$ – lemon Dec 3 '20 at 8:35
  • $\begingroup$ in the exemple of the right, it's the alpha value of the shader and set in alpha blend mode $\endgroup$ – srinterface Dec 3 '20 at 8:43
  • $\begingroup$ @atomicbezierslinger if i do that, i have the result of the right in my exemple not the good one, that my problem :) $\endgroup$ – srinterface Dec 3 '20 at 8:48

For Cycles, we can use "Transparent depth" and test if it is 1 or more and use it to drive the alpha value.

The disk below is a non transparent sphere behind the planes.

enter image description here

Less than means 1 if no transparency depth else 0.

Multiply that with your wanted alpha value and plug it to the alpha channel of the shader.

If you're using objects that have several layers (for instance replace the planes by Suzanne(s)), don't forget to tune the light path max bounces for transparency in the rendering settings (as if not, some transparent part may be rendered as solid):

enter image description here

  • $\begingroup$ Very smart way to do the example! But not very usabale in my context. The idea is to do as in Photoshop for example where 3 layers are in a group, each of the layers can manage its own alpha and in addition we can manage the alpha of the group itself. And of course having several groups in the scene and groups within groups. It's really the idea of having the same operating mode as a 2D software, and at the end the only real blocker that I find is this group management. $\endgroup$ – srinterface Dec 4 '20 at 7:58
  • $\begingroup$ afaik, there is no kind of "shader override" to do that in Blender. $\endgroup$ – lemon Dec 4 '20 at 8:04

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.