ファイルの読み込み、開放。ファイルの読み込み、開放。ライトの方向を説明するラインを描画。半球ライティングのまま。メニューのリソース管理。頂点シェーダープログラム。シンプルな平行光源+環境光のライト。頂点シェーダープログラム。頂点色によるスペキュラーライト。頂点シェーダープログラム。テクスチャーによるスペキュラーライト。頂点シェーダープログラム。頂点シェーダープログラム。平行光源+半球環境光ライト。頂点シェーダープログラム。平行光源+半球環境光+スペキュラーライト。頂点シェーダープログラム。頂点シェーダープログラム。(空デカール)あと、いつもの様に、モデルと、実行ファイル及び、プロジェクトファイルが入っています。■バンプマップに関するうんちくバンプマップの効果はどのようなものでしょうか?下にバンプマップをした画像と、していない画像を並べてみました。バンプマップされた床は、光源方向(右手前)の部分が光っており、立体感が増しています。実際に出っ張っているわけではないので、真横にしたときに平らな板になってばればれなのですが、光源がぐるぐる動く場面ではかなり強力です。使用後どのようなデータを用意すればよいのでしょうか?いくつかの方法がありますが、今回は法線マップを用いたバンプマップを行いますバンプマップでは、表面のでこぼこ具合対応した画像を用意します。作成した法線マップのデータです。プラグインで作成しました。(法線マップ)法線マップを作成するためには、周辺のピクセルと明るさを比較します。結果として、明るさが異なれば、その方向にベクトルを生成します。輝度変化が大きければ大きいほど、傾きは大きくなります。慣習として、輝度変化がおきないときの軸をZ軸として、変化がおきた(U、V)軸を、X,Y軸に対応させます。ほとんど青色なのは、(R,G,B)を(X,Y,Z)と対応させて、平らなほとんどの部分を青色として表現しているためです。256のように、変換します。ちなみに、法線ベクトルの集合を単位球に対応させて、X軸を横軸、Y軸を縦軸とした時の傾きに応じた色は、次のようになります。次に、この法線マップをモデルに貼り付けなければなりません。法線マップはでこぼこしていない時は、青色です。実際のモデルのでこぼこの基準はなんでしょうか?それは法線方向です。ライティングは、モデル座標系で行います。そのために、法線マップを、モデル座標系でZ軸(青色)が法線方向になるように座標変換しなければなりません。そのための基底ベクトルが必要です。一つは、頂点の法線で、別の基底ベクトルは、適当に(法線に直交して、光の当っている方向が正しくなるように)取ります。最後の一つは、以上の2つのベクトルの外積から求めます。今回用いるのは、床なので、ポリゴンのX軸をS,Y軸をT,法線をSxTの簡単な計算になります。この座標系を用いれば、Z軸の出っ張り(青色)は、SxTの法線の方向の出っ張りに変換されます。それ以外の軸は、赤及び緑で表現される表面のでこぼこになります。う~ん、この説明じゃわからんよな。結果を見たほうが早いだろ。■ソースさて、ソースファイルを見てみましょう。頂点シェーダープログラムは次のようになります。座標変換はシンプルな透視変換です。テクスチャー座標も、そのままコピーします。同じ模様なので、同じ座標(v7)を用います。特殊なのは、頂点色です。用いて座標変換します。これで、ライトの方向ベクトルは、法線の向きから見た方向に変換されます。平行光源のライティングが実現できます。(L':基底ベクトルで変換したライトの方向ベクトル)の変換で範囲を調整します。頂点宣言は、次のようになります。