トップページ > 過去ログ > 記事閲覧
環境により3Dモデルが正しく表示されない
名前:DiG 日時: 2010/07/11 14:50

mqo、pmd、xファイルを使っているのですが、 どの種類のファイルでも正しく表示されないことがあります。 (自分のPCでは問題ありません) モデルが真っ白になったり、暗く表示されてしまいます。 幾らかのパソコンで実行してみたのですが、 Windows Vista、7 で実行した時は正しく表示され、 XPで実行したときは正しく表示されませんでした。 だから恐らくOSに依存したことなのかと思うんですが、 グラフィックボードやDirectXのバージョンのせいかとも思っています。 (あまり知識がないのでよくわかりません(*´ ェ`)) 開発は、Vista 32bit VC++2008EE で行っています。 何が原因なのでしょうか? モデルは自分の作ったものではないのですが、例えば ttp://www9.atpages.jp/~mmdaccessory/uploader/log/849.zip ↑の中の「バナナ皮だけ.pmd」が真っ白に表示されてしまいます。

Page: 1 |

Re: 環境により3Dモデルが正しく表示されない ( No.1 )
名前:管理人 日時:2010/07/11 23:30

現時点ではなんとも言えませんが、私のメイン環境は WindowsXP なので XP では正常に動作しないということは無いと思います ( アップしていただいた「バナナの皮だけ.pmd」も真っ白にはなりませんでした ) 件の現象が発生したPCに搭載されているグラフィックスデバイスが原因である 可能性が高いと思うのですが、件の現象が発生するPCのスペックは分かりますでしょうか?
Re: 環境により3Dモデルが正しく表示されない ( No.2 )
名前:DiG 日時:2010/07/12 00:13

XPのPCは3台試してみたのですが、そのうちの1つは、 FMV-C630 CPU:Pentium4 3GHz メモリー:1GB です。細かいことはわかりません(*´ ェ`) グラフィックデバイスあたりのことについてもあまり知識はないので、 すみませんが何をどう調べたらよいか教えて頂けますか? あと、DxLibの最新のテストバージョンを用いたものを明日実行してみようと思います。
Re: 環境により3Dモデルが正しく表示されない ( No.3 )
名前:DiG 日時:2010/07/12 21:46

DxLibの最新のテストバージョンを用いたものをXPのPCで 実行してみたところ、これまでと同様に正しく表示されませんでした。 しかも途中で全体的に表示がおかしく(白っぽく)なって固まってしまいました。 スペックが低すぎると無理なのかもしれません……
Re: 環境により3Dモデルが正しく表示されない ( No.4 )
名前:DiG 日時:2010/07/13 18:23

dxdiagでみたところ、 ttps://www.sugarsync.com/pf/D894788_107120_752366 ↑こんな感じになりました。 また、別のXPのPCだと以下のようになりました。 ------------------ System Information ------------------ Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 2 (2600.xpsp_sp2_gdr.070227-2254) Language: Japanese (Regional Setting: Japanese) System Manufacturer: FUJITSU System Model: FMVC30P131 BIOS: Phoenix FirstBIOS(tm) Desktop Pro Version 2.0 Processor: Intel(R) Pentium(R) 4 CPU 3.00GHz Memory: 630MB RAM Page File: 304MB used, 291MB available Windows Dir: C:\WINDOWS DirectX Version: DirectX 9.0c (4.09.0000.0904) DX Setup Parameters: Not found DxDiag Version: 5.03.2600.2180 32bit Unicode --------------- Display Devices --------------- Card name: Intel(R) 82865G Graphics Controller Manufacturer: Intel Corporation Chip type: Intel(R) 82865G Graphics Controller DAC type: Internal Device Key: Enum\PCI\VEN_8086&DEV_2572&SUBSYS_120D10CF&REV_02 Display Memory: 64.0 MB Current Mode: 1024 x 768 (32 bit) (75Hz) Monitor: Monitor Max Res: 1600,1200 Driver Name: ialmrnt5.dll Driver Version: 6.14.0010.3735 (English) DDI Version: 9 (or higher) Driver Attributes: Final Retail Driver Date/Size: 12/18/2003 09:45:50, 36927 bytes WHQL Logo'd: Yes WHQL Date Stamp: n/a VDD: Mini VDD: ialmnt5.sys Mini VDD Date: 12/18/2003 09:44:40, 95579 bytes Device Identifier: {D7B78E66-6632-11CF-E87D-0732A3C2CB35} Vendor ID: 0x8086 Device ID: 0x2572 SubSys ID: 0x120D10CF Revision ID: 0x0002 Revision ID: 0x0002 Video Accel: ModeMPEG2_A ModeMPEG2_B ModeMPEG2_C ModeMPEG2_D Deinterlace Caps: {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(IMC4,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch Registry: OK DDraw Status: Enabled D3D Status: Enabled AGP Status: Enabled DDraw Test Result: Not run D3D7 Test Result: All tests were successful. D3D8 Test Result: All tests were successful. D3D9 Test Result: The tests were cancelled before completing.
Re: 環境により3Dモデルが正しく表示されない ( No.5 )
名前:管理人 日時:2010/07/15 09:28

Intel 82865G が搭載されたPCで実行できる環境が私の手元にあれば原因も分かると思うのですが・・・ ビューアーでマテリアルの設定を変更した場合や、テクスチャが使用されている モデルを表示した場合はどのようになるのか、よろしければお試しいただけないでしょうか? // ビューアー http://homepage2.nifty.com/natupaji/DxLib/DxLibModelViewerTest.zip あと、宜しければ Intel 82865G の最新のデバイスドライバをインストールしてみてください 問題が解消される場合があります FMV-C630 に搭載されているチップセット Intel 865GV のドライバダウンロードページはこちらです http://support.intel.co.jp/jp/support/chipsets/sb/cs-009241.htm
Re: 環境により3Dモデルが正しく表示されない ( No.6 )
名前:DiG 日時:2010/07/19 17:43

FMVのほうはいじれないので、画像でスペックを示したほうのPCで ドライバを更新してやってみようかと思ったのですが、 そのPCで、ビューアーでモデルを見てみたところ、全て正しく 表示されていました。(;´ ェ`) 自分のプログラムに不備があるということなのでしょうか…… MV1LoadModel MV1SetScale MV1SetPosition MV1SetRotationXYZ MV1DrawModel 途中にいろいろ入りますが、上のような感じにしているのですけれど
Re: 環境により3Dモデルが正しく表示されない ( No.7 )
名前:管理人 日時:2010/07/20 03:20

ビューアーでは正常に表示されましたか・・・ そのビューアーとは No.5 で私が貼り付けたURLのビューアーですよね? もしそうでしたら、こちらの最新バージョンでプログラムをコンパイルすれば DiGさんが組まれたプログラムでも正常な描画結果が得られるかもしれません http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) よろしければお試し下さい m(_ _)m
Re: 環境により3Dモデルが正しく表示されない ( No.8 )
名前:DiG 日時:2010/07/21 18:03

ビューアーはNo.5のURLの物を実行しました。 それで、早速No.7のURLからダウンロードした最新バージョン(VC++用)を用いてコンパイルして 自分のPCで実行してみたのですが、どうにもFPSが落ちているように見えます。 ttp://dixq.net/rp/43.html 上のページの、DixqさんのFPS制御の関数を用いてFPSを確認しているのですが、 それによると今まで通り60くらいだと表示されていますが、 これまでのバージョンのを実行して比べてみるとやはり明らかにFPSが落ちているように見えます。 恐らく半分、30くらいに見えます。 また、USBメモリにソフトを移して、USBメモリの中のものを自分のPCで実行してみると だいたいこれまで通りに表示されていて、ときどき(一定周期で)FPSが低くなってるような(引っかかったような) 感じ(ガッ、ガッ、ガッみたいな)になりました。 なにやらとにかく落ち着きません(;´ ェ`) それで、その最新バージョンを用いたものを正しく表示できなかったPCで実行してみたのですが、 これまで通り、だめでした。
Re: 環境により3Dモデルが正しく表示されない ( No.9 )
名前:管理人 日時:2010/07/23 15:40

FMVで正常に表示されない原因が分かりました 修正版をアップしましたので、よろしければお試しください m(_ _)m ( FPSが低下する現象にも対処しました ) http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 真っ白に表示される原因となっていたのは MV1SetScale で、ライティングの計算には各ポリゴンの法線 ( ポリゴン平面に垂直な長さ1.0の線 )を使用するのですが、MV1SetScale を 使用して拡大させると、常に長さ1.0でなくてはならない法線の長さまで変化 してしまい、結果として正しいライティングが行われていませんでした 「長さが常に1.0になるように計算結果を補正する( 正規化 )」設定をONにすることで この現象を回避するようにしました ( 因みにビューアーで正しく表示されていたのはビューアーでは MV1SetScale を使用していなかったからです ) DiGさんのお手元の環境で正常に表示されたのは、お使いの環境がシェーダーモデル2.0に 対応したグラフィックスデバイスが搭載されていたからです シェーダーモデル2.0が使用できない環境ではライティング計算を全て Direct3D に 任せることになるので、法線の計算結果を正規化するかどうかは前述の設定を行う 必要があるのですが、シェーダーモデル2.0が使用できる環境ではライティング計算の 処理なども全部自前でシェーダープログラムとして用意するので、前述の設定を行わなくても シェーダープログラム中で法線の正規化を行っていれば今回のような現象は発生しません そして、DXライブラリのライティング計算のシェーダープログラムでは正規化をしていたので シェーダーモデル2.0が使用することができる DiGさんのお手元の環境では MV1SetScale を 使用しても正常に表示されていた、ということでした お手間をお掛けして申し訳ありませんでした
Re: 環境により3Dモデルが正しく表示されない ( No.10 )
名前:DiG 日時:2010/07/24 13:37

お疲れ様です。 ……それで、頑張って頂いたところでちょっと言いづらいのですが、 No.9 のバージョンでコンパイルしたもので新たな不具合が生じてしまいました。 3Dモデルを表示しようとしたらプログラムが停止してしまいます。 MV1DrawModel の行でおかしくなっているようで、 デバッガの出力は以下のようになっています。 11968:mem free size:0(0.000kb) file:odelLoader3.cpp line:1084 ID:2233 addr:0bbc03b8 data:<> ] 12025:フォントハンドル値が異常です VSB.exe の 0x7210c298 で初回の例外が発生しました: 0xC0000005: 場所 0x00000011 に書き込み中にアクセス違反が発生しました。 VSB.exe の 0x7210c298 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000011 に書き込み中にアクセス違反が発生しました。
Re: 環境により3Dモデルが正しく表示されない ( No.11 )
名前:管理人 日時:2010/07/26 08:35

駄目でしたか・・・ エラーは MV1LoadModel のサンプルプログラムのようなシンプルなものでも 発生してしまうのでしょうか?
Re: 環境により3Dモデルが正しく表示されない ( No.12 )
名前:DiG 日時:2010/07/26 13:04

そうですね。以下の通りにしても同様にMV1DrawModel のところで止まってしまいます。 以前のバージョンでリビルドしたら正しく実行されるのですが…… #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int ModelHandle ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) { // エラーが発生したら直ちに終了 return -1 ; } // 3Dモデルの読み込み ModelHandle = MV1LoadModel( "DxChara.x" ) ; // 画面に映る位置に3Dモデルを移動 MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 600.0f ) ) ; // 3Dモデルの描画 MV1DrawModel( ModelHandle ) ; // キーの入力待ち WaitKey() ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
Re: 環境により3Dモデルが正しく表示されない ( No.13 )
名前:管理人 日時:2010/07/28 19:49

ご情報ありがとうございます 私の Windows7 環境でもエラーが発生するのを確認できました プログラマブルシェーダーモデル2.0以降が使用できる環境で、 且つ Vista 以降のOS上で実行した場合のみ発生するエラーでした ( シェーダーモデル2.0が使用できない Windows7 と同じ構造の Vista がインストールされているPCで動作したのを見てすっかり 動作確認が済んだつもりでいました orz ) 修正版をアップしましたので何度も申し訳ありませんが よろしければお試しください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 環境により3Dモデルが正しく表示されない ( No.14 )
名前:DiG 日時:2010/07/28 19:16

FMVでも正しく表示されるようになりましたし、 MV1DrawModel でプログラムが停止することもなくなりました。 ありがとうございました!

Page: 1 |