[Bf-cycles] build with OSL support

Yasuhiro Fujii y-fujii at mimosa-pudica.net
Sat Nov 12 16:20:49 CET 2011

The O-N patch updated. This should be last update...

The meaning of roughness has changed again from last mail.
It is still simple formula and keeps the range [0, 1].
It keeps overall intensity invariant when changing the roughness.
I think orthogonality of the parameters is very important for the usability.
Additionally, you can always obtain the same result as original O-N's
to adjust the roughness and color values (but it is not a trivial
transformation).

The detail is below (copy & paste from source code).
/*
* NOTE:
* BSDF = A + B * cos() * sin() * tan()
*
* The parameter sigma means different from original.
* A and B are calculated by the following formula:
* A = (3 - sigma) * (1/3pi)
* B = sigma * (2/3pi)
*
* This formula is derived from following conditions:
*
* 0. Normalize A-term and B-term *individually*.
* B-term is normalized at maximum point: dot(L, N) = 0.
* A = (1/pi) * A'
* B = (2/pi) * B'
*
* 1. Blend A-term and B-term linearly so that
* A' + B' = 1
* B == 0 if sigma == 0
* A == B if sigma == 1
*/

On Fri, Nov 11, 2011 at 8:48 PM, Brecht Van Lommel
<brechtvanlommel at pandora.be> wrote:
> On Fri, Nov 11, 2011 at 10:53 AM, Yasuhiro Fujii
> <y-fujii at mimosa-pudica.net> wrote:
>> I want to propose simpler ones:
>>  0<= sigma <= 1
>>  A = 1.0f - 0.5f * sigma;
>>  B = 0.5f * sigma;
>> which are much more useful for me. they have no magic numbers and
>> behave straightforwardly.
>> Of course, this form is artificial. however, original form also
>> doesn't seem to have strong theoretical reason. It seems to be chosen
>> by numerical experiment, not by the straight approximation.
>>
>> What do you think about it?
>
> Looks like a good change, I've tried to keep things in 0..1 range in
> other places too.
>
> Brecht.
> _______________________________________________
> Bf-cycles mailing list
> Bf-cycles at blender.org
> http://lists.blender.org/mailman/listinfo/bf-cycles
>