![見出し画像](https://assets.st-note.com/production/uploads/images/61023051/rectangle_large_type_2_02d2f62b44be346e965fbb310a23c617.png?width=1200)
🎡GLSL surfacePositionはgl_FragCoord.xy - resolution/2のことだけど、これはglslsandboxのローカルルールなのか。
Khronosの仕様にはないみたい とりあえずGLSL御三家で確認
twigl shadertoyともsurfacePosition対応なし glslSandboxオリジナルパラメータか??
![画像1](https://assets.st-note.com/production/uploads/images/61017004/picture_pc_59f78f464340fd1a806e3ab531a01863.png?width=1200)
![画像2](https://assets.st-note.com/production/uploads/images/61017020/picture_pc_83808e3d159daa7cf2d6719f02654354.png?width=1200)
ソース追ってみた
どうもpanボタンの計算に利用しているVarying変数(js側で使う?)をそのままGLSLの中で使っているということのようだ。
![画像3](https://assets.st-note.com/production/uploads/images/61017115/picture_pc_9170427b662e17e96d9508a7ced95a33.png?width=1200)
![画像4](https://assets.st-note.com/production/uploads/images/61017122/picture_pc_c2b67c5f373ab6008c6452dbb8c78d81.png?width=1200)
仕様はどこにも無いのか、せめてクリシェならなんか説明が欲しい
![](https://assets.st-note.com/img/1662075492315-bz1LkMA1mT.png)
これは例えばフラクタルレンダラーでユーザーがフラクタルをパンしたりズームしたりできるようにするのに便利です。ここにマンデルブロ集合の簡単な図があります。左上の「コードを隠す」ボタンをクリックし、 左マウスでパン、 右マウスでズームをします。
surfacePositionは、GLSLの標準的な組み込み変数ではありません。GLSLには、位置、色、テクスチャ座標などの情報を渡すためのいくつかの組み込み変数がありますが、surfacePositionはその一つではありません。
ただし、surfacePositionは、ユーザーが自分で定義した変数名として使われることがあります。例えば、頂点シェーダやフラグメントシェーダの中で、物体の表面上の位置を表すために、surfacePositionという名前の変数を定義することができます。
その変数の具体的な意味や使い方は、そのシェーダのコードや、そのシェーダを使っているアプリケーションのコンテキストに依存します。なので、surfacePositionが何を指しているかを知るためには、その変数が宣言され、どのように使われているかを確認する必要があります。
お願い致します