diff options
| author | yum <yum.food.vr@gmail.com> | 2025-11-30 17:20:39 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-11-30 17:20:39 -0800 |
| commit | be284e8074c04bb8948b9682b2bec8267ce3f50f (patch) | |
| tree | 5e77bec0bed58b8f781ae05c74ead486144c6ca0 | |
| parent | 38f9f21389ed374e4206602e0ca0111bda7251ef (diff) | |
begin scaling sdf ssn by alpha blend amount
| -rw-r--r-- | decals.cginc | 14 |
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) {
|
