• 2025-11-16 Stable

    JailDesigner released this 2025-11-16 19:19:19 +01:00 | 0 commits to main since this release

    Shadertoy 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]"

    Sistema de Rendering

    • Self-feedback system para shaders que requieren frame anterior
      • Metadata: // iChannel3: self habilita feedback automático
      • Gestión automática de FBO y texturas
      • Render loop adaptativo (1-pass vs 2-pass según shader)
    • Soporte de audio con jail_audio
      • Música de fondo desde data/music/
      • Integrado en builds de release

    Shaders Incluidos

    Shaders funcionales:

    • test.frag.glsl - Shader de prueba básico
    • fractal_pyramid.frag.glsl - Pirámide fractal animada
    • seascape.frag.glsl - Océano realista (TDM)
    • creation.frac.glsl - Shader creativo
    • kishimisu.frag.glsl - Shader de Kishimisu
    • octograms.frag.glsl - Patrones geométricos
    • dbz.frag.glsl - Dragon Ball Z inspired
    • cineshader_lava.frag.glsl - Efecto de lava
    • water.glsl - Agua con reflejos (diatribes) NUEVO - Arreglado overflow
    • remember.frag.glsl - Cerebro difuso (diatribes) - Arreglado overflow
    • just_another_cube.frag.glsl - Cubo animado
    • cube_lines.frag.glsl - Cubo con líneas refractadas (Danil) NUEVO

    Shaders eliminados:

    • voxel_descent.frag.glsl - Incompatible (múltiples puntos de overflow, no viable sin degradar calidad)

    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.cpp a APP_SOURCES
    • Makefile: Añadido -Ithird_party a INCLUDES
    • 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:

    1. iResolution: Shadertoy usa vec3(w, h, w/h), este proyecto usa vec2(w, h)

      • Solución: vec3 r = vec3(iResolution.xy, iResolution.x/iResolution.y);
    2. Inicialización de variables: OpenGL nativo requiere inicialización explícita

      • vec3 col;
      • vec3 col = vec3(0.0);
    3. 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))
    4. 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 shader
    

    Agradecimientos

    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

    JailDesigner released this 2025-10-25 13:30:53 +02:00 | 5 commits to main since this release

    Shadertoy 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 .glsl disponibles
    • 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 windres para incluir icono en el ejecutable
      • Target windows_release mejorado 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

    1. Descargar shadertoy-[fecha]-win32-x64.zip
    2. Extraer en cualquier carpeta
    3. Ejecutar Shadertoy.exe

    macOS

    1. Descargar shadertoy-[fecha]-macos-apple-silicon.dmg
    2. Abrir el DMG y arrastrar la aplicación a la carpeta Aplicaciones
    3. Primera vez: clic derecho > Abrir (bypass de Gatekeeper)

    Linux

    1. Descargar shadertoy-[fecha]-linux.tar.gz
    2. Extraer: tar -xzf shadertoy-[fecha]-linux.tar.gz
    3. 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_release
    

    Uso

    El ejecutable busca shaders en la carpeta shaders/ relativa a su ubicación:

    # Windows
    Shadertoy.exe
    
    # macOS/Linux
    ./shadertoy
    

    También puedes especificar un shader específico:

    ./shadertoy shaders/mi_shader.frag.glsl
    

    Para ejecutar en fullscreen desde el inicio:

    ./shadertoy -F shaders/mi_shader.frag.glsl
    

    Notas

    • 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

    JailDesigner released this 2025-10-21 20:06:05 +02:00 | 15 commits to main since this release

    Versió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