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 でプログラムが停止することもなくなりました。
ありがとうございました!
|