ターミナルエミュレータGhosttyのシェーダ機能を試してみました。

以下のサイトのコードがそのまま利用できました。
https://www.shadertoy.com/

端末としては使えていませんが綺麗にレンダリングされてアニメーションします。

テクスチャの読み込ませ方がわかりません。。。

環境

  • Arch Linux
  • GNOME 47.5
  • ghostty 1.1.2

構築1

  1. 以下のサイトのサンプルコードをファイルに保存します。
    https://www.shadertoy.com/

    URL: https://www.shadertoy.com/view/Xds3zN
    パス: $HOME/.config/ghostty/shaders/raymarching_primitives.glsl
  2. Ghosttyの設定ファイルでGLSLファイルを指定します。
    $HOME/.config/ghostty/config
    custom-shader = ./shaders/raymarching_primitives.glsl

構築2

  1. 以下のサイトのサンプルコードをファイルに保存します。
    URL: https://www.shadertoy.com/view/Ms2XzK
    パス: $HOME/.config/ghostty/shaders/nyancat.glsl
  2. 最後の方のコードを修正します
    $HOME/.config/ghostty/shaders/nyancat.glsl
        vec4 rainbow = getRainbowAt(uv, nyan_p);
    col = mix(col, rainbow, rainbow.a);
    //vec4 nyan = getNyanAt(uv, nyan_p, nyan_s);

    //col = mix(col, nyan, nyan.a);

    //fragColor = vec4(col);

    vec4 terminalColor = texture(iChannel0, uv);
    fragColor = vec4(col + terminalColor);
    }
  3. Ghosttyの設定ファイルでGLSLファイルを指定します。
    $HOME/.config/ghostty/config
    custom-shader = ./shaders/nyancat.glsl