-
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
-
2025-10-25 Stable
released this
2025-10-25 13:30:53 +02:00 | 5 commits to main since this releaseShadertoy v1.1.0
Novedades
Nuevas Características
- Cambio de shaders en runtime: Ahora puedes cambiar entre shaders usando las teclas de cursor (flecha izquierda/derecha) sin tener que reiniciar la aplicación
- Toggle fullscreen mejorado: Nueva tecla F3 para alternar entre ventana y fullscreen, además del F11 existente
- Detección automática de shaders: El ejecutable escanea automáticamente el directorio
shaders/y carga todos los archivos.glsldisponibles - Título dinámico: El título de la ventana muestra el nombre del shader actual
Mejoras Técnicas
-
Sistema de build mejorado:
- Makefile actualizado con soporte completo para Windows, macOS y Linux
- Compilación de recursos de Windows con
windrespara incluir icono en el ejecutable - Target
windows_releasemejorado para generar releases listos para distribución
-
Recursos añadidos:
- Icono de aplicación (.ico para Windows, .icns para macOS, .png para Linux)
- Frameworks SDL3 incluidos para macOS (soporte arm64)
- DLLs de SDL3 para Windows en carpeta
release/
-
Rutas mejoradas: Sistema de resolución de rutas más robusto que busca shaders relativos al ejecutable y al directorio de trabajo
-
Configuración actualizada: Gitignore optimizado para permitir DLLs necesarias en
release/mientras ignora binarios compilados
Controles
- ESC — Salir de la aplicación
- F11 — Alternar fullscreen desktop
- F3 — Alternar entre ventana y fullscreen
- Cursor Izquierda — Shader anterior
- Cursor Derecha — Shader siguiente
Información Técnica
- OpenGL: 3.3 Core Profile
- Lenguaje: C++17
- Build System: CMake 3.14+ y Makefile
- Dependencias: SDL3, GLAD (incluido)
Plataformas Soportadas
- Windows 10/11 (x64)
- macOS 11+ (Apple Silicon y Intel)
- Linux (x64)
Instalación
Windows
- Descargar
shadertoy-[fecha]-win32-x64.zip - Extraer en cualquier carpeta
- Ejecutar
Shadertoy.exe
macOS
- Descargar
shadertoy-[fecha]-macos-apple-silicon.dmg - Abrir el DMG y arrastrar la aplicación a la carpeta Aplicaciones
- Primera vez: clic derecho > Abrir (bypass de Gatekeeper)
Linux
- Descargar
shadertoy-[fecha]-linux.tar.gz - Extraer:
tar -xzf shadertoy-[fecha]-linux.tar.gz - Ejecutar:
./shadertoy
Compilar desde Código Fuente
Con CMake (recomendado):
mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build .Con Makefile:
# Windows make windows_release # macOS make macos_release # Linux make linux_releaseUso
El ejecutable busca shaders en la carpeta
shaders/relativa a su ubicación:# Windows Shadertoy.exe # macOS/Linux ./shadertoyTambién puedes especificar un shader específico:
./shadertoy shaders/mi_shader.frag.glslPara ejecutar en fullscreen desde el inicio:
./shadertoy -F shaders/mi_shader.frag.glslNotas
- Los shaders deben estar en formato GLSL 330 core
- Se requieren los uniforms:
iResolution,iTime - Se espera función
mainImage(out vec4 fragColor, in vec2 fragCoord) - El directorio
shaders/incluye varios shaders de ejemplo
Créditos
- Desarrollado por JailDesigner
- Basado en SDL3 y OpenGL 3.3
- Inspirado en Shadertoy.com
Downloads
-
2025-10-21 Stable
released this
2025-10-21 20:06:05 +02:00 | 15 commits to main since this releaseVersión 1.0.0 — Lanzamiento inicial
Versión 1.0.0: lanzamiento inicial de Shadertoy SDL3 + OpenGL, herramienta minimal para ejecutar fragment shaders estilo Shadertoy en entornos locales usando SDL3 y GLAD con OpenGL 3.3.
Novedades y características principales
- Cargador de fragment shaders desde disco con búsqueda de rutas relativa y absoluta.
- Render loop con OpenGL 3.3 y GLAD, VAO VBO mínimo para un fullscreen quad.
- Uniformes estándar expuestos a los shaders
iResolution,
iTime, entrada de UV vía
vUV, salida en
FragColor. - Soporte de línea de comandos: pasar ruta del shader como primer argumento y
-F para iniciar en fullscreen nativo. - Atajos en ejecución:
Escape para salir y
F11 para alternar fullscreen desktop. - Colección de shaders convertidos desde Shadertoy como ejemplos en shaders slash.
- Empaquetado Windows con target de CMake package_windows que crea ZIP con ejecutable README md LICENSE shaders y DLLs desde release slash.
Correcciones y decisiones de diseño
- Baseline en OpenGL 3.3 por compatibilidad amplia y simplicidad; arquitectura preparada para detectar y migrar a versiones superiores en el futuro.
- APIs y eventos adaptados a SDL3 incluyendo lectura de displays nativa y toggle fullscreen consistente con SDL3.
- Manejo robusto de carga de shaders y mensajes de error con logs para facilitar depuración.
Instrucciones rápidas de despliegue
- Requisitos: CMake 3.14 o superior compilador con soporte C++17 SDL3 dev libs GLAD en third_party slash glad.
- Build pasos:
mkdir build
cd build
cmake dot dot
cmake --build dot --config Release - Ejecutar en ventana:
build slash bin slash shadertoy_sdl3 ../shaders slash tu_shader frag dot glsl - Ejecutar en fullscreen nativo:
build slash bin slash shadertoy_sdl3 -F ../shaders slash tu_shader frag dot glsl - Empaquetado Windows:
colocar SDL3 dot dll en release slash en la raíz del repo
cmake --build dot --config Release --target package_windows
resultado ZIP en build con nombre PROJECT_NAME dash ARCH win dot zip
Problemas conocidos
- Algunas macros o funciones de Shadertoy pueden requerir adaptación manual al GLSL 330.
- En macOS la mejor experiencia gráfica podría requerir backend Metal o cambios si se necesita OpenGL superior.
- El target de empaquetado Windows depende de PowerShell para crear el ZIP en entornos atípicos puede requerir ajuste.
Notas para desarrolladores
- Para portar a OpenGL 4 x o añadir compute shaders crear rama o flag de compilación y hacer detección runtime de versión GL.
- Para soportar multi pass BufferA B C implementar FBOs por buffer y pasar sus textures como iChannelN.
- Para hot reload de shaders vigilar timestamp del archivo y recompilar o recargar el shader en caliente.
Artefactos incluidos en este lanzamiento
- Ejecutable compilable desde CMake.
- Carpeta shaders con ejemplos adaptados.
- CMakeLists txt con target package_windows.
- README md con instrucciones de uso y compilación.
Downloads