e3e7bd670a5ecacc2b062cccd09492e0df63a157
#140856 added support for output visibility inferencing. Internally, it relied on checking whether the output value of a group is a constant fallback value, while on the user level this is mainly controlled with the new `Enable Output` node. While it works, there are some unexpected behaviors when the user happens to output the fallback value without expecting the socket to be hidden. Additionally, this approach required the output value to be inferenced, which may trigger more evaluation than we'd want. This patch better aligns the internal behavior with the user-expected behavior. This is achieved by not relying on any specific fallback values. Instead, for each output socket it does an explicit check for whether it is connected to an Enable Output node. Then the Enable input of that node is computed and the output visibility is derived from that directly. This is still fully composable with nested node groups etc. It also allows extending this check in the future to e.g. automatically disable certain anonymous attribute outputs when the corresponding output geometry is unused. Note, since only changes in menu sockets are allowed to change visibility by convention, this also applies here. Same as before. The main design on the user-level with the Enable Output node is still exactly the same as before. Pull Request: https://projects.blender.org/blender/blender/pulls/146918
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
