Fix part of T40964: Glass shader was giving wrong results with OSL.
This commit is contained in:
@@ -387,7 +387,7 @@ ccl_device int bsdf_microfacet_ggx_aniso_setup(ShaderClosure *sc)
|
|||||||
ccl_device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc)
|
ccl_device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc)
|
||||||
{
|
{
|
||||||
sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* alpha_x */
|
sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* alpha_x */
|
||||||
sc->data1 = sc->data1; /* alpha_y */
|
sc->data1 = sc->data0; /* alpha_y */
|
||||||
|
|
||||||
sc->type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID;
|
sc->type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID;
|
||||||
|
|
||||||
@@ -734,7 +734,7 @@ ccl_device int bsdf_microfacet_beckmann_aniso_setup(ShaderClosure *sc)
|
|||||||
ccl_device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc)
|
ccl_device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc)
|
||||||
{
|
{
|
||||||
sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* alpha_x */
|
sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* alpha_x */
|
||||||
sc->data1 = sc->data1; /* alpha_y */
|
sc->data1 = sc->data0; /* alpha_y */
|
||||||
|
|
||||||
sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID;
|
sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID;
|
||||||
return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
|
return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
|
||||||
|
@@ -151,13 +151,13 @@ BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannAniso, microfacet_beckmann_aniso)
|
|||||||
BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXRefraction, microfacet_ggx_refraction, microfacet_ggx, LABEL_GLOSSY)
|
BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXRefraction, microfacet_ggx_refraction, microfacet_ggx, LABEL_GLOSSY)
|
||||||
CLOSURE_FLOAT3_PARAM(MicrofacetGGXRefractionClosure, sc.N),
|
CLOSURE_FLOAT3_PARAM(MicrofacetGGXRefractionClosure, sc.N),
|
||||||
CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data0),
|
CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data0),
|
||||||
CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data1),
|
CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data2),
|
||||||
BSDF_CLOSURE_CLASS_END(MicrofacetGGXRefraction, microfacet_ggx_refraction)
|
BSDF_CLOSURE_CLASS_END(MicrofacetGGXRefraction, microfacet_ggx_refraction)
|
||||||
|
|
||||||
BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction, microfacet_beckmann, LABEL_GLOSSY)
|
BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction, microfacet_beckmann, LABEL_GLOSSY)
|
||||||
CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannRefractionClosure, sc.N),
|
CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannRefractionClosure, sc.N),
|
||||||
CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data0),
|
CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data0),
|
||||||
CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data1),
|
CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data2),
|
||||||
BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction)
|
BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction)
|
||||||
|
|
||||||
BSDF_CLOSURE_CLASS_BEGIN(HairReflection, hair_reflection, hair_reflection, LABEL_GLOSSY)
|
BSDF_CLOSURE_CLASS_BEGIN(HairReflection, hair_reflection, hair_reflection, LABEL_GLOSSY)
|
||||||
|
Reference in New Issue
Block a user