![見出し画像](https://assets.st-note.com/production/uploads/images/81455961/rectangle_large_type_2_76448d93d96db14de0bec0323c9fe9e5.png?width=1200)
🎡shadertoyからのtwiglなど
![](https://assets.st-note.com/img/1704544985691-nh9lhCUm3e.png?width=1200)
こちらはShadertoyからtwiglに移動する方法
300es geekest
Shadertoy to GLSLsandbox
![](https://assets.st-note.com/img/1656230260481-2qhMkipaVV.png?width=1200)
(ShaderToyの)インターフェースの説明には、画像、サウンド、VRレンダリングを生成するためにシェーダーが必要とする入力と出力が含まれています。
イメージシェーダは、各ピクセルの色を計算することによって手続き型画像を生成するために、mainImage()関数を実装しています。この関数はピクセルごとに一度だけ呼ばれることが期待されており、正しい入力を与え、そこから出力色を得て画面のピクセルに割り当てるのは、ホストアプリケーションの責任です。プロトタイプは
void mainImage( out vec4 fragColor, in vec2 fragCoord );
ここで、fragCoord はシェーダが色を計算する必要があるピクセル座標を含んでいます。座標はピクセル単位で、0.5からresolution-0.5までの範囲で、レンダリングサーフェスの上で、解像度はiResolutionユニフォーム(下記参照)を通じてシェーダに渡されます。
結果の色は4成分ベクトルとしてfragColorに集められ、そのうちの最後の1成分はクライアントによって無視されます。結果は、将来複数のレンダーターゲットを追加することを想定して、「out」変数として収集されます。
こんな感じでGLSLをエミュレーションする
![](https://assets.st-note.com/img/1656231989961-4ZSnopJ7yH.png?width=1200)
![画像4](https://assets.st-note.com/production/uploads/images/44030244/picture_pc_99d2355ffb0215a0ceab69b7a8a6a25b.png?width=1200)
The book of shader
![](https://assets.st-note.com/img/1662074408164-vLutEytOeE.png)
いいなと思ったら応援しよう!
![あたり帳簿](https://assets.st-note.com/production/uploads/images/146045306/profile_76a0adfc7bd4b4908ef76d29ad61ae98.png?width=600&crop=1:1,smart)