Open14
シェーダーに入門をする
この本を読んで入門する
オブジェクトが描画される手順
- 頂点の映る位置を算出する
- ポリゴンの表裏を確認する
- 描画する画素を決定する
- Z Bufferの値を比較する
- 画素を描画する
- Z Bufferの値を更新する
Z Bufferは重なりの値っぽい。Z-indexみたいな感じっぽさを感じている
-
ポリゴンの表裏を確認する
-
描画する画素を決定する
-
Zbufferの値を比較する
-
Zbufferの値を更新する
は設定の変更のみができる -
頂点の映る位置を算出する
-
画素を描画する
では任意のプログラムを実行できる
頂点を操作するためのプログラムをVertex シェーダー
画素を描画するためのプログラムをFragment シェーダー
と呼ぶことがある
頂点をいじれば、オブジェクトの形を変えられるし、描画をいじればオブジェクトの色を変えられる
光源の影響を考慮しないシェーダーをUnlitシェーダーと呼ぶ
Un + LightingでUnlit
Microsoft:HLSL(Hight Level Shader Language)
OpenGL:GLSL( OpenGL Shader Language)
NVIDIA: Cg言語
あとは、Unity固有のShaderLab
Unlitシェーダーのサンプル
float4型がvecter4と同じって会話をして、なんで三次元空間なのに4次元目があるんだ?って思って調べたら、オブジェクトを並行移動させたりするのに使うらしい(W成分、同次座標系)
float4 vertex: POSITIONはセマンティクスと呼ぶ
その値の意味や目的をレンダリングパイプラインに明示する役割がある
構造体はclassみたいなもんって話を聞いた
構造体は、値を定義できて、型みたいに関数の戻り値として使える
シェーダーの実行順
- Vertex shader
- Tessellation
- ハルシェーダー(HS)
- Domain shader
- Geometory shader
- Fragment shader
シェーダーでオブジェクトを描写するときの一連の流れ