OpenGL Shading Language (2)

前回のWebGLではなく、OpenGL3.3を使って今度は3D表示をしてみました。3Dになるとカメラ位置の計算で行列演算が入り、急に数学的な手法が多用されるようになります。

参考 : http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-3-matrices/

ここにあるチュートリアルを参考にさせていただきました。
Windowsでのビルドがうまくいったので、VisualStudio 2013 でテストしました。

参考 : http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-1-opening-a-window/

内容は、四面体の頂点の色をフラグメンシェーダに処理をさせることと、座標変換による見え方の違いを確認することです。

今回はGLSLがシンプルです。バージョンがかわりattributeのかわりにinが使われるようになりましたが、基本的な文法は同じです。

バーテックスシェーダ

フラグメントシェーダ

バーテックスが持っている色情報をフラグメントにわたしています。自動的に中間値が計算され補間されます。(GPUが全部やってくれる)
シェーダ部分は別ファイルになっていて、これを読み込んで設定する関数が用意されています。
四面体をカメラ座標の変換をするものとしないもの両方出力してみました。(切り替えはバーテックスシェーダのコメントで)

座標変換なし

座標変換あり

とても基本的なテストですが、VisualStudioでセットアップできたことが、自分の開発環境的に有意義でした。(Compute Shaderに備えて・・)
頂点増やしたり、いろいろと数値を変えて試してみると理解も深まります。

About

Categories: Graphics タグ: