ゲームカレッジ・・・ゲームプログラミング
ゲームカレッジ2年生の授業「ゲームプログラミング」では、引き続きリアルタイムCGを中心にゲーム作りの要素技術を学んでいます。今日の内容はシャドウ、前期学んだテクスチャを使った影(テクスチャシャドウ)の続きです。
 |  |
| (1)テクスチャシャドウ | (2)うまくいかない例 |
複雑な地形の場合・・・・
前期に学んだシャドウの手法の場合、地形が複雑になると、上記の(2)のように余計なところに影が出てしまうことがあります。これは、光があたった結果影ができている・・・のではなく、影用のテクスチャを用意して、光源(ライト)から単純に投影しているためにこうなってしまいます。光源からみてキャラクターの向こう側の地形だけに影が出るだけでなく、手前側にも影が出てしまいます。
デプスシャドウ
本日は複雑な形の上に影を落とす方法の一つ、デプスシャドウ(Depth Shadow)について学びました。これは、光源位置にカメラを置いて、そこからの深度(Depth)によって影の表示を行う方法です。
 |  |
| (3)ライトの位置からレンダリング | (4)深度のレンダリング |
(3)光源位置からレンダリング
(2)で使用した、シーン(3DCGモデルの組み合わせ)を光源位置でレンダリング(描画)すると、(3)のようになります。
(4)深度のレンダリング
レンダリングの方法に工夫を加えて、通常の色彩ではなく深度(カメラからどれだけ離れているか)を画像として保存します。
深度(Depth)判定には一定の精度が必要な為、ここでは通常の画像ではなく、小数表現が可能なHDR(High Dynamic Range)形式のテクスチャに描画しています。
 |
| デプスシャドウ |
この深度と実際のモデルを比較して、より光源から遠い場所にのみ影を落とす事で、不適切な場所に影が出てしまうことを防いでいます。
精度の高い手法
デプスシャドウは精度の良い方法で市販のゲームなどでも良く使われています。キャラクターの影を地形に落とすだけでなく、キャラクターの影をそれ自身に落としたり、あるキャラクターの影を別のキャラクターに落としたりといったことも可能です。
 |
| 応用例 |
まだまだ勉強です
2年生も後半になり、学生生活も残り少なくなってきましたが、まだまだ勉強することがあります。できる限りのスキルを身に付けられるよう、学生たちもがんばって学んでいます。