[Bf-committers] Cycles shader interaction

Tobias Oelgarte tobias.oelgarte at googlemail.com
Wed Mar 21 13:42:31 CET 2012

Just some thoughts. If they aren't any good, omit them, since i may be 
wrong in my assumptions or not entirely correct.

I could imagine two points in the pipeline which could be relatively 
easy expanded to do some more fancy stuff.

The first point would the the transmission to the film. The color (if we 
might call it that way) of the result of a sample could be adjusted like 
inside the ramp functions for diffuse and specular inside BI, before 
combining it with the film itself. That way you could create materials 
that are seen differently as they are influencing their environment. 
This is partially possible with the help of the "Light Path" Node, but 
very limited at the same time.

It would allow some kind of postprocessing coupled on the material 
itself. That way you would not need masking or indexing and a quickly 
complex getting compositing setup. A simple use case that comes to my 
mind would be toon shading.

The second point would be the addition of the following inputs. The 
first input would deliver the angle between the surface and the current 
light ray (or even better both vectors), the second input the 
intensity/color of the light from this ray. That way the shader would 
have a great control on how light affects the surface and vice versa.

It would allow unrealistic materials. For example a material that is 
basically diffuse, but becomes glossy for high light intensities. It 
could shift it's color based on the angle and so on.

Greetings from
Tobias Oelgarte

Am 21.03.2012 13:09, schrieb Brecht Van Lommel:
> There may be some more control added, but most of the things you
> describe are not possible with progressive / physically based
> rendering. Due to the each light ray being considered independent,
> it's not possible to do an operation that maps the final surface color
> to some other color. There would need to be a non-progressive
> rendering mode to support that.
> Brecht.
> On Tue, Mar 20, 2012 at 11:48 PM, Tobias Oelgarte
> <tobias.oelgarte at googlemail.com>  wrote:
>> In the recent weeks I did various experiments with Cycles and tried out
>> various combinations for shading and materials. Even so I'm quite happy
>> with most of the results, I'm not so happy with the "once shader always
>> shader paradigm". That means: Once you have the output of a shader node,
>> you can only combine it with other other shaders using the add- or
>> mix-nodes for shaders. This means that you have little to no control
>> after a shader output.
>> In BI you have the ability to use ramps to manipulate the result of the
>> shader itself. For example you could give dark areas a violet tone,
>> while giving brighter areas a more yellow color. You can also feed a
>> shader with the output of another shader and so on. At the moment this
>> seams not possible with cycles on material base. You can only use
>> compositing to apply such effects as a postprocess with using index
>> masks and similar stuff. This is difficult to set up for larger projects
>> with different materials, if not even impossible, if not done on shader
>> level.
>> Are there any plans to allow more control over how shaders can interact
>> with each other?
>> Greetings from
>> Tobias Oelgarte
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list