Quick and Dirty Intro to Node-based Shaders

Its starting to grok.

Essentially, you are driving the "shader". The pink colored icon which interfaces Cheetah. One of the shaders is called "Material" and this maps to the old system. There can only be one pink shader icon.

When you create a "Material" its going to set up that shader with the necessary inputs. Not to confuse with the shader called "Material".

Considering custom shaders, in the node editor, control click to get the pop up. The "Texture" sub menu is essentially signal generator. Green icon. I guess value is just the intensity of the output and one number. Where as, color is an rgba.

You take the color/value and run it through the filter, math and 'other' nodes. Lastly, input the result into the pink shader icon.

Interesting, there is a state node. I suppose that is where the fragment shader is operating when one of the pixels is calculated.(?) Sort of like a glsl script. That is powerful. :)

There are constants nodes. I suppose these are used to hardwire an input to one value.

Clicking on any of the icons will show its properties in the upper right corner of the window. Where as, the old "Material" shader is going to produce what we saw in Cheetah version 4.

I suppose the "Default Material" is really just the "Material" shader in disguise.

Looks like a shader file is essentially a xml description of this node structure. And there appears to be texture files stored in it. Which makes me wonder what happens if someone else loads a jas file but they don't have that shader file in their installation? Or can shaders/nodes be embedded in jas files? What if someone has a shader with the same name on another system but different behavior?

Before, I would have to export my model to another program to do this stuff. Now, I don't have to do that. No more file translation hell. Even more cool, you can bake out your shader results to textures with the baking option. Easy to unwrap and bake.

The new app icon works for me. Think there is a cut out in photoshop that looked like the old icon. The new icon is more unique.

Math not much of an overhead for me because its familiar to what is going on with glsl scripts. But the math could be over a lot of people's heads. I suppose that is where the $30 materials library comes in with a 1000 shaders? ;)

Like the bevel and pivot point too.
 
Last edited:
Well I actually propose we should create a kind of Shader-Vault and provide our new shaders to other users. Be it a thread here where the files are upped or some other solution.
 
I'm a little bit mystified by some things myself, one of which is bump mapping. In large part this is because bump maps were broken altogether until the last few rounds of testing.
 
How did you make it into a pdf? Thanks

Hi uncle,
i was talking about pod's posts here, not the video... now that i read my post again i can see it can easily be misunderstood, sorry for my bad typing/syntax :redface:
i simply copy/paste all the posts into Pages, then saved as a pdf... a 1 minute work just to keep the docs in my mbp when i'm offline ;)

Cheers,
A
 
Hi uncle,
i was talking about pod's posts here, not the video... now that i read my post again i can see it can easily be misunderstood, sorry for my bad typing/syntax :redface:
i simply copy/paste all the posts into Pages, then saved as a pdf... a 1 minute work just to keep the docs in my mbp when i'm offline ;)

Cheers,
A

I understood you were using the text but what do you mean by"into Pages"?
 
You can make a PDF from anything on the Mac -- just print, hit preview, and save the result (or print to PDF).

I'll assemble a more coherent version of my docs eventually and post them in the same spot. I'm waiting for folks to correct stuff I've said :)
 
Simply copy&paste it into "TextEdit" and save as ".rtf" or if you really in the need of a PDF: say "Print" and go "save as pdf" instead.
 
norm unitizes vectors (i.e. scales them to length 1). Very useful.

Does norm even work? For instance, I create a constant vector <0,1,0> which I know has a magnitude of 1. If I pass the constant vector into diffuse I should get green which works. If I normalize the vector, then I should get green too. Yet, I get a gray color.

magnitude = sqrt(x*x + y*y + z*z)
NV = (1/magnitude) * V

Or am I missing the point of this?
 
My mistake! norm isn't normalize, it's the mathematical norm -- magnitude (length). That confused me too. (Sorry I knew this before C3D5 was released but forgot it when I was typing out my quick notes -- I've amended my post.)

A vector is simply a triple value (x,y,z) where each value is a floating point number (in Math this would be a "real" number, but most real numbers can't actually be represented on computers, so we use floating point approximations).

Vectors can represent positions in 3d space, directions, directions with magnitude (think "velocity"), and even colors and orientations (x, y, z rotation). In C3D they're usually used to represent positions or directions, but occasionally it's useful to think of colors as being vectors too.
 
Last edited:
In Cheetah, 'norm' is length. In glsl its 'normalize' on a vector which produces a vector of magnitude one. So, that is what tripped me up. Just divide by the norm result to normalize a vector in Cheetah. Maybe on that node, there could be a value output and a vector output too.

Andreu, I've been writing many a glsl shader script the last couple years. Its similar in many ways. All the college math helped too. :) Also, vector math is really heavy when it comes to games/graphics.
 
wow all this is going to take me a while to get my head round, very cleaver mat system...but not the most user friendly I have seen. I'm sure it makes a lot a sense to all the diehard 3D guys and gals round here, but me. it's got me running back to 4.7 I'm afraid.

I really think this new mat system needs a comprehensive manual and example section in the help files.

I'll take a back seat and wait for some more examples and tuts on this version.

Regards

Luke

Regards

Luke
 
Hi Luke,
don't get irritated by the node editor. For 4.7 functionality you don't need it at all. If you just have a material without any texture there parameters are almost the same as in 4.7. If you want a material just click on the grey button at the right of each material parameter to assign a "image" texture node. Load the texture into that node and you are done. The number of clicks you have to perform is almost identical.

But with v5 the features don't stop here. You can load textures in almost all material parameters. You can mix textures. You can use various procedural textures, etc. But if you don't want to use all this new stuff you could still stick with a 4.7 like feature set by just attaching image nodes to the parameters.

Bye,
Martin
 
Hi Luke,
don't get irritated by the node editor. For 4.7 functionality you don't need it at all. If you just have a material without any texture there parameters are almost the same as in 4.7. If you want a material just click on the grey button at the right of each material parameter to assign a "image" texture node. Load the texture into that node and you are done. The number of clicks you have to perform is almost identical.

But with v5 the features don't stop here. You can load textures in almost all material parameters. You can mix textures. You can use various procedural textures, etc. But if you don't want to use all this new stuff you could still stick with a 4.7 like feature set by just attaching image nodes to the parameters.

Bye,
Martin

Luke, Martin... this is what i'm doing at the moment in v.5... anyway i find some materials (transparent, reflective) behave slightly different in renders and i have to play a little more with them to get v4.7-like outputs. is it only due to the new mat system (and so a matter of trial and error) or is there some kind of 4.7-to-5.0 guide line for that?

regards,
Alessandro
 
Martin -- how hard would it be for the old material system to coexist alongside the new one? That's how a lot of 3d programs handle this issue.
 
I have a question for the people who followed this thread. Were my explanations pitched at the right level, too technical, not detailed enough? The text here could form the basis for my explanation of the node system but if it's not useful then perhaps I should start over.

Also — and more importantly — people who've never looked at this before: is this stuff OK or too complicated. Any concepts need more explanation?

I will be trying to provide visuals for absolutely everything (a freaking monumental task!)
 
Wow, this is a monumental task... I know it myself. I think the hardest part to explain about nodes is not what they are (silly example, although close to C3D's current level of documentation: "The Color node is used to add color" Duh!). What's hardest is trying to explain what for they are used, to give the reader some perspective and real-world examples. Does this help?

Andreu

I have a question for the people who followed this thread. Were my explanations pitched at the right level, too technical, not detailed enough? The text here could form the basis for my explanation of the node system but if it's not useful then perhaps I should start over.

Also — and more importantly — people who've never looked at this before: is this stuff OK or too complicated. Any concepts need more explanation?

I will be trying to provide visuals for absolutely everything (a freaking monumental task!)
 
Yeah podperson, you're guide really does cover the finer technical points, but it is kind of lost on visual people like me. I think if some visual guide paired up with your glossary would be pretty awesome! I agree that the task could take some time. I know there is a basic one for Blender, but think it could be done better. There is also something similar called Mental Mill that looks like C3d Material might be based on some-what (although only Martin can verify that).

I tried going into the C3d package and seeing if I could pull some of the .nib files out into Interface Builder to get started on having some images to help. The .nib files are compiled though so they can't be opened. Doing a screen shot of the material only gives a very low resolution image of the material nodes. I can re-create them if you need or help in some other way on the layout side. Or maybe you could get Martin to send the intact .nib files? Either way, I think an expanded version of the materials guide would be most welcome. :cool:
 
Back
Top