twigl
#GLSL #シェーダー #WebGL
https://gyazo.com/e80d079b713abbaaf1c434d01ab3f50d
https://twigl.app/
https://github.com/doxas/twigl
数多く存在するWebベースシェーダ環境のひとつ
つぶやきGLSLとかいうあたおか文化の発祥地
Modes
モードごとにPreludeが異なり、渡されるUniform変数・定義されるビルトイン関数に差異がある
classic
GLSL Sandboxと互換性のあるモード
unifom変数として以下が提供される
resolution: canvasの解像度
mouse: マウス座標
time: 時間(秒)
frame: フレームカウント
backbuffer: Backbuffer
uniform宣言は自分で行う必要がある
geek
uniformの構成はclassicと同様だが、変数が1文字になっている
それぞれ、 r ・ m ・ t ・ f ・ b
uniform宣言は自分で行う必要がある
geeker
uniform構成はgeekモードと同様だが、uniform宣言およびprecision宣言が不要となる
geekest
geekerモードに加え、以下の差異がある
void main(){} 宣言が不要となり、省略した場合は記述内容がそのまま main の中身となる
gl_FragCoord が FC で利用できる
追加のビルトイン関数群
snoise2D ・ snoise3D ・ snoise4D : Simplex Noise
fsnoise : いわゆるfractSin hash
fsNoiseDigits : macOS向けに精度が調整されたfractSin
hsv : HSV to RGB
rotate2D : 2次元回転行列
rotate3D : mat3FromAngleAxis
PI : 円周率
PI2 : 円周率の2倍, tau
300 es
WebGL 2用のGLSL ES 3.00が利用可能となる
gl_FragColor の代わりに outColor で出力を行う
geek・geeker・geekestモードにおいては、 o と省略される
MRT
Multiple Render Targetsが利用可能となる
outColor0 ・ outColor1 (geekモード以降では o0 ・ o1)で2ターゲットを対象に出力する
Backbufferは backbuffer0 ・ backbuffer1 (geekモード以降では b0 ・ b1)で利用可能