Blender Node Editor
|abstract: We introduce the basic functionality of the blender node editor.We explain how to enable the node editor and how to create and combine nodes to create more complex materials and to support complex texturizing.|
High quality download blenderNodeEditor.wmv
- blender users with basic skills
- A UV-unwrapped mesh model (see sculpted prims video tutorial)
- A texture (image) for your model (see surface textures video tutorial)
related tutorials from other sites:
Today we will explain the basic principles of node-based materials and how these materials can be applied for sculptie texturing. If you have no experience with using blender for creating textures, you should watch the tutorial about “texturizing sculpted prims” first, and then come back to continue here.
Ok, lets do a jump start and open blender now. We will re-use our working example, a simple helmet. We have already created the sculptie itself before, and for texturizing purposes we have created another UV-map, which we have called: projection-Map. Both maps can be found in the UV-texture section of the mesh tab in the edit-panel. We will use them now.
But instead of using simple materials as we did before, we now want to use the node editor. So let us go to the material panel first, and cleanup a bit by removing the already existing material. Please remember, that now the material has been removed from the objects material list. But it is still available. If we want to completely delete the material, we have to save the object first. After reopening the bland file, the material is gone. Note, that this step is only for cleaning up.
Now we will split up our working windows, so that we get an additional view. Place the cursor over the window border. When you see a double headed arrow, right click and choose: “split area”. In the upper window, select the node editor. Take care to allocate enough space on the screen. Now add a new Material and rename it to texture-container. Then go to the texture panel and add the already existing helmet-projection-texture.
The reason why we have to create this material, is a dependency problem in the node editor! In a later step we need to assign textures to texture nodes. But, the only place where we can create textures, is inside an existing material. Hence we created the texture-container, as a work-around. We will come back to this issue in a few moments.
So, lets go to the node editor window. There open the selection box and choose: “Add, new”. This step creates the node based material. Rename this material to a convenient name, like: “helmet-material”
The just created material will be completely defined in the node editor. We have to tell this to blender now. Simply click on: “Use, nodes.” Now the helmet-material is used as the root of a complex material. It can be used exactly like simple materials, but it may contain a much more complex inner structure compared to what we can achieve with simple materials.
The helmet-material now contains 2 inner nodes:
- the material-node on the left side, is just a place holder for a material. We still have to associate a material with this node.
- the output node on the right side, is the processing end point. Here all material processing will be accumulated and rendered to the final texture. The small window in the output node shows a thumbnail version of the final result. At the moment you see a black circle there.
But you also see a lot more details here:
- First, both nodes are connected through their “color” connection points. In principle that means, whichever color is associated to the material, will be propagated to the out-node. And currently the material is black. Hence the output shows the black circle.
- Furthermore, you see some unconnected points in three different colors:
– yellow connectors transport color information
– grey connectors propagate values.
– Finally, blue connectors propagate vector information.
- In general, only connectors of the same color can be connected. But this is not a fixed rule. We will come back to this in the future.
- All nodes show the same general structure:
– The input connectors are placed on the left side,
– The output connectors are placed on the right side.
– Unused connectors will typically be filled with convenient default values.
- In general, data flows from left to right.
Ok, back to practice now. You have noticed this prominent red request, to Add a New material ? So let us click on this red button now. This fills the material node with life. Note, that now also a new simple material exists in the material panel. Now, Look a bit closer. You see that the Out-node has changed to a grey sphere. This is, because the material node has turned its color to grey, and a bit of specularity has been added and this information is propagated through the system.
So, What is the next step now?
Of course, we will now place our surface texture into the system. So we first create a new texture node.
press space, add, input, texture
From the embedded selector box choose: “projection-texture”. This is the place, where the previously mentioned dependency problem pops up. The texture must be assigned to at least one material, otherwise it would not show up in the selection list here. But by creating the texture-container material in a previous step, we found a workaround, and now we can simply choose the “projection-texture” from the list. Let us go and change the preview display to 2D. Do this directly in the material panel.
Now all nodes in the node editor changed their output from a 3D view to a simple 2D image.
It becomes obvious now, that we have to connect the texture with the material. Lets do this, by using the color to color connectors. click on one of them, and while holding the mouse down, drag it, until it is on top of the destination connector. The connection line then snaps to the connection end point. As soon as the mouse is released, the texture-data is propagated to the out-node.
Now lets see, if we can bake the final texture. Therefore
– go to the edit panel
– choose the projection-Map
– create a new image
– and then: render, bake render meshes, Texture only.
Ok, this is not what we expected to see. Something is missing. We see, that the mapping is completely wrong. We forgot to define, which mapping shall be used to wrap the texture around the object.
Now the geometry-node comes into play. Let us create such a node now:
Press SPACE -> add -> input -> geometry.
A new geometry node appears. We remember now the map input tab in the material panel ? We had to specify some details there, to get the correct texture mapping. The equivalent settings in the geometry node are:
connect the UV output, to the Vector-input of the helmet-texture.
This is equivalent to: perform a UV-mapping, and use the UV-coordinates as texture coordinates.
Then enter: “projection-Map” into the input field. This is equivalent to: “use the projection-Map as UV-map”.
Now bake again, And yes! it works!
Oh! no, we still have to convert our texture to the version compatible with your online world. We used the wrong transformation. In the final baking step, we need to use the sculptie UV-map instead of the projection-map. Ok, lets do this now:
– Choose the sculptie-UV-texture, as the rendering UV-texture
– Go to edit mode and select the output image again
– Finally bake again.
Now we are finished. We just have used the node editor to define our sculpted prim texture conversion. Essentially we needed one texture node and one material node. We also had to define the mapping from the texture to the object. so we used a geometry node here. Then we had to choose the sculptie UV-map in order to bake the correct final texture.
So what did we get ?
The setup was quite a bit time consuming. But now we are able to use the full power of the node editing system. Things will become quite easy and you can do very complex texturing tasks now.
We are now close to the end of this tutorial. Finally I show you an easy example of how we can continue from here. Lets recolorize the texture to a light blue helmet.
- First, i disconnect the projection-map texture from the material node.
- Then i add 2 converters, one to separate the red, green and blue values and another one to recombine them.
- Then i cross the blue and the red values between the converters.
- At the end, i route the texture data through my new converter, and connect the output back to the material node.
- A final bake and?
The helmet has turned blue!
And now? it is your turn to have fun with texturing.
Meanwhile, We are going to investigate further.
see you soon!