diff options
| author | nervous-inhuman <8982584+nervous-inhuman@users.noreply.github.com> | 2025-07-26 03:33:16 +0200 |
|---|---|---|
| committer | Lywx <kiritodev01@gmail.com> | 2025-07-25 19:39:48 -0600 |
| commit | a48909b7ea198b08be3ee85db6bd945b1a121fdf (patch) | |
| tree | ae74c43d52201c04737d5f29a08c94164c8c6a12 | |
| parent | 79f437ab30708d8b514b321f8ba04856128fa493 (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.metal | 6 |
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 +} |
