From be284e8074c04bb8948b9682b2bec8267ce3f50f Mon Sep 17 00:00:00 2001 From: yum Date: Sun, 30 Nov 2025 17:20:39 -0800 Subject: begin scaling sdf ssn by alpha blend amount --- decals.cginc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'decals.cginc') diff --git a/decals.cginc b/decals.cginc index bb4a0bd..1fb2e7d 100644 --- a/decals.cginc +++ b/decals.cginc @@ -207,6 +207,14 @@ float3 calculateSdfSsn(DecalParams params, float2 decal_uv, float4 decal_albedo) decal_albedo *= params.color; \ } +#define APPLY_DECAL_SDF_SSN_ON(i, albedo, normal_tangent, metallic, smoothness, emission, params) \ + { \ + float3 sdf_normal_ts = calculateSdfSsn(params, decal_uv, decal_albedo); \ + sdf_normal_ts.xy *= 1.0f - albedo.a; \ + sdf_normal_ts = normalize(sdf_normal_ts); \ + normal_tangent = blendNormalsHill12(normal_tangent, sdf_normal_ts); \ + } + #define APPLY_DECAL_CLAMP_ON(i, albedo, normal_tangent, metallic, smoothness, emission, params) \ { \ float eps = 1e-4; \ @@ -261,12 +269,6 @@ float3 calculateSdfSsn(DecalParams params, float2 decal_uv, float4 decal_albedo) #define APPLY_DECAL_REFLECTIONS_OFF(i, albedo, normal_tangent, metallic, smoothness, emission, params) {} -#define APPLY_DECAL_SDF_SSN_ON(i, albedo, normal_tangent, metallic, smoothness, emission, params) \ - { \ - float3 sdf_normal_ts = calculateSdfSsn(params, decal_uv, decal_albedo); \ - normal_tangent = blendNormalsHill12(normal_tangent, sdf_normal_ts); \ - } - #define APPLY_DECAL_SDF_SSN_OFF(i, albedo, normal_tangent, metallic, smoothness, emission, params) {} void applyDecals(in v2f i, inout float4 albedo, inout float3 normal_tangent, inout float metallic, inout float smoothness, inout float3 emission) { -- cgit v1.2.3