見出し画像

🎡シェーダー、フラグメントと頂点(バーテックス)の違い gl_FragCoordの意味とは?

ピクセル=フラグメント 



変数gl_FragCoordは、フラグメントシェーダ内から読み取り専用の変数として利用でき、フラグメントのウィンドウ相対座標x、y、z、1/wの値を保持します。

この値は、頂点処理後のプリミティブを補間してフラグメントを生成する固定機能の結果です。z成分は、フラグメントの深度に使用される深度値です。

そもそも、フラグメントってなんだっけか。

フラグメント(fragment)、フラグメンツ(fragments)は、断片、破片、(文学作品や音楽作品の)断章の意味。

ドットみたいな意味か。。。 

OpenGLではフラグメントシェーダー(英: Fragment Shader, FS)と呼ばれる(Fragment: 断片)

ピクセルシェーダー(英: Pixel Shader, PS)はピクセル単位のライティングやポストプロセス(後処理)を行なうための機能である。ピクセルシェーダーはラスタライズされるプリミティブの各ピクセルに影響する。また、ピクセルシェーダーにてテクスチャを参照することでバンプマッピングやフォグ、シャドウ、ブルームといったエフェクトを最終レンダリング結果に適用することもできる。OpenGLではフラグメントシェーダー(英: Fragment Shader, FS)と呼ばれる(Fragment: 断片)。

gl_FragCoordはvec4でvec4のxyにvec2が入っている仕様のようだ。さらにvec2でそのまま演算できるしくみになっている。

https://amzn.to/3QDfhVK

gl_FragCoordの書きぶりを見る限りは座標はシェーダーに与えるものでなくシェーダーから与えられるもののようだ。このあたり発想の転換がないと、マウスでドット絵書いてた人間からは縁遠くなってしまう。

めげずに今日頑張っていこう

https://glslsandbox.com/e#74803.0



お願い致します