Shader Study

ゲーム会社で働くことになったので利用されている技術は知っておくべきだと思い、プログラマブルシェーダを勉強してみることにしました。簡単なモデルビューワを作ってみるつもりです。

開発環境はDirectX9とVisual Studio 2008 Express。(最新のDirectX10はちょっと微妙なので避けました)

 

model_tiger_20090608

model_sdkfz222_20090613

model_stug_20090718

モデルはLightwave3Dで作った戦車や装甲車を使ってみました。Xファイル形式で出力。

 

shader_study_20091106

幾度ものエラーを乗り越え、シェーダーが通った後の画面。ポリゴンが表示されるまでは不安の連続だけれど、描かれてしまえば峠を越えた感じ。

プログラマブルシェーダーでのライティングはライトの座標やポリゴンの法線などのベクトルから自分で計算式を書いて表現することができるという自由度の高い仕様。まずは基本的なランバートライトを書いてみました。光源ベクトルとポリゴンの法線の内積の値をそのまま明るさに割り当てるという非常に単純な計算。

 

つづく

 

参考にした書籍

「DirectXシェーダプログラミング 仕組みからわかるゲームエフェクトテクニック」
http://www.amazon.co.jp/gp/product/4797344962

DirectX9の仕組みから書かれています。モデルを行列変換してシェーダへ渡す過程がわかりやすく説明されています。今回のランバートライトは214~226ページに書かれています。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中