summaryrefslogtreecommitdiffstats
path: root/decals.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-04-11 19:17:06 -0700
committeryum <yum.food.vr@gmail.com>2025-04-11 19:17:06 -0700
commita522e7738d75e84cc1ee1491a098421622ef1918 (patch)
treec08951cdd65f3eccadc17d57d97ea24d7b0b750f /decals.cginc
parent77ae276b2b6e47d0de8bf0d9c4bbafd4212135b1 (diff)
add rough ability to nudge tessellation heightmap direction
Diffstat (limited to 'decals.cginc')
-rw-r--r--decals.cginc10
1 files changed, 5 insertions, 5 deletions
diff --git a/decals.cginc b/decals.cginc
index c120c79..59ab085 100644
--- a/decals.cginc
+++ b/decals.cginc
@@ -71,7 +71,6 @@ struct DecalParams {
sd = params.sdf_invert ? 1 - sd : sd; \
sd = (sd > params.sdf_threshold ? 1 : 0); \
decal_albedo = params.color * sd; \
- decal_albedo.a *= params.opacity; \
}
#define APPLY_DECAL_SEC01_SDF_OFF(i, albedo, normal_tangent, metallic, smoothness, params) \
@@ -79,7 +78,6 @@ struct DecalParams {
{ \
decal_albedo = params.mainTex.Sample(linear_repeat_s, decal_uv); \
decal_albedo *= params.color; \
- decal_albedo.a *= params.opacity; \
}
#define APPLY_DECAL_SEC02_CLAMP_ON(i, albedo, normal_tangent, metallic, smoothness, params) \
@@ -99,16 +97,18 @@ struct DecalParams {
float decal_mask = 1;
#define APPLY_DECAL_SEC04_BLEND_MODE_ALPHA_BLEND(i, albedo, normal_tangent, metallic, smoothness, params) \
+ decal_albedo.a = lerp(0, decal_albedo.a, params.opacity); \
albedo = alphaBlend(albedo, decal_albedo);
#define APPLY_DECAL_SEC04_BLEND_MODE_REPLACE(i, albedo, normal_tangent, metallic, smoothness, params) \
- albedo = lerp(albedo, decal_albedo, decal_mask);
+ albedo = lerp(albedo, decal_albedo, decal_mask * params.opacity);
#define APPLY_DECAL_SEC05_NORMAL_ON(i, albedo, normal_tangent, metallic, smoothness, params) \
float3 decal_normal = UnpackScaleNormal( \
params.normalTex.Sample(linear_repeat_s, decal_uv), \
- params.normal_scale * decal_albedo.a); \
- normal_tangent = lerp(normal_tangent, decal_normal, decal_albedo.a);
+ params.normal_scale * decal_albedo.a * params.opacity); \
+ normal_tangent = blendNormalsHill12(normal_tangent, decal_normal);
+ //normal_tangent = lerp(normal_tangent, decal_normal, decal_albedo.a * params.opacity);
#define APPLY_DECAL_SEC05_NORMAL_OFF(i, albedo, normal_tangent, metallic, smoothness, params) {}