Cycles / OSL: Support microfacet() closure color function from OSL 1.5
authorThomas Dinges <blender@dingto.org>
Thu, 30 Oct 2014 10:33:27 +0000 (11:33 +0100)
committerThomas Dinges <blender@dingto.org>
Thu, 30 Oct 2014 10:33:27 +0000 (11:33 +0100)
commitd5ed153760d32ca6c5f6ca5acc5ec6126a7f3eee
tree0ae45be30e6d8a203d4a68f2cf6982318fb0b3a8
parent0414ed1c480fa53a057a0b2077122e27ffd058fd
Cycles / OSL: Support microfacet() closure color function from OSL 1.5

This is basically just a wrapper class, which maps the generic call from the OSL spec to our closures.

Example usage:

shader microfacet_osl(
    color Color = color(0.8),
    int Distribution = 0,
    normal Normal = N,
    vector Tangent = normalize(dPdu),
    float RoughnessU = 0.0,
    float RoughnessV = 0.0,
    float IOR = 1.4,
    int Refract = 0,
    output closure color BSDF = 0)
{
    if (Distribution == 0)
        BSDF = Color * microfacet("ggx", Normal, Tangent, RoughnessU, RoughnessV, IOR, Refract);
    else
        BSDF = Color * microfacet("beckmann", Normal, Tangent, RoughnessU, RoughnessV, IOR, Refract);
}
intern/cycles/kernel/shaders/stdosl.h