summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-05-16 18:29:17 -0700
committeryum <yum.food.vr@gmail.com>2025-05-16 18:29:17 -0700
commit5c54a56dd2416aaf82d7f5d56063c0a306574d19 (patch)
tree4bf194dc0a40e02d568fa7ca563b9727b3bf6297
parent2be6be416f621470e65b193f675c9693c25e35c5 (diff)
Update how decal scale/offset is used
-rw-r--r--2ner.cginc1
-rw-r--r--decals.cginc8
2 files changed, 4 insertions, 5 deletions
diff --git a/2ner.cginc b/2ner.cginc
index d4ea269..f37a45e 100644
--- a/2ner.cginc
+++ b/2ner.cginc
@@ -272,7 +272,6 @@ float4 frag(v2f i, uint facing : SV_IsFrontFace
#if defined(FORWARD_BASE_PASS) || defined(FORWARD_ADD_PASS)
applyMatcapsAndRimLighting(i, pbr, l);
- //pbr.albedo.rgb = max(0, pbr.albedo.rgb);
l.diffuse = max(0, l.diffuse);
l.specular = max(0, l.specular);
#endif
diff --git a/decals.cginc b/decals.cginc
index 706f297..e40b9f1 100644
--- a/decals.cginc
+++ b/decals.cginc
@@ -139,7 +139,7 @@ float4 getCmykWarpingPlanesColor(DecalParams params, float2 uv) {
\
float2 raw_decal_uv = get_uv_by_channel(i, params.uv_channel); \
float2 decal_uv = raw_decal_uv; \
- decal_uv = decal_uv * params.mainTex_ST.xy + params.mainTex_ST.zw; \
+ decal_uv = ((decal_uv - 0.5) - params.mainTex_ST.zw) * params.mainTex_ST.xy + 0.5; \
decal_uv = mul(decal_rot, decal_uv - 0.5) + 0.5; \
decal_uv = (params.tiling_mode == DECAL_TILING_MODE_CLAMP ? saturate(decal_uv) : decal_uv);
@@ -157,7 +157,7 @@ float4 getCmykWarpingPlanesColor(DecalParams params, float2 uv) {
#define APPLY_DECAL_SEC01_SDF_OFF(i, albedo, normal_tangent, metallic, smoothness, params) \
float4 decal_albedo; \
{ \
- decal_albedo = params.mainTex.Sample(linear_repeat_s, decal_uv); \
+ decal_albedo = params.mainTex.Sample(trilinear_repeat_s, decal_uv); \
decal_albedo *= params.color; \
}
@@ -186,7 +186,7 @@ float4 getCmykWarpingPlanesColor(DecalParams params, float2 uv) {
#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.normalTex.Sample(trilinear_repeat_s, decal_uv), \
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);
@@ -194,7 +194,7 @@ float4 getCmykWarpingPlanesColor(DecalParams params, float2 uv) {
#define APPLY_DECAL_SEC05_NORMAL_OFF(i, albedo, normal_tangent, metallic, smoothness, params) {}
#define APPLY_DECAL_SEC06_REFLECTIONS_ON(i, albedo, normal_tangent, metallic, smoothness, params) \
- float4 metallic_gloss = params.metallicGlossMap.Sample(linear_repeat_s, decal_uv); \
+ float4 metallic_gloss = params.metallicGlossMap.Sample(trilinear_repeat_s, decal_uv); \
metallic = lerp(metallic, metallic_gloss.r * params.metallic_value, decal_albedo.a); \
smoothness = lerp(smoothness, metallic_gloss.a * params.smoothness_value, decal_albedo.a);