Forum: Poser - OFFICIAL


Subject: Nodes for Dummies

RobynsVeil opened this issue on Jan 24, 2009 · 490 posts


bagginsbill posted Wed, 28 January 2009 at 11:41 PM

There is no book like this. I think the relentless application of +, -, *, and / are just not going to be examined that closely in any book.

That's all I'm using here. I've not even got to exponentiation, or square roots, or sines and cosines, or modulus, or anything remotely beyond 5th grade arithmetic.

That's the trouble really. This is a whole new way of thinking about arithmetic. Mostly it was taught in terms of how to add two particular numbers together.

What I'm talking about is how to visualize/imagine an entire function added to another function, or worse, an entire image full of numbers being added to another entire image full of numbers. There is no book on that. It's a whole new application of arithmetic.

There is something like it, taught as a pretty advanced math course in university, called Linear Algebra. This deals with arithmetic of whole functions.

Example, when I write a + b, you are able to generalize that into specific cases like 2 + 3, 4 + 7, etc. You understand that the little expression, a + b, stands for an infinite number of actual additions, without actually naming any of them.

Well in Linear Algebra, those letters can not only be any number you like, they can be any function you like. What?!? How do you add functions together?

It's really pretty much the same. If I have function f(x) = 3 * x + 9 and g(x) = 100 * (x - 1) then

f + g = 3 * x + 9 + 100 * (x - 1)

Now in Algebra you are taught how to actually reduce that. But in Linear Algebra you are taught how to reason about f + g without actually working out exactly what f + g is. It's a fascinating subject, and was one of my favorites in college.

The concepts are incredibly useful for designing new functions from existing functions. This just so happens to be 90% of what I do when I design a shader. I have a function I want, but I only have these Poser nodes to implement them. So I have to figure out how to mix and match from this finite set of functions to produce any other function I want, like a skin shader, just from the four basic arithmetic functions plus exponentiation. (Yes that's actually how it is built, nothing else is used.)

For example, I know that if I have two functions where f(0) = 0, f(1) = 1, and the same holds true for g, then a new function h = f * g  will also obey that rule, i.e. h(0) = 0 and h(1) = 1. Even if I don't know any details about f and g, i.e. what they actually look like, I am still certain of this. This is my favorite rule for shader functions. I have a giant bag of these from which I assemble new ones. The fact that the new ones meet the same criteria as the ones I made it from is important. Why? Because the new one goes right into the bag with all the others, so I have an ever-growing collection of them.

But as I said, the approach taken in Linear Algebra books is anything but remedial. Quite the opposite, it assumes you are already facile with Algebra, and then takes it to new levels.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)