[Bf-committers] Meeting minutes - nodal logic proposal

Charles Wardlaw cwardlaw at marchentertainment.com
Fri Nov 6 14:06:52 CET 2009


>
> It's not
> a new subject, many Nodal programmation systems exist already. I've
> tried to extract the essense of these systems and with the help of the
> robotics experts at the KUL who have already implemented node systems
> like that, I came up with this design.

Well, I like what I see. ^_^ I'm sure you've checked out XSI's ICE by  
now--that's one of the most impressive systems I've ever seen. You can  
do everything through nodes, from building new tools to sculpting  
particle systems. The Pidgeon Impossible guy even showed how he added  
drag to vertices facing the trailing edge of character geometry,  
faking the old 2D motion blur cheat on fast-moving objects.

If you haven't checked out Cinema 4D's Xpresso, it bears a look too.  
There's this one brilliant feature where the node network can be made  
to reference objects by relative hierarchies. In other words, you can  
copy the left arm's node network to the right, and as long as the  
hierarhies are the same it'll just work, saving a TD a lot of time.

There's a lot of inspiration out there. ^_^

> An important aspect of my system is that there will be no hidden
> processing such as automatic detection of result nodes, etc. If you  
> want
> to evaluate a DAG, just build it and connect its result node(s) to a
> push logic node to trigger it's evaluation. This node can be triggered
> by a time node (for realtime applications) or by a 'start' pulse that
> Blender could generate to evaluate the graph.  After that, each node  
> of
> the DAG can implement caching logic as they want, it's up to the  
> creator
> of the node.

As long as the start pulse is somewhat automatic that sounds great.  
Maybe there can be a setting that sets nodes in the network to use the  
start pulse-- a button or switch or something.

Pushing data through a DAG is fine for games (I actually like pushing  
more for certain things because push networks don't have to be  
acyclic), but for a character rig it's generally overkill and you go  
through a lot of wasted computation. In a pull network the system can  
rely on smart caching to skip out on *so* many calculations. It's one  
of the few things Maya got right. :)

So as far as that caching goes, I don't think it should be up to the  
node creator. Apart from that causing inconsistancy in how the nodes  
work, there's no guarantee that node creators would cache things  
properly. In Maya the values are cached at the attribute level and the  
nodes themselves are really just containers of those attributes, with  
logic for calculation and internal attribute dependency. Makes custom  
nodes a bit of a pain in the ass to write but it's the best system  
I've seen so far.

Anyway I know that a lot of folks are excited about the flashy  
features like smoke and SPH fluids, but the object nodes are the best  
news I could have heard all year as a character TD. No matter how you  
move forwards I wish you all the luck. Is there any non-code help you  
need at the moment?

~ C

PS apologies for any spelling or grammar mistakes; this was hastily  
typed on my phone :)


More information about the Bf-committers mailing list