トップページ > 過去ログ > 記事閲覧
ソフトシャドウの実装について
名前:takatwu 日時: 2012/09/26 15:03

サンプルプログラム(3Dアクション基本+深度値を利用した影表現基本)と ttp://maverickproj.web.fc2.com/pg86.html こちらのサイトを参考にソフトシャドウを実装しようと思っています。 作成したシェーダーはこちらです。(Step2,Step3はまだ剛体メッシュ用しか作っていません) https://w w w.dropbox.com/sh/sd6g2ftopi4qq08/HRDlcVnEwY Step1でライトからの深度を描画 Step2で影のみを描画 DXライブラリの機能で影にガウスフィルタを掛け Step3でモデルと影を描画しています。 ガウスフィルタを掛けるまではうまくいくのですが 最後のStep3がうまくいきません。 モデル自体は正しく描画できていますが影がバグってしまいます。 おそらくStep3でShadowMapUVの値を正しく計算できていない?のが原因だと思うのですが 解決策を教えてはいただけないでしょうか?

Page: 1 |

Re: ソフトシャドウの実装について ( No.1 )
名前:管理人 日時:2012/09/29 20:03

アップして頂いたシェーダープログラムを見る限りですと Step2 と Step3 には頂点シェーダーのプログラムが剛体用のものしかないようです 剛体用の頂点シェーダーでスキニングメッシュの描画をすると正常な結果が得られないのですが それは問題ないのでしょうか? あと、Step2のピクセルシェーダーでで行っているテクスチャ座標の補正がStep3では 行われていないので、テクスチャ座標が変なのはそれが原因だと思います
Re: ソフトシャドウの実装について ( No.2 )
名前:takatwu 日時:2012/09/29 23:33

一応サンプルのつもりで作ったのでまだスキニングメッシュ用の物は作っていません。 テクスチャ座標の補正は頂点シェーダ側でやっています。 勝手ではありますが実際のプログラムを見ていただいたほうがいいかと思うのでプロジェクトをメールで送信させて頂きます。 時間のある時でいいので見ていただけると幸いです。
Re: ソフトシャドウの実装について ( No.3 )
名前:管理人 日時:2012/10/01 01:51

なるほど頂点シェーダーでテクスチャ座標の調整をしていましたか ただ、それで意図した結果が得られるのは射影行列が正射影の場合だけとなります ( DXライブラリのカメラの設定関数で言うところの SetupCamera_Ortho ) 正規化が必要な座標( カメラの設定関数で言うところの SetupCamera_Perspective を実行した状態 )では、 正規化する前に * 0.5f + 0.5f とやっても意図した結果は得られません DepthShadowStep3PS.fx と DepthShadowStep3VS.fx を変更することで正常な影を表示できましたので、よろしければご確認ください https://dxlib.xsrv.jp/file/DepthShadowStep3.zip ただ、takatwuさんが参考にされたページでは頂点シェーダーでテクスチャ座標の補正をしていますね・・・ 実行に必要なファイルが公開されていれば確認することができるのですが・・・
Re: ソフトシャドウの実装について ( No.4 )
名前:takatwu(解決) 日時:2012/10/01 22:19

正常に動作しました。 本当にありがとうございました。

Page: 1 |