I'm always seeing the word "node" in animation. Like, rendering "nodes" and "node-based" interface and so on. Can anyone explain in logic what is a "node"?
Node can mean a few different things. Maya, UDK, and Softimage all have node based material editors. Instead of writing or programing materials/shaders, you get these nodes or simple operations and controls you can mix and combine to make a complex material. I've also seen node based procedural texture generation and node based programing. UDK has node based scripting called Kismet, and I think they have some sort of node thing for animation as well, but I have not used it.
It's a general-purpose word that's useful and common just because it's so generic. In CG/games (and in most computer science) large, complex things are built out of smaller, less complex things. It's helpful to figure out ways to describe the organization of how these things work together to comprise the sum of their parts.
This applies to pretty much every aspect of a game art/programming pipeline, often in overlapping areas. If you want to describe a 'thing' or a group of 'things' in relation to other 'things' or groups of 'things', then what usually happens is an arbitrary way to organize them is decided upon, and from that point forward you can refer to different types of 'containers of things' that you commonly come across. This makes communicating with others or just understanding what you're working on easier.
The important part is understanding the need to represent information in useful ways. There are useful and non-useful ways to show information, and that doesn't necessarily mean showing exactly what the data really looks like. In fact, showing an imaginary representation is often better, because it gives you some big-picture perspective that's really more important.
That's why you hear the term "node" often. It's because whenever a tool, or chart, or graph, or system in general wants to show you a 'thing' that has relation to other 'things' or represents a container or is meant to be understood as a part of a larger construction, "node" is convenient and generic enough term to mean just that - without having any extra confusing meaning that you don't want.
You wouldn't call nodes "boxes", what if the data they represent doesn't really have a shape? That'd be confusing. "Container" is a little cumbersome, because you want to open and close containers and that might not make sense. Even terms like "widget" aren't ambiguous enough, because those terms have been co-opted by desktop apps and smartphone doohickies, and people might not know what you're talking about.
So "node" is a quick and easy word that means stands-for-something-else-and-usually-is-part-of-a-larger-system-and-is-useful-for-organization-but-doesnt-confuse-you-by-making-you-think-about-the-wrong-thing-by-accident. And it's only four letters!
Isn't it likely that the node systems in our computer applications are using the same terminology as graphs in mathematics, because of its fundamental design? There are paths/flows of information coming and going from/to difference nodes (vertices). I'm pretty sure the same terminology is used in things like subways, streets and sewer plans too.
Of course the term can be used even more generally than that as mentioned by others. Can't think of any right now that is not part of a graph. Maybe someone can give an example where it is a node but not in a graph of some form?
I don't thinking of it as a variable is helpfull though, a variable is a contianier of some kind of value, thats not necesarily the case with everything refered to as a node. As FicWill mentions i's more about refering to some abstract "object" in some form of structure. To use the multiplication node in a graph based material editor it's definetly not a variable but rather a function.
edit: heh, see Dennys simulatanous post obove saying what I tried to but better .
Yeah, they also use it within networking and computers and a node can be anything from a computer to a whole local network on a larger network. It really depends on it's context.
A node is an isolated individual something that constitutes a part of a larger system. One computer in a network is a node, one 'box' in a material editor is a node, and so on.
Replies
This applies to pretty much every aspect of a game art/programming pipeline, often in overlapping areas. If you want to describe a 'thing' or a group of 'things' in relation to other 'things' or groups of 'things', then what usually happens is an arbitrary way to organize them is decided upon, and from that point forward you can refer to different types of 'containers of things' that you commonly come across. This makes communicating with others or just understanding what you're working on easier.
The important part is understanding the need to represent information in useful ways. There are useful and non-useful ways to show information, and that doesn't necessarily mean showing exactly what the data really looks like. In fact, showing an imaginary representation is often better, because it gives you some big-picture perspective that's really more important.
That's why you hear the term "node" often. It's because whenever a tool, or chart, or graph, or system in general wants to show you a 'thing' that has relation to other 'things' or represents a container or is meant to be understood as a part of a larger construction, "node" is convenient and generic enough term to mean just that - without having any extra confusing meaning that you don't want.
You wouldn't call nodes "boxes", what if the data they represent doesn't really have a shape? That'd be confusing. "Container" is a little cumbersome, because you want to open and close containers and that might not make sense. Even terms like "widget" aren't ambiguous enough, because those terms have been co-opted by desktop apps and smartphone doohickies, and people might not know what you're talking about.
So "node" is a quick and easy word that means stands-for-something-else-and-usually-is-part-of-a-larger-system-and-is-useful-for-organization-but-doesnt-confuse-you-by-making-you-think-about-the-wrong-thing-by-accident. And it's only four letters!
using udk's material editor as an example, the multiply node seems like a really simple thing, it just means "multiply" right?
but inside that node, there's likely a couple of lines of code. it's just simplified down so the end user doesn't have to deal with all of that.
http://en.wikipedia.org/wiki/Graph_%28mathematics%29
http://en.wikipedia.org/wiki/Node_(graph_theory)
Of course the term can be used even more generally than that as mentioned by others. Can't think of any right now that is not part of a graph. Maybe someone can give an example where it is a node but not in a graph of some form?
I don't thinking of it as a variable is helpfull though, a variable is a contianier of some kind of value, thats not necesarily the case with everything refered to as a node. As FicWill mentions i's more about refering to some abstract "object" in some form of structure. To use the multiplication node in a graph based material editor it's definetly not a variable but rather a function.
edit: heh, see Dennys simulatanous post obove saying what I tried to but better .