From 38f9f21389ed374e4206602e0ca0111bda7251ef Mon Sep 17 00:00:00 2001 From: yum Date: Sun, 30 Nov 2025 17:11:11 -0800 Subject: remove nan catch from sdf ssn code - was causing issues --- decals.cginc | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'decals.cginc') diff --git a/decals.cginc b/decals.cginc index 4161b2c..bb4a0bd 100644 --- a/decals.cginc +++ b/decals.cginc @@ -157,7 +157,7 @@ float4 getCmykWarpingPlanesColor(DecalParams params, float2 uv) { } // Calculate normal vector from an SDF using screen-space derivatives. -float3 applyDecalSdfSsn(DecalParams params, float2 decal_uv, float4 decal_albedo) { +float3 calculateSdfSsn(DecalParams params, float2 decal_uv, float4 decal_albedo) { float sdf_val = params.mainTex.SampleBias(trilinear_aniso4_repeat_s, decal_uv, params.mip_bias).r; sdf_val = params.sdf_invert ? 1 - sdf_val : sdf_val; @@ -169,12 +169,8 @@ float3 applyDecalSdfSsn(DecalParams params, float2 decal_uv, float4 decal_albedo float det = uv_dx.x * uv_dy.y - uv_dx.y * uv_dy.x; float2 sdf_grad_uv; - if (abs(det) < 1e-6) { - sdf_grad_uv = float2(0,0); - } else { - sdf_grad_uv.x = (sdf_dx * uv_dy.y - sdf_dy * uv_dx.y) / det; - sdf_grad_uv.y = (sdf_dy * uv_dx.x - sdf_dx * uv_dy.x) / det; - } + sdf_grad_uv.x = (sdf_dx * uv_dy.y - sdf_dy * uv_dx.y) / det; + sdf_grad_uv.y = (sdf_dy * uv_dx.x - sdf_dx * uv_dy.x) / det; float2 scaled_grad = sdf_grad_uv * params.sdf_ssn_strength * decal_albedo.a * params.opacity; @@ -267,7 +263,7 @@ float3 applyDecalSdfSsn(DecalParams params, float2 decal_uv, float4 decal_albedo #define APPLY_DECAL_SDF_SSN_ON(i, albedo, normal_tangent, metallic, smoothness, emission, params) \ { \ - float3 sdf_normal_ts = applyDecalSdfSsn(params, decal_uv, decal_albedo); \ + float3 sdf_normal_ts = calculateSdfSsn(params, decal_uv, decal_albedo); \ normal_tangent = blendNormalsHill12(normal_tangent, sdf_normal_ts); \ } -- cgit v1.2.3