-
2025-11-16 Stable
released this
2025-11-16 19:19:19 +01:00 | 0 commits to main since this releaseShadertoy Release Notes
Versión 2025-11-16
Nuevas Características
Sistema de Interfaz
- Contador de FPS en barra de título (actualización cada 500ms)
- Toggle VSync con tecla F4 (ON/OFF visible en título)
- Cambio de shaders en runtime con flechas ←/→
- Sistema de metadata automático:
- Parse de comentarios
// Name:y// Author:en shaders - Visualización automática en barra de título: "Shadertoy (Nombre by Autor) - XX FPS [VSync ON]"
- Parse de comentarios
Sistema de Rendering
- Self-feedback system para shaders que requieren frame anterior
- Metadata:
// iChannel3: selfhabilita feedback automático - Gestión automática de FBO y texturas
- Render loop adaptativo (1-pass vs 2-pass según shader)
- Metadata:
- Soporte de audio con jail_audio
- Música de fondo desde
data/music/ - Integrado en builds de release
- Música de fondo desde
Shaders Incluidos
Shaders funcionales:
test.frag.glsl- Shader de prueba básicofractal_pyramid.frag.glsl- Pirámide fractal animadaseascape.frag.glsl- Océano realista (TDM)creation.frac.glsl- Shader creativokishimisu.frag.glsl- Shader de Kishimisuoctograms.frag.glsl- Patrones geométricosdbz.frag.glsl- Dragon Ball Z inspiredcineshader_lava.frag.glsl- Efecto de lavawater.glsl- Agua con reflejos (diatribes) ✨ NUEVO - Arreglado overflowremember.frag.glsl- Cerebro difuso (diatribes) - Arreglado overflowjust_another_cube.frag.glsl- Cubo animadocube_lines.frag.glsl- Cubo con líneas refractadas (Danil) ✨ NUEVO
Shaders eliminados:
- Incompatible (múltiples puntos de overflow, no viable sin degradar calidad)voxel_descent.frag.glsl
Correcciones de Bugs
Shaders - Overflow Protection
- water.glsl: Añadida protección contra división por valores cercanos a cero
- Epsilon (0.001) + clamp (100.0) para prevenir artifacts de color azul
- Permite brillo normal mientras previene valores extremos
- remember.frag.glsl: Similar protección contra overflow en términos brillantes
Build System
- Makefile: Añadido
jail_audio.cppaAPP_SOURCES - Makefile: Añadido
-Ithird_partyaINCLUDES - Release targets: Añadida copia de carpeta
data/en Windows/macOS/Linux releases- Necesario para música de fondo
- macOS release: Corregido error de compilación por archivos faltantes
Notas de Compatibilidad
Diferencias con Shadertoy WebGL
Algunos shaders de Shadertoy pueden requerir ajustes al portarlos:
-
iResolution: Shadertoy usa
vec3(w, h, w/h), este proyecto usavec2(w, h)- Solución:
vec3 r = vec3(iResolution.xy, iResolution.x/iResolution.y);
- Solución:
-
Inicialización de variables: OpenGL nativo requiere inicialización explícita
- ❌
vec3 col; - ✅
vec3 col = vec3(0.0);
- ❌
-
División por valores pequeños: Puede causar overflow y artifacts de color
- ❌
color / length(pos) - ✅
color / max(length(pos), 0.001) - Mejor:
min(color / max(length(pos), 0.001), vec4(100.0))
- ❌
-
iChannel0-3: No soportado excepto self-feedback con
// iChannel3: self
Plataformas
- Windows (x64): Incluye SDL3.dll
- macOS (Apple Silicon): App bundle con SDL3.framework embebido
- Linux (x64): Binario estático con SDL3
Requisitos
- SDL3 development libraries
- OpenGL 3.3+ compatible GPU
- C++17 compiler
- CMake 3.16+ (para desarrollo)
Instrucciones de Uso
# Ejecutar shader específico ./shadertoy shaders/cube_lines.frag.glsl # Fullscreen ./shadertoy -F shaders/seascape.frag.glsl # Teclas # ESC - Salir # F3 - Toggle fullscreen # F4 - Toggle VSync # ←→ - Cambiar shaderAgradecimientos
Shaders portados de Shadertoy:
- diatribes (FabriceNeyret2): water, remember
- TDM: seascape
- Danil: cube_lines
- Y otros autores citados en metadata de cada shader
Link del proyecto: https://gitea.sustancia.synology.me/JailDesigner/shadertoy
Downloads