トップページ > 記事閲覧
DirectXの使用バージョンで影がおかしくなる問題について
名前:108E 日時: 2016/10/26 12:44

MMDを使用した3Dのゲームを作成中なのですが、Effekseerを使用しようと思い、使用するDirectXのバージョンを11から9に下げたところ、今まで正常に描画できていた影がおかしくなりました。 プレイヤーキャラクターの服は正常に描画されているようなのですが、肌などの一部の影が正常に描画されなくなってしまいました。 こちらで思いつくことは色々と試してみたのですが解決できませんでした。 何か解決策などありましたらお願いします。
メンテ

Page: 1 |

訂正 ( No.1 )
名前:108E 日時:2016/10/26 12:46

服は→服の影は
メンテ
追記 ( No.2 )
名前:108E 日時:2016/10/26 22:50

影はShadowMapを使用しています。 説明不足でした、すみません。
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.3 )
名前:管理人 日時:2016/10/27 01:56

私も DirectX9 で影が正常に描画されないモデルがあることを確認しました こちらは輪郭部分だけ描画されるという奇妙な現象でした… すぐに直したいのですが、平日と、今週末は忙しくてまとまった時間が確保できそうにありません 申し訳ありませんが修正まで少しお時間をください m(_ _;m
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.4 )
名前:108E 日時:2016/10/27 14:49

お忙しい中ありがとうございます。 お待ちしています。
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.5 )
名前:管理人 日時:2016/11/02 17:32

お待たせしました、修正版をアップしましたのでよろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 正常に影が描画されるモデルと、正常に影が描画されないモデルの差はマテリアルに スフィアマップが設定されているか否かでした( スフィアマップが設定されている マテリアルの箇所が正常に影が描画されないというバグでした )
メンテ
Re: ( No.6 )
名前:108E 日時:2016/11/04 10:48

ありがとうございます。 試してみたのですが、マテリアルの輪郭線の影のみ描画されるか、影が全く描画されないかという状態になってしまいました。 こちらの環境や使用モデルの問題なのでしょうか…
メンテ
Re: ( No.7 )
名前:108E 日時:2016/11/04 10:49

人型モデルはマテリアルの輪郭線のみ、フィールドに使用してる市街地モデルは影なしになりました。
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.8 )
名前:管理人 日時:2016/11/04 22:02

むむ、108E さんのモデルで発生している不具合は私が修正したものとは異なるようです… 実際に影が描画されない現象を見ることができれば原因もすぐに判明すると思いますので、 よろしければ影が正常に描画されないモデルをこちらの BQE00322(あっとまーく)nifty.com ( (あっとまーく) を @ に置き換えてください ) メールアドレスに送っていただけないでしょうか? m(_ _;m ( もし一般に配布されているモデルでしたら、配布先の URL を教えていただければ  自分でダウンロードします )
メンテ
Re: ( No.9 )
名前:108E 日時:2016/11/05 20:02

すばやい対応ありがとうございます。 キャラクターとして使用しているのはこちらのモデルで、 ttp://piapro.jp/t/KPU3 フィールドとして使用しているのはこちらの2つです。 ttp://bowlroll.net/up/dl8761 ttp://bowlroll.net/up/dl10522 また、今回の件とはおそらく関係ないのですが、キャラクターに使用しているモデルを普通にDX_LOADMODEL_PHYSICS_LOADCALCで読み込もうとしたり、リアルタイム演算をしようとするとbulletの方でエラーが起きるようで強制終了してしまいます。 別のモデルでは問題なかったので、現状はDxLibModelViewerの方で事前計算した上でmv1形式にすることで読み込めているので不都合は発生していないのですが、今後仕様変更した際に物理演算を使う可能性もあるので、管理人さんの方で余裕がありましたらついでで構いませんのでお願いします。
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.10 )
名前:管理人 日時:2016/11/06 12:15

ご返答ありがとうございます 載せていただいたキャラクターモデルとフィールド用モデルを使用しても私の環境では 正常に表示されてしまったのですが、その後 Direct3D 9 の影描画に関するバグを一つ見つけて修正しました この修正で 108Eさんの環境でも正常に表示されるようになったかもしれませんので お手数で申し訳ありませんが、よろしければお試しになってみてください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) > また、今回の件とはおそらく関係ないのですが、キャラクターに使用しているモデルを普通に > DX_LOADMODEL_PHYSICS_LOADCALCで読み込もうとしたり、リアルタイム演算をしようとすると > bulletの方でエラーが起きるようで強制終了してしまいます。 PMDEditor で確認したところ、Appearance Miku の剛体の幾つか(「6:G1|上半身2」「70:G3|髪ガードC」 「71:G3|髪ガードB」 )に不正な値( NaN )の回転値が設定されていて、それがエラーの原因になっていました なので、回転値が不正な値のだった場合は 0.0f に置き換えるという処理を加えて強制終了しないようにしました ↑のバージョンではその変更が加えてありますので、よろしければご確認ください m(_ _)m
メンテ
Re: ( No.11 )
名前:108E 日時:2016/11/08 13:03

対応ありがとうございます。 色々と試してはみたのですが、制作中のゲームで発生している症状は変わりませんでした。 が、それとはまた別に各モデルの影を描画テストするためだけに組んだ方では問題なく描画されていましたので、なにかこちらに不備があるのだと思います。 しばらくはこちらで原因究明したいと思います。 ついででお願いさせていただいた方も問題なくなっていることが確認できました。 ありがとうございました m(_ _)m
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.12 )
名前:管理人 日時:2016/11/09 00:48

> 色々と試してはみたのですが、制作中のゲームで発生している症状は変わりませんでした。 > が、それとはまた別に各モデルの影を描画テストするためだけに組んだ方では問題なく描画されていましたので、なにかこちらに不備があるのだと思います。 いえ、Direct3D 11 で動作させたときは正常に表示されて、Direct3D 9 で動作させたら 正常に表示されなくなったのだとしますと間違いなくDXライブラリの問題だと思います 恐らくご制作中ゲームで行われている影描画以外の描画処理によってDXライブラリ内部の設定が変更され、 シンプルに影モデルを描画するだけのプログラムでは発生しない不具合が表面化しているのだと思います 直接手元で現象を確認できれば原因を調べるのも容易ですので、もし不都合がなければ不具合が 発生してしまうプログラムと再現に必要なファイル一式をメールでこちら BQE00322(あっとまーく)nifty.com ( (あっとまーく) を @ に置き換えてください ) に送っていただけないでしょうか? m(_ _;m ( 1通辺りの最大容量が10MBくらいなので、現象の再現に必要な最低限のファイル構成にしていただく 必要があるかもしれません… )
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.13 )
名前:管理人 日時:2016/11/13 17:31

メールありがとうございます、添付していただいたファイルで手元でも影が正常に描画されない現象を確認できました 原因を調べたところ、SetFogEnable でフォグを有効にしていると影が正常に描画されない、というバグでした 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: DirectXの使用バージョンで影がおかしくなる問題について ( No.14 )
名前:108E 日時:2016/11/14 17:34

こちらでも正常に描画されていることが確認できました。 ありがとうございましたm(_ _)m
メンテ

Page: 1 |

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

   クッキー保存