summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornervous-inhuman <8982584+nervous-inhuman@users.noreply.github.com>2025-07-26 03:33:16 +0200
committerLywx <kiritodev01@gmail.com>2025-07-25 19:39:48 -0600
commita48909b7ea198b08be3ee85db6bd945b1a121fdf (patch)
treeae74c43d52201c04737d5f29a08c94164c8c6a12
parent79f437ab30708d8b514b321f8ba04856128fa493 (diff)
fix(shader/metal): correct noise coords and frame input in fragmentShader
- Replace undefined `screenSpace.xy * noise_scale` with `in.position.xy * frameUniforms.noiseScale` - Replace undefined `noise_frame` with `float(frameUniforms.frameCount)` - This resolves build failures (undeclared identifiers, nil vertexFunction) when driving over sand Fixes: shader compilation errors and Metal pipeline validation assertion
-rw-r--r--assets/shaders/metal/default.shader.metal6
1 files changed, 3 insertions, 3 deletions
diff --git a/assets/shaders/metal/default.shader.metal b/assets/shaders/metal/default.shader.metal
index 9a59fb87e..846a68e5f 100644
--- a/assets/shaders/metal/default.shader.metal
+++ b/assets/shaders/metal/default.shader.metal
@@ -273,8 +273,8 @@ fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUn
@end
@if(o_alpha && o_noise)
- float2 coords = screenSpace.xy * noise_scale;
- texel.w *= round(saturate(random(float3(floor(coords), noise_frame)) + texel.w - 0.5));
+ float2 coords = in.position.xy * frameUniforms.noiseScale;
+ texel.w *= round(saturate(random(float3(floor(coords), float(frameUniforms.frameCount))) + texel.w - 0.5));
@end
@if(o_alpha)
@@ -288,4 +288,4 @@ fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUn
@else
return float4(texel, 1.0);
@end
-} \ No newline at end of file
+}