一つ問題にぶつかったので質問させていただきます。 サンプルの深度値影表現で,広いマップの時はさすがに 深度画像を全体に適応させるわけにはいかないと思い, 主人公に追従する形で深度値を取る場所を変えることにした所, 深度画像に映らない場所が全て影なしになるかと思ったら, そううまくは行かず,影に覆われたりしてしまいました。 解決方法が私には思い浮かばなかったので,誰かお力添えをして頂ければ本当に助かります。
DirLight_DepthShadow_Step2PS.fxの該当箇所を以下のように変更したらどうでしょうか? ---------------------------------------------------------------- // 深度バッファテクスチャから深度を取得 TextureDepth = tex2D( DepthMapTexture, DepthTexCoord ); // テクスチャに記録されている深度( +補正値 )よりZ値が大きかったら奥にあるということで輝度を半分にする if( PSInput.LPPosition.z > TextureDepth + 0.0016f ) { DefaultOutput.rgb *= 0.5f; } ---------------------------------------------------------------- ↓ ---------------------------------------------------------------- if( !any( saturate(DepthTexCoord) != DepthTexCoord ) ){ // 深度バッファテクスチャから深度を取得 TextureDepth = tex2D( DepthMapTexture, DepthTexCoord ); // テクスチャに記録されている深度( +補正値 )よりZ値が大きかったら奥にあるということで輝度を半分にする if( PSInput.LPPosition.z > TextureDepth + 0.0016f ) { DefaultOutput.rgb *= 0.5f; } } ----------------------------------------------------------------
ありがとうございます。 だいぶ改善はされたのですが,私の環境ではまだ主人公と一定の距離に長方形の比較的大きな影が発生してしまいます。
takatwuさんが載せてくださった変更で私の環境でも影テクスチャに レンダリングされていない部分が影なしで描画されるようになりました よろしければろんざきさんの環境でtakatwuさん案の変更を加えても 意図しない影が表示されてしまっているという状態のスクリーンショットを 頂けないでしょうか?