OpenGL技術編
その3 ワールドビュー射影変換:サンプルプログラム
OpenGL技術編その3「ワールドビュー射影変換」で説明した内容を踏まえたサンプルプログラムです。実行すると煽りぎみの正方形ポリゴンが出現します:
サンプルスクリーンショット。これはOpenGL版で煽っております(^-^)。
サンプルはOpenGLだけでなく、同じ頂点情報、ワールド・ビュー・射影変換行列を用いてDirectX9でも描画しています。もちrんDirectX9側でも上と全く同じ描画結果が得られています!
このサンプルはこちらからダウンロードできます。
アーカイブを解凍すると、codeフォルダ及びprjフォルダが表れます。prjフォルダにはVS2005とVS2008それぞれのソルーションが含まれていますので、お使いの環境に合わせたソルーションを起動して下さい。後はビルドすれば上のスクリーンショットが出現するはずです。
起動直後はDirectX版のメイン関数(dx9main.cpp)を使っています。これをOpenGL版に切り替えるにはdx9main.cppの1行目にある「#if 1」を「#if 0」にし、openglmain.cppの方を「#if 1」にしてメイン関数を切り替えて下さい。同じ結果が出るはずです。
○ ポイント
このサンプルのポイントはOpenGLとDirectX9それぞれでの変換行列の取り扱い方です。OpenGLは純粋に掛け算します。一方DirectX9はIDirect3DDevice9::SetTransformメソッドでそれぞれ個別設定します。これらは双方のレンダラ(OpenGLRenderer及びDX9Rendererクラス)のrenderメソッド内で吸収されています。