summaryrefslogtreecommitdiffstats
path: root/decals.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-11-30 17:20:39 -0800
committeryum <yum.food.vr@gmail.com>2025-11-30 17:20:39 -0800
commitbe284e8074c04bb8948b9682b2bec8267ce3f50f (patch)
tree5e77bec0bed58b8f781ae05c74ead486144c6ca0 /decals.cginc
parent38f9f21389ed374e4206602e0ca0111bda7251ef (diff)
begin scaling sdf ssn by alpha blend amount
Diffstat (limited to 'decals.cginc')
-rw-r--r--decals.cginc14
1 files changed, 8 insertions, 6 deletions
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) {