a345c4597eec291476a70ea34ff636cce5f241a0
This patch refactors how values of unlinked sockets are provided to nodes. Previously, the GPU node stack values were initialized at construction time and linked by the node's compile methods. This meant that we needed to handle implicit conversion if the socket is linked to an unlinked node group input. Alternatively, we now insert a GPU setter node for each unlinked socket that carries the value and type of the origin socket, and let the GPU code generator do implicit conversion at the shader level. This has three advantages: - It makes it easier to add new types since we no longer have to handle those types in shader node code and it reduces code duplication. - It makes the code more inline with how we implement multi-function procedures. So refactoring is easier. - It opens the door to implement things like implicit inputs, which will be needed later for things like texture nodes.
…
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%
