{
float sigma = fmaxf(sc->data0, 0.01f);
sc->data0 = 1.0f/(sigma * sigma); /* m_invsigma2 */
+ sc->data1 = 0.0f;
sc->type = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID;
ccl_device int bsdf_diffuse_setup(ShaderClosure *sc)
{
sc->type = CLOSURE_BSDF_DIFFUSE_ID;
+ sc->data0 = 0.0f;
+ sc->data1 = 0.0f;
return SD_BSDF|SD_BSDF_HAS_EVAL;
}
ccl_device int bsdf_translucent_setup(ShaderClosure *sc)
{
sc->type = CLOSURE_BSDF_TRANSLUCENT_ID;
+ sc->data0 = 0.0f;
+ sc->data1 = 0.0f;
return SD_BSDF|SD_BSDF_HAS_EVAL;
}
ccl_device int bsdf_diffuse_ramp_setup(ShaderClosure *sc)
{
sc->type = CLOSURE_BSDF_DIFFUSE_RAMP_ID;
+ sc->data0 = 0.0f;
+ sc->data1 = 0.0f;
return SD_BSDF|SD_BSDF_HAS_EVAL;
}
ccl_device int bsdf_phong_ramp_setup(ShaderClosure *sc)
{
- sc->data0 = max(sc->data0, 0.0f);
-
sc->type = CLOSURE_BSDF_PHONG_RAMP_ID;
+ sc->data0 = max(sc->data0, 0.0f);
+ sc->data1 = 0.0f;
return SD_BSDF|SD_BSDF_HAS_EVAL;
}
ccl_device int bsdf_reflection_setup(ShaderClosure *sc)
{
sc->type = CLOSURE_BSDF_REFLECTION_ID;
+ sc->data0 = 0.0f;
+ sc->data1 = 0.0f;
return SD_BSDF;
}
ccl_device int bsdf_refraction_setup(ShaderClosure *sc)
{
sc->type = CLOSURE_BSDF_REFRACTION_ID;
+ sc->data0 = 0.0f;
+ sc->data1 = 0.0f;
return SD_BSDF;
}
ccl_device int bsdf_transparent_setup(ShaderClosure *sc)
{
sc->type = CLOSURE_BSDF_TRANSPARENT_ID;
+ sc->data0 = 0.0f;
+ sc->data1 = 0.0f;
return SD_BSDF|SD_TRANSPARENT;
}
return flag;
}
else {
+ sc->data0 = 0.0f;
sc->data1 = clamp(sc->data1, 0.0f, 1.0f); /* texture blur */
sc->T.x = clamp(sc->T.x, 0.0f, 1.0f); /* sharpness */
sc->type = type;
/* clamp anisotropy to avoid delta function */
sc->data0 = signf(sc->data0) * min(fabsf(sc->data0), 1.0f - 1e-3f);
+ sc->data1 = 0.0f;
return SD_SCATTER;
}