[Bf-committers] Nodes
Ton Roosendaal
ton at blender.org
Thu Jul 20 19:51:43 CEST 2006
Hi,
I will really welcome efforts to design a good set of basic primitive
Nodes to build your own custom shaders, completely outside of the
current Material system (with the Material of course still being the
base of a nodetree).
However, this isn't a simple task... there's features you have to keep
track of, like:
- requirements for pass render, how?
- how to access lights?
- how will shadow/raytrace-mirror/AO/etc integrate with it?
- should the rendercore.c shading loops be reconstructed? and how?
And of course it should be 100% thread safe. :)
Cessen (= Nathan Vegdahl) already did some prelinary work on it. I
think it would help us too to evaluate other shader trees/networks,
like in XSI, Maya... or something that's more close to the renderman
standards.
-Ton-
On 20 Jul, 2006, at 19:36, Branan Riley wrote:
> I'm going to write a WIKI article as soon as I figure out exactly my
> final ideas :)
>
> I think I may do something different than what I originally wrote.
> I'm thinking of creating another node tree, to allow for custom
> shaders that could be used in any material, even outside of a node
> material. The current shaders can stay hard-coded, with an 'add new'
> option in the list now, that lets you create a custom shader using
> nodes. The only issue now is figuring out how to tie any custom inputs
> to the GUI. Unless someone has any major qualms with this idea, I'll
> start writing a slightly more detailed plan, and try to have it on the
> WIKI by the weekend.
>
> Branan
>
> On 7/18/06, Joe Eagar <joeedh at gmail.com> wrote:
>> > I've been trying to figure out how to split the current Material
>> input
>> > node. Create a "Diffuse" node, "Specular" node, etc. The Material
>> node
>> > can still be there, of course. I'd also like to be able to add a
>> > "lights" node, which gives the vectors to the lights for each pixel
>> as
>> > well. Coupled with some easy-to-write vector math nodes, this gives
>> a
>> > very powerful low-level shader design system, but also allows for
>> less
>> > advanced users to create simpler systems.
>> >
>> > My problem is the three main nodes - diffuse, specular, and lights.
>> > I've been digging through the source, but I can't find any sort of
>> > easy-to-use hook already in place. I tried looking at the Material
>> > Node code, but that pretty much is a front-end for the Material code
>> > itself, which is not very fun to look through at all. Any advice on
>> > where to get started on any of those nodes would be greatly
>> appreciated.
>> >
>> > Branan
>> Also, cessen (I don't know his real name -- eh, is it you?) was
>> working
>> on this a while back.
>>
>> Anyway, you might want to write a document on the wiki detailing what
>> you intend to do. Really the material node system needs a
>> comprehensive
>> usability review, with suggestions on what new nodes are needed, etc.
>> The current paradigm of using nodes to blend materials together should
>> be kept, IMHO, but I also think there should be support for writing
>> shaders from scratch, too.
>>
>> Keep in mind, I don't think a material node network is executed once
>> for
>> every light. I believe the network is only executed once per pixel,
>> when each component material has been fully calculated. If you added
>> something like a light node, you'd probably have to write code to
>> detect
>> it, and if it exists, to execute the node network once for each light,
>> accumulating the result. It might be complicated.
>>
>> joeedh
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at projects.blender.org
>> http://projects.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
------------------------------------------------------------------------
--
Ton Roosendaal Blender Foundation ton at blender.org
http://www.blender.org
More information about the Bf-committers
mailing list