跳转到内容

hair

bsdf  hair(vector N, vector tip, float lobe_shift, float lobe_width_lon, ...)

bsdf  hair(vector N, vector tip, float lobe_shift, float lobe_width_lon, float lobe_with_azi, ...)

bsdf  hair(vector N, vector tip, float lobe_shift, float lobe_width_lon, float lobe_with_azi, float glint_shift, float glint_intensity, ...)

毛发BSDF的详细实现可在源文件(hair_eval.vfl)中找到。

函数的任何可变参数都会传递给CVEX评估函数。

示例

这些不同的函数签名等同于以下代码:

bsdf hair(vector N; vector tip; float lobe_shift; float lobe_width_lon, ...)
{
cvex_bsdf("hair_eval", "hair_sample",
"label", "diffuse",
"tip", tip,
"lobe_shift", lobe_shift,
"lobe_width_lon", lobe_width_lon,
...);
}
bsdf hair(vector N; vector tip; float lobe_shift; float lobe_width_lon, float lobe_with_azi, ...)
{
cvex_bsdf("hair_eval", "hair_sample",
"label", "refract",
"tip", tip,
"lobe_shift", lobe_shift,
"lobe_width_lon", lobe_width_lon,
"lobe_width_azi", lobe_width_azi,
...);
}
bsdf hair(vector N; vector tip; float lobe_shift; float lobe_width_lon, float glint_shift; float glint_intensity, ...)
{
cvex_bsdf("hair_eval", "hair_sample",
"label", "reflect",
"tip", tip,
"lobe_shift", lobe_shift,
"lobe_width_lon", lobe_width_lon,
"glint_shift", glint_shift,
"glint_intensity", glint_intensity,
...);
}