summaryrefslogtreecommitdiff
path: root/tools/shadertoy
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-10 18:26:38 +0100
committerskal <pascal.massimino@gmail.com>2026-02-10 18:26:38 +0100
commitcb5cdbfb55cfa0185b2489ada75ff846f8aeab02 (patch)
tree91f5414631bf849e9e5f3bf46f72ea383cda6373 /tools/shadertoy
parent28b6d0940497d38bc1b1829f4fb7266a54636ee6 (diff)
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<f32>(p.x, uniforms.resolution.y - p.y); ``` This ensures ShaderToy shaders display right-side up. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'tools/shadertoy')
-rwxr-xr-xtools/shadertoy/convert_shadertoy.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/shadertoy/convert_shadertoy.py b/tools/shadertoy/convert_shadertoy.py
index 48201bc..2f402cc 100755
--- a/tools/shadertoy/convert_shadertoy.py
+++ b/tools/shadertoy/convert_shadertoy.py
@@ -113,9 +113,11 @@ def convert_shadertoy_to_wgsl(shader_code):
# Indent main body
indented_main = '\n'.join(' ' + line if line.strip() else '' for line in converted_main.split('\n'))
- # Build fragment function
+ # Build fragment function with Y-flip for ShaderToy convention
fragment = f"""@fragment fn fs_main(@builtin(position) p: vec4<f32>) -> @location(0) vec4<f32> {{
- let q = p.xy / uniforms.resolution;
+ // Flip Y to match ShaderToy convention (origin at bottom-left)
+ let flipped = vec2<f32>(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;