So I have been thinking about a new shader/material editor for blender and now I've made a small sketch of how it could look.
Here are the main features of the shadertree:
1.) You access the tree just like you access for example the IPO window.
2.) For each material you create a new tree, and you can switch between these trees using buttons on the bottom of the shadertree window (not shown in picture yet)
3.) There will be a separate editor to link the shaders/materials to the geometry objects in the scene. Basically it will be a window with a list of the materials to the left and a list of the objects in the scene to the right. If you want to assign a shader/material to any object(s) you simply drag the material to the desired object(s). Once you have assigned the shader/material to the object(s) the shader/material will show up as a child to the object in the shader/material linking editor. Think of it as the explorer in for example windows, the objects would be represented by a folder and the objects assigned shader/material would be represented as its one subfolder. I will get back to you with a more detailed sketch of this.
This approach for linking might seem a bit complicated at first, but its really a good way when dealing with a large number of shaders/materials.
4.) As shown in the picture there will be a menu that appears when you right-click in the workspace that you will use when creating new nodes. If you right-click when hovering over one of the connection lines it will insert the desired node and link it up with the two other nodes that were previously connected to eachother. You can also insert a link this way by moving it over the connection line while holding shift.
5.) When you click on any node in the tree the properties for this node will show up for example where you previously edited all the materials in blender. For example if you click on a texture node you will be able to change the path for the texture etc.
Note that this is only a sketch so far, nothing have been coded yet, so its up to you to come up with comments for this. If you like it then there is a chance that we might be able to take this idea further and start implementing it.
Finally, here is the sketch:
Hmmm....that looks more complicated than the current material editor to me....
well thats a very clever reply friday13, u really know how to make the entusiasm flow in people...
Anyway, I made a sketch for the material linker as well:
I changed the specs a bit, moved the objects from the righ table to the left, no biggie though.
OK i really like the list on the left hand side of the screen
it looks very functional and quick to choose textures. and apply them to multiple objects without actualy having to select each object individualy.
i like the idea of the texture window thing on the right but don't really understand what it does that is currently unavailable.
the interface looks nice (assigning multiple images and textures quickly is really nice) but the object colour data like col, spec, mir, pec, alpha etc...
needs to be included as another box (like the texture ones) then linked in a similar way.
i really like the concept
it is a great idea. but one thing to think about is how does it better the current design.
is it quicker to use
does it use minimal computer power
does it provide more functionality (more features than avilable now)
i also like the eye candy (the window designs)
keep it up
If you have used applications like xsi or maya before you will find the benefits in a better way then I can explain. But I will give it a shot
an interface like this enables you to plug nodes into the values of other nodes. So you can have one node drive another node. in blender you can only have textures layered on other layers and directly drive only the final materials attributes.
With this kind of tree ui you could for example have a texturemap drive a cloud procedural texture. the texturemap decides where the tubulence of the cluds should be higher and lower.
Or you can use it to blend together 2 texturemaps and drive the cloud texture that way.
or you can use just the r or g or b value of a texture to drive the cloud.
You could connect image textures to a checkered procedural texture so where there was supposed to be white is one texture and where there was black another texture will be connected. ie input A and input B of a checkered node gets connected to the rgb values of 2 image texture nodes. Those texture nodes could alsointurn be driven by cloud textures that decide where the intensity of the textures should be higher and lower.
Well. in short. it offers endless posibilities.
Blenders material editor offers limited posibilities.
thanks for explaining that GREEN it really helped.
YES DO IT i am convinced it sounds much better than the current design and i like it a lot.
i want this done NOW (na just joking take as long as ya want)
it is a wicked idea which i like and think would add to blender.
(that should get the entusiasm flowing)
I LOVE IT....
Yo wurp, wavk here,
Seweet, nice to see someone else interested in doing this. In case you missed it, take a look over here:
DO scroll further, the first sketch has changed a lot of times. A lot of ideas have been posted in that thread. And I've come up with something very similar to your idea. I like it! I don't like the list window thought, that should be done in the OOPS window I think.
I've got my interface implemented already, as a seperate app, not in blender. You can download it here:
(windows version, and an old one)
It's got transparent, colourbleeding, soft shadow casting blocks which can be dragged with flexible bezier wiring attached to them.
I got some delay because I lost my interest in coding for a while and on top of that, my monitor died last week, so I can't access my pc
We could team up if you like.