またこちらのサンプル
http://homepage2.nifty.com/natupaji/DxL ... hadow.html
を参考に頂点シェーダーとピクセルシェーダーを書き換えて影の生成を行おうとしております。
一応ポイントライト表示自体の書き換えは上手くいったのですが、サンプルのプログラムの中で
// カメラの向きはライトの向き
LightDirection = GetLightDirection() ;
// カメラの位置と注視点はステージ全体が見渡せる位置
LightTarget.x = 3620.0f ;
LightTarget.y = 0.0f ;
LightTarget.z = 3830.0f ;
LightPosition = VAdd( LightTarget, VScale( LightDirection, -12400.0f ) ) ;
SetCameraPositionAndTarget_UpVecY( LightPosition, LightTarget ) ;
// 設定したカメラのビュー行列と射影行列を取得しておく
LightCamera_ViewMatrix = GetCameraViewMatrix() ;
LightCamera_ProjectionMatrix = GetCameraProjectionMatrix() ;
カメラの位置(=ライトの位置)は自キャラ中心としたポイントライトにしたいので自キャラ中心で問題は無かったです。
しかし映し出す方向を進行方向にすると、
例えば正面を向いている時、真横に居るオブジェクトの影が進行方向に生成されてしまいます。(当たり前の話なんですが・・・)
そのため自キャラを中心として円形状に広がる様に方向を定めたいなと考えているのですが、どの様に書いたら宜しいのでしょうか?
(※深度記録画像を使ったシェーダープログラムはいじりましたが、深度記録画像へのシェーダープログラムはいじっておりません)