diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2022-07-05 00:31:48 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2022-07-05 00:44:33 +0300 |
commit | f353f129ec3775dd744561889f70fd1503698b0b (patch) | |
tree | db29612f8420d8565f9668a1362a94dbeba20988 /intern/cycles/kernel/osl | |
parent | b2432861fa32574a0c53218997aa79d38a584206 (diff) |
Fix compilation with OSL, support for v2 is still missing
Diffstat (limited to 'intern/cycles/kernel/osl')
-rw-r--r-- | intern/cycles/kernel/osl/closures.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/intern/cycles/kernel/osl/closures.cpp b/intern/cycles/kernel/osl/closures.cpp index 39157f0b796..e80b7aa1fd5 100644 --- a/intern/cycles/kernel/osl/closures.cpp +++ b/intern/cycles/kernel/osl/closures.cpp @@ -27,7 +27,7 @@ #include "kernel/closure/bsdf_diffuse.h" #include "kernel/closure/bsdf_microfacet.h" #include "kernel/closure/bsdf_microfacet_beckmann.h" -#include "kernel/closure/bsdf_microfacet_multi.h" +#include "kernel/closure/bsdf_microfacet_glass.h" #include "kernel/closure/bsdf_oren_nayar.h" #include "kernel/closure/bsdf_reflection.h" #include "kernel/closure/bsdf_refraction.h" @@ -681,14 +681,7 @@ class MicrofacetMultiClosure : public CBSDFClosure { return NULL; } - MicrofacetExtra *extra = (MicrofacetExtra *)closure_alloc_extra(sd, sizeof(MicrofacetExtra)); - if (!extra) { - return NULL; - } - - bsdf->extra = extra; - bsdf->extra->color = color; - bsdf->extra->cspec0 = make_float3(0.0f, 0.0f, 0.0f); + bsdf->extra = NULL; return bsdf; } }; @@ -704,10 +697,12 @@ class MicrofacetMultiGGXClosure : public MicrofacetMultiClosure { return; } + const KernelGlobalsCPU *kg = sd->osl_globals; + bsdf->ior = 0.0f; bsdf->T = make_float3(0.0f, 0.0f, 0.0f); bsdf->alpha_y = bsdf->alpha_x; - sd->flag |= bsdf_microfacet_multi_ggx_setup(bsdf); + sd->flag |= bsdf_microfacet_multi_ggx_setup(kg, bsdf, sd, color); } }; @@ -734,8 +729,10 @@ class MicrofacetMultiGGXAnisoClosure : public MicrofacetMultiClosure { return; } + const KernelGlobalsCPU *kg = sd->osl_globals; + bsdf->ior = 0.0f; - sd->flag |= bsdf_microfacet_multi_ggx_setup(bsdf); + sd->flag |= bsdf_microfacet_multi_ggx_setup(kg, bsdf, sd, color); } }; @@ -768,9 +765,11 @@ class MicrofacetMultiGGXGlassClosure : public MicrofacetMultiClosure { return; } + const KernelGlobalsCPU *kg = sd->osl_globals; + bsdf->T = make_float3(0.0f, 0.0f, 0.0f); bsdf->alpha_y = bsdf->alpha_x; - sd->flag |= bsdf_microfacet_multi_ggx_glass_setup(bsdf); + sd->flag |= bsdf_microfacet_multi_ggx_glass_setup(kg, bsdf, sd, color); } }; @@ -833,9 +832,11 @@ class MicrofacetMultiGGXFresnelClosure : public MicrofacetMultiFresnelClosure { return; } + const KernelGlobalsCPU *kg = sd->osl_globals; + bsdf->T = make_float3(0.0f, 0.0f, 0.0f); bsdf->alpha_y = bsdf->alpha_x; - sd->flag |= bsdf_microfacet_multi_ggx_fresnel_setup(bsdf, sd); + sd->flag |= bsdf_microfacet_multi_ggx_fresnel_setup(kg, bsdf, sd); } }; @@ -865,7 +866,9 @@ class MicrofacetMultiGGXAnisoFresnelClosure : public MicrofacetMultiFresnelClosu return; } - sd->flag |= bsdf_microfacet_multi_ggx_fresnel_setup(bsdf, sd); + const KernelGlobalsCPU *kg = sd->osl_globals; + + sd->flag |= bsdf_microfacet_multi_ggx_fresnel_setup(kg, bsdf, sd); } }; @@ -901,9 +904,11 @@ class MicrofacetMultiGGXGlassFresnelClosure : public MicrofacetMultiFresnelClosu return; } + const KernelGlobalsCPU *kg = sd->osl_globals; + bsdf->T = make_float3(0.0f, 0.0f, 0.0f); bsdf->alpha_y = bsdf->alpha_x; - sd->flag |= bsdf_microfacet_multi_ggx_glass_fresnel_setup(bsdf, sd); + sd->flag |= bsdf_microfacet_multi_ggx_glass_fresnel_setup(kg, bsdf, sd); } }; |