From a7102ab7428f79774b8e4958fc01b82184c350f4 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Mon, 23 Feb 2026 07:34:29 -0800 Subject: [PATCH] Fix foliage DXT black fringe, insect depth occlusion, and ambient creature animation - Replace dark edge RGB on alpha-tested foliage with mip-4 average color proportional to alpha (low alpha = low trust in original RGB) - Raise foliage alpha cutoff to 0.4 and remove dither band for cleaner edges - Disable depth test on insect particles so they don't vanish behind foliage - Exempt dragonflies/butterflies/moths from foliage animation freeze --- assets/shaders/m2.frag.glsl | 31 +++++++++++++++---------------- assets/shaders/m2.frag.spv | Bin 17124 -> 16180 bytes src/rendering/swim_effects.cpp | 4 ++-- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/assets/shaders/m2.frag.glsl b/assets/shaders/m2.frag.glsl index 9814a99b..36b0fc2c 100644 --- a/assets/shaders/m2.frag.glsl +++ b/assets/shaders/m2.frag.glsl @@ -66,27 +66,26 @@ void main() { bool isFoliage = (alphaTest == 2); + // Fix DXT fringe: transparent edge texels have garbage (black) RGB. + // At low alpha the original RGB is untrustworthy — replace with the + // averaged color from nearby opaque texels (high mip). The lower + // the alpha the more we distrust the original color. + if (alphaTest != 0 && texColor.a > 0.01 && texColor.a < 1.0) { + vec3 mipColor = textureLod(uTexture, TexCoord, 4.0).rgb; + // trust = 0 at alpha 0, trust = 1 at alpha ~0.9 + float trust = smoothstep(0.0, 0.9, texColor.a); + texColor.rgb = mix(mipColor, texColor.rgb, trust); + } + float alphaCutoff = 0.5; if (alphaTest == 2) { - // Vegetation cutout: lower threshold to preserve leaf coverage at grazing angles. - alphaCutoff = 0.33; + alphaCutoff = 0.4; } else if (alphaTest == 3) { - // Ground detail clutter (grass/small cards) needs softer clipping. - alphaCutoff = 0.20; + alphaCutoff = 0.25; } else if (alphaTest != 0) { - alphaCutoff = 0.35; + alphaCutoff = 0.4; } - if (alphaTest == 2) { - float alpha = texColor.a; - float softBand = 0.15; - if (alpha < (alphaCutoff - softBand)) discard; - if (alpha < alphaCutoff) { - ivec2 p = ivec2(gl_FragCoord.xy); - float threshold = bayerDither4x4(p); - float keep = clamp((alpha - (alphaCutoff - softBand)) / softBand, 0.0, 1.0); - if (threshold > keep) discard; - } - } else if (alphaTest != 0 && texColor.a < alphaCutoff) { + if (alphaTest != 0 && texColor.a < alphaCutoff) { discard; } if (colorKeyBlack != 0) { diff --git a/assets/shaders/m2.frag.spv b/assets/shaders/m2.frag.spv index fef212fa22072a2521581ff036519e1b709a0af1..7deda700828b59b8c879ff3a210036ad2e021a26 100644 GIT binary patch literal 16180 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 diff --git a/src/rendering/swim_effects.cpp b/src/rendering/swim_effects.cpp index 804917c3..d587280b 100644 --- a/src/rendering/swim_effects.cpp +++ b/src/rendering/swim_effects.cpp @@ -180,7 +180,7 @@ bool SwimEffects::initialize(VkContext* ctx, VkDescriptorSetLayout perFrameLayou .setVertexInput({binding}, attrs) .setTopology(VK_PRIMITIVE_TOPOLOGY_POINT_LIST) .setRasterization(VK_POLYGON_MODE_FILL, VK_CULL_MODE_NONE) - .setDepthTest(true, false, VK_COMPARE_OP_LESS) + .setDepthTest(false, false, VK_COMPARE_OP_LESS) .setColorBlendAttachment(PipelineBuilder::blendAlpha()) .setMultisample(vkCtx->getMsaaSamples()) .setLayout(insectPipelineLayout) @@ -414,7 +414,7 @@ void SwimEffects::recreatePipelines() { .setVertexInput({binding}, attrs) .setTopology(VK_PRIMITIVE_TOPOLOGY_POINT_LIST) .setRasterization(VK_POLYGON_MODE_FILL, VK_CULL_MODE_NONE) - .setDepthTest(true, false, VK_COMPARE_OP_LESS) + .setDepthTest(false, false, VK_COMPARE_OP_LESS) .setColorBlendAttachment(PipelineBuilder::blendAlpha()) .setMultisample(vkCtx->getMsaaSamples()) .setLayout(insectPipelineLayout)