Commit: 56b865347f9c49876a5288e8b29b4831d474432c Author: Lukas Stockner Date: Mon Jul 4 23:31:48 2022 +0200 Branches: principled-v2 https://developer.blender.org/rB56b865347f9c49876a5288e8b29b4831d474432c
Clamp LUT results to 0..1 range =================================================================== M intern/cycles/kernel/closure/bsdf_microfacet_util.h M intern/cycles/kernel/closure/bsdf_principled_sheen.h =================================================================== diff --git a/intern/cycles/kernel/closure/bsdf_microfacet_util.h b/intern/cycles/kernel/closure/bsdf_microfacet_util.h index 4915807d275..9e3f2d3913e 100644 --- a/intern/cycles/kernel/closure/bsdf_microfacet_util.h +++ b/intern/cycles/kernel/closure/bsdf_microfacet_util.h @@ -109,7 +109,7 @@ ccl_device_forceinline float microfacet_ggx_glass_E(float mu, float rough, float float c = lerp(table[ior_i1][rough_i][mu_i], table[ior_i1][rough_i][mu_i1], mu); float d = lerp(table[ior_i1][rough_i1][mu_i], table[ior_i1][rough_i1][mu_i1], mu); - return lerp(lerp(a, b, rough), lerp(c, d, rough), ior); + return saturatef(lerp(lerp(a, b, rough), lerp(c, d, rough), ior)); } ccl_device_forceinline float microfacet_ggx_dielectric_E(float mu, float rough, float ior) @@ -142,7 +142,7 @@ ccl_device_forceinline float microfacet_ggx_dielectric_E(float mu, float rough, float c = lerp(table[ior_i1][rough_i][mu_i], table[ior_i1][rough_i][mu_i1], mu); float d = lerp(table[ior_i1][rough_i1][mu_i], table[ior_i1][rough_i1][mu_i1], mu); - return lerp(lerp(a, b, rough), lerp(c, d, rough), ior); + return saturatef(lerp(lerp(a, b, rough), lerp(c, d, rough), ior)); } ccl_device_forceinline float microfacet_ggx_E(float mu, float rough) @@ -160,7 +160,7 @@ ccl_device_forceinline float microfacet_ggx_E(float mu, float rough) float a = lerp(table_ggx_E[rough_i][mu_i], table_ggx_E[rough_i][mu_i1], mu); float b = lerp(table_ggx_E[rough_i1][mu_i], table_ggx_E[rough_i1][mu_i1], mu); - return lerp(a, b, rough); + return saturatef(lerp(a, b, rough)); } ccl_device_forceinline float microfacet_ggx_E_avg(float rough) @@ -169,7 +169,7 @@ ccl_device_forceinline float microfacet_ggx_E_avg(float rough) int rough_i = min(31, (int)rough); int rough_i1 = min(31, rough_i + 1); rough -= rough_i; - return lerp(table_ggx_E_avg[rough_i], table_ggx_E_avg[rough_i1], rough); + return saturatef(lerp(table_ggx_E_avg[rough_i], table_ggx_E_avg[rough_i1], rough)); } ccl_device_inline float3 metallic_Fss(float3 F0, float3 F90, float falloff) diff --git a/intern/cycles/kernel/closure/bsdf_principled_sheen.h b/intern/cycles/kernel/closure/bsdf_principled_sheen.h index 09a82553296..250f591f650 100644 --- a/intern/cycles/kernel/closure/bsdf_principled_sheen.h +++ b/intern/cycles/kernel/closure/bsdf_principled_sheen.h @@ -118,7 +118,7 @@ ccl_device_forceinline float sheen_v2_E(float mu, float rough) float a = lerp(table_sheen_E[rough_i][mu_i], table_sheen_E[rough_i][mu_i1], mu); float b = lerp(table_sheen_E[rough_i1][mu_i], table_sheen_E[rough_i1][mu_i1], mu); - return lerp(a, b, rough); + return saturatef(lerp(a, b, rough)); } ccl_device int bsdf_principled_sheen_setup(ccl_private const ShaderData *sd, _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
