From cb5cdbfb55cfa0185b2489ada75ff846f8aeab02 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 10 Feb 2026 18:26:38 +0100 Subject: fix: Flip Y-axis to match ShaderToy coordinate convention ShaderToy uses bottom-left origin with Y-up, but our system uses top-left origin with Y-down. Added Y-flip in fragment shader to correctly display ShaderToy effects. **Changes:** - workspaces/main/shaders/scene1.wgsl: Flip Y before coordinate conversion - tools/shadertoy/convert_shadertoy.py: Generate Y-flip in all conversions **Formula:** ```wgsl let flipped = vec2(p.x, uniforms.resolution.y - p.y); ``` This ensures ShaderToy shaders display right-side up. Co-Authored-By: Claude Sonnet 4.5 --- workspaces/main/shaders/scene1.wgsl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'workspaces') diff --git a/workspaces/main/shaders/scene1.wgsl b/workspaces/main/shaders/scene1.wgsl index b0ec2ab..7af3811 100644 --- a/workspaces/main/shaders/scene1.wgsl +++ b/workspaces/main/shaders/scene1.wgsl @@ -246,7 +246,9 @@ fn effect(p: vec2) -> vec3 { } @fragment fn fs_main(@builtin(position) p: vec4) -> @location(0) vec4 { - let q = p.xy / uniforms.resolution; + // Flip Y to match ShaderToy convention (origin at bottom-left) + let flipped = vec2(p.x, uniforms.resolution.y - p.y); + let q = flipped / uniforms.resolution; var coord = -1.0 + 2.0 * q; coord.x *= uniforms.resolution.x / uniforms.resolution.y; var col = effect(coord); -- cgit v1.2.3