Blend BSDF¶
Description¶
This special BSDF does blends, or linear combinations, of other BSDFs, following a user-defined blend function varying between 0 and 1. This is often used for mixing BSDFs (for instance, with a constant blend ratio) or for continuously varying between BSDFs across the surface.
For instance, if five child BSDFs are defined, they will correspond to blend function values of 0, 0.25, 0.5, 0.75 and 1 respectively. Other blend function values interpolate linearly between the two nearest BSDFs.
Note
Before Ocean 2017 R2, this BSDF had a forcestep parameter. When set to true, the resulting BSDF was not blended but switched when the blend function reached threshold values. This is now achieved with a Switch BSDF
Children Nodes¶
The blend function defining the BSDF mix, between 0 (first bsdf) and 1 (last bsdf) |
|
First BSDF |
|
Second BSDF |
|
… |
Parameters¶
none
Ocean XML 6.1 example¶
<bsdf type="blend" name="bsdf">
<bsdf type="reflective" name="bsdf1" rereflections="true">
<roughness type="phong" name="roughness">
<scalarshader type="uniform" name="exponent" value="500"/>
</roughness>
<intlaw type="cfresnel" name="intlaw">
<dielectricfunc type="linked" name="dielectricfunc" target="ocean-metals::Ti"/>
</intlaw>
</bsdf>
<bsdf type="oren_nayar" name="bsdf2">
<filtershader type="uniform" name="diffuse">
<spectrum type="tabulated" name="spectrum">
3.8e-07 0.2 4.37143e-07 0.25 4.94286e-07 0.3 5.51429e-07 0.35 6.08571e-07 0.5 6.65714e-07 0.6 7.22857e-07 0.7 7.8e-07 0.7
</spectrum>
</filtershader>
<scalarshader type="uniform" name="sigma" value="1"/>
</bsdf>
<scalarshader type="texture" name="blend">
<prm channel="G"/>
<prm scale="1"/>
<prm offset="0"/>
<prm greypt="0.5"/>
<prm uvscale="1"/>
<image type="file" name="image" path="gradient.png"/>
</scalarshader>
</bsdf>