[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