• 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