トップページ > 記事閲覧
3D 影の生成位置がずれる
名前:たての 日時: 2017/09/06 17:13

初めまして。DXライブラリには2D、3Dともにお世話になっています。 現在、3Dゲームを作っている最中なのですがサイトにある 「サンプルプログラム 3Dアクション基本+深度値を利用した影表現基本 ( Direct3D 9用、要シェーダーモデル2.0 )」から影の生成をやってみたのですが、 影の生成される場所が足からではなく少し離れたところから生成されてしまいます。また微妙に足の部分の影が映し出されていない状態です。 使っているモデルは自作のものなのですがサンプルにあるモデルとは大きさが違いとても小さいです。キャラモデルの高さは20です。 シェーダの中を弄れば治るような気がするのですがいまいちわからなくて困っています。 教えていただけると幸いです。 回答お待ちしております。
メンテ

Page: 1 |

Re: 3D 影の生成位置がずれる ( No.1 )
名前:たての 日時:2017/09/06 17:25

スレッドを書きながら気づいたことを試してみました。 モデル自体の大きさを「MV1SetScale」という関数使って大きくさせて見ました。 適当ではありますが50倍にしたところ、カメラの位置を調整してなかったのででかい足が映し出されましたが一応足から影が生成されてることが分かりました。 一応問題は解決したのですが正直「MV1SetScale」を使わずに影の生成を足からさせたいです。どうにかできないでしょうか。 何か返信または回答していただけると助かります。
メンテ
Re: 3D 影の生成位置がずれる ( No.2 )
名前:管理人 日時:2017/09/06 22:59

『サンプルプログラム 3Dアクション基本+深度値を利用した影表現基本 ( Direct3D 9用、要シェーダーモデル2.0 )』 のページにある『深度記録画像を使ったディレクショナルライト一つ付きの描画用ピクセルシェーダーのプログラム』 の、以下の部分の // テクスチャに記録されている深度( +補正値 )よりZ値が大きかったら奥にあるということで輝度を半分にする if( PSInput.LPPosition.z > TextureDepth + 25.0f ) { DefaultOutput.rgb *= 0.5f; } + 25.0f となっている箇所の値を小さくすることで MV1SetScale を使用しなくても足から影を表示することができます、 よろしければお試しください m(_ _)m
メンテ
Re: 3D 影の生成位置がずれる ( No.3 )
名前:たての 日時:2017/09/07 18:43

返信ありがとうございます。 実行してみたところ、ちゃんと足から生成されるようになりました。 ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存