[Bf-committers] Node groups interface patch ready for testing

Lukas Tönne lukas.toenne at googlemail.com
Sun Jan 29 13:34:07 CET 2012


This patch implements one of the main features described in my recent
code.blender.org blogpost [1]

It replaces the current lists of sockets on either side of the group
editing window by internal "proxy nodes". This avoids long node
connections from the sides of a node group and gives more freedom in
node group layout. It provides a place to edit all the details of a
node group interface socket. It also simplifies code by removing the
need to take additional socket lists into account and making node
links more consistent. In the future the proxy nodes could be used for
creating external interfaces for regular (non-group) node trees as
well (see last blog post section).

User wiki documentation can be found here [2]. (I noticed there is
currently no wiki docs section on general node editing features,
beside specifics for shader/compositor nodes. Would be a good idea to
make one and integrate this info there.)

For review there is a new issue on codereview.appspot.com [3]. Note
that this version of the patch does not include changes to
startup.blend, which means the proxy node theme color will be black by
default!
A full version of the patch including startup.blend.c changes can be
found here [4] (2.2 MB)

This patch version is primarily for testing and initial code review.
If the design is accepted and no showstoppers are found it could be
considered for trunk merge in next BCon1.


TODO:

* Forward compatibility is not working yet. Loading newer files in
previous Blender versions should not crash, but all exposed sockets
are lost (proxy nodes just get removed due to missing type). It will
hopefully be forward compatible too, but needs some more work and
testing.

* The term "proxy nodes" may not be a good choice since it can be
mixed up with proxy objects. However, imho these areas are separate
enough and the node type name is really just used internally (the term
node "group" is even more confusing in combination with
object/vertex/etc. groups). Open for discussion.

* Some Python API changes for group nodes. Even though i think group
nodes are still rarely used in scripting, this must be communicated
clearly before possible trunk merge.

* Tile branch will need an update too, will provide that as additional patch.

* Alternative way of reordering group sockets: Drag&drop in the
interface lists. Works fine with buttons, so really optional for
later.


[1]
http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/

[2]
http://wiki.blender.org/index.php/User:Phonybone/NodeTreeInterface

[3]
http://codereview.appspot.com/5593050/

[4]
http://dl.dropbox.com/u/18763916/NodeGroupInterface/node_group_interface1_full.diff


More information about the Bf-committers mailing list