シェーダーの基本

最終更新日26 May 2017 07:53

頂点シェーダ

1頂点ごとのプログラム
glVertex()1で渡した値そのままが入力値
直前でglTranslateやglRotateしたとしたら、それらはまとめてその時点でのモデルビュー行列gl_ModelViewMatrixとして記録されている。
つまり、
gl_ModelViewMatrix=glGetFloatv(GL_MODELVIEW_MATRIX,p);
ということ。

フラグメントシェーダ

1ピクセルごとのプログラム
何が入力として来るかは頂点シェーダ次第。

滑らかさとシェーダーステージ

  • なるべくvaryingにしてフラグメントシェーダに渡して処理した方が滑らかになる。varyingで渡すと勝手に補間した状態で渡る。
  • normalize()などはフラグメントシェーダでやった方がなめらかになる。
Bibliography
3. ShaderToy…Web状でフラグメントシェーダをコーディングして遊べるという代物。
4. vertexshaderart.com….頂点シェーダで遊べる

opengl2


ファイル

サポートサイト Wikidot.com opengl2