Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.8 ) |
- 名前:管理人 日時:2015/03/09 23:36
すみません、少し同じことを申し上げてしまいますが
最初のモデル読み込みを開始するタイミングと、ChangeWindowMode 呼出し後の
モデル読み込みを開始するタイミングの箇所にそれぞれ
DxDumpAlloc() ;
という記述を増やしてみてください
そうすると Log.txt にそれぞれの使用メモリ量などが出力されます
よろしければ『読み込みに成功したとき』と『読み込みに失敗したとき』の、
Log.txt の中の以下のような総使用メモリ量と総メモリ確保数の部分を
こちらの掲示板に貼り付けて頂けないでしょうか?
53339: Total size:136586133(133384.891kb) Alloc num:1471
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.9 ) |
- 名前:N.M 日時:2015/03/10 00:33
最初の読み込み成功時は
17053: Total size:172732492(168684.078kb) Alloc num:1494
となっていまして、
ChangeWindowMode実行後の読み込み失敗時は
43491: Total size:136586133(133384.891kb) Alloc num:1471
となってました。
自分も理解できてなかったところがありまして申し訳ありません。
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.10 ) |
- 名前:管理人 日時:2015/03/10 23:03
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.11 ) |
- 名前:N.M 日時:2015/03/11 00:27
ご返答ありがとうございます。で、早速そのバージョ
ンに変えてみたのですが、そしたらソフト起動直後も
読み込まなくなったり、色とかもおかしくなってしま
いましたね(見た感じRGBのRとBが入れ替わってる)・・・
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.12 ) |
- 名前:管理人 日時:2015/03/11 00:48
お試しいただきありがとうございます
駄目でしたか・・・
すみません、幾つかご質問させてください
1.全く同じモデルファイルを全く同じ順番で読み込んでいるにも関わらず、
失敗する場合と成功する場合があるのでしょうか?
2.SetUseASyncLoadFlag( TRUE ) ; を使用して非同期読み込みを行っていますでしょうか?
3.ChangeWindowMode関数を使用した後の読み込みで失敗するとのことですが、
フルスクリーンモードからウインドウモードにされたのか、
ウインドウモードからフルスクリーンモードにされたのか、どちらでしょうか?
4.DxLib_Init の呼び出しの前に SetUseDirect3DVersion( DX_DIRECT3D_9 ) ; という記述を追加して
実行した場合も同じように読み込みに失敗してしまいますでしょうか?
5.「色とかもおかしくなってしまいましたね(見た感じRGBのRとBが入れ替わってる)・・・」
こちらについてですが、全ての色がおかしくなってしまっているのでしょうか?
若しくはモデルの描画結果のみで、DrawString による文字列描画や DrawGraph などによる
画像描画は正常な色でしょうか?
あと、何度も申し訳ないのですが、暫定最新版で実行した際の Log.txt の内容の、
『読み込みが失敗した際に出力される使用メモリ情報以外の部分』をこちらに貼り付けて頂けないでしょうか? m(_ _;m
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.13 ) |
- 名前:N.M 日時:2015/03/11 02:04
質問に答えさせて頂きます。
1.そうですね。あまり多くないですが、同じプログラムでChangeWindowModeで変更後も再読み込みが成功している例も見ています。
2.非同期読み込みはソフト起動時のみ行ってます。ChangeWindowMode後は同期読み込みで読み込んでいます。
3.両方の場合で失敗していますね・・・
4・5.SetUseDirect3DVersion( DX_DIRECT3D_9 ) ; の記述を加えたところ色は正常に戻りました。また異常
だったときはモデル以外にもDrawString等で描写した文字についても色がおかしかったです。2Dの画像だけ
正常に描写されていました。ただ、その記述を入れましたら、入れなかったときは読み込みが終わらない現
象が起きましたが、こんどはアクセス違反が起きるようになってしまいました。
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.14 ) |
- 名前:N.M 日時:2015/03/11 02:11
で、これがlogの内容です。
0:設定されている画面設定 800x600 32bit color
46:システムの情報を出力します
46: DXライブラリ Ver3.13e
46: 論理プロセッサの数 : 4
153: 現時点のCPU動作速度:大体2.69GHz
155: MMX命令を使用します
156: SSE命令が使用可能です
158: SSE2命令が使用可能です
159: CPUベンダ:178:ウインドウの作成に成功しました
179:ウインドウを表示します
225:DirectInput関係初期化処理
226: XInput DLL の読み込み中... 成功
260: 引き続き初期化処理... 初期化成功
272:DirectInput 関連の初期化は正常に終了しました
成功
288:引き続きインターフェースの初期化処理... 成功
537: DirectSound デバイスを列挙します
553:DirectSound の初期化は正常に終了しました
成功
576:引き続き初期化処理... 初期化に成功しました
601:IDirect3D9 オブジェクトを取得します.... ハードウエア頂点演算を使用します
2337:成功
2345:Driver:nvumdshim.dll Description:Intel(R) HD Graphics 4000
2351:画面のフォーマットは D3DFMT_X8R8G8B8 です
2359:16bit Zバッファフォーマットは D3DFMT_D16 です
2360:24bit Zバッファフォーマットは D3DFMT_D24X8 です
2362:32bit Zバッファフォーマットは D3DFMT_D24X8 です
2364:16bit カラーフォーマットは D3DFMT_R5G6B5 です
2366:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
2368:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です
2369:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
2370:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です
2371:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
2373:DXT1テクスチャフォーマットはD3DFMT_DXT1 です
2379:DXT2テクスチャフォーマットはD3DFMT_DXT2 です
2381:DXT3テクスチャフォーマットはD3DFMT_DXT3 です
2383:DXT4テクスチャフォーマットはD3DFMT_DXT4 です
2386:DXT5テクスチャフォーマットはD3DFMT_DXT5 です
2389:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です
2391:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
2394:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
2395:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
2396:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
2398:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
2403:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です
2405:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です
2406:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です
2407:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です
2408:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
2410:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です
2411:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です
2412:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です
2413:一度に描画できるプリミティブの最大数:1048575
2414:対応している最大頂点インデックス:16777215
2419:同時にレンダリングできるバッファの数:4
2420:最大テクスチャサイズ 幅:8192 高さ:8192
2422:テクスチャステージテンポラリレジスタ:使用可
2423:減算合成のハードウェア対応:ネイティブ
2424:ハードウェア頂点シェーダーバージョンコード:300
2426:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し
2428:ピクセルシェーダーバージョンコード:300
4082:プログラマブルシェーダーを使用します
4143:フォントの初期化を行います
13267:DirectSoundBuffer の作成に失敗しました
13343:
13345:Alloc memory dump
(中略・・・メモリ情報)
15103: Total size:160908336(157137.047kb) Alloc num:1500
15105:
22100:ChangeWindowMode実行
22102:ウインドウモードフラグが立てられました
22103:ウインドウスタイルをウインドウモード用に変更します... 22132: フォントの初期化を行います
22236: Direct3DDevice9 の解放 2
23485: d3d9.dll の解放 1
23889: 成功
23901: Driver:nvumdshim.dll Description:Intel(R) HD Graphics 4000
23906: 画面のフォーマットは D3DFMT_X8R8G8B8 です
23912: 16bit Zバッファフォーマットは D3DFMT_D16 です
23915: 24bit Zバッファフォーマットは D3DFMT_D24X8 です
23917: 32bit Zバッファフォーマットは D3DFMT_D24X8 です
23919: 16bit カラーフォーマットは D3DFMT_R5G6B5 です
23933: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
23935: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です
23941: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
23953: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です
23963: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
23969: DXT1テクスチャフォーマットはD3DFMT_DXT1 です
23974: DXT2テクスチャフォーマットはD3DFMT_DXT2 です
23979: DXT3テクスチャフォーマットはD3DFMT_DXT3 です
23985: DXT4テクスチャフォーマットはD3DFMT_DXT4 です
23990: DXT5テクスチャフォーマットはD3DFMT_DXT5 です
23995: 描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です
24204: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
24213: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
24215: 描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
24221: 描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
24226: 描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
24228: 描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です
24230: 描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です
24231: 描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です
24233: 描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です
24234: 描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
24235: 描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です
24237: 描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です
24238: 描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です
24239: 一度に描画できるプリミティブの最大数:1048575
24248: 対応している最大頂点インデックス:16777215
24254: 同時にレンダリングできるバッファの数:4
24259: 最大テクスチャサイズ 幅:8192 高さ:8192
24275: テクスチャステージテンポラリレジスタ:使用可
24284: 減算合成のハードウェア対応:ネイティブ
24288: ハードウェア頂点シェーダーバージョンコード:300
24290: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し
24292: ピクセルシェーダーバージョンコード:300
(メモリ情報)
完了
24478:画面モード変更処理は正常に終了しました
25135:
25136:Alloc memory dump
27457: Total size:124650145(121728.656kb) Alloc num:1471
27459:
また今回このようなデバッグ中このようなエラーが出ました。
shooting.exe の 0x00be26c7 で初回の例外が発生しました: 0xC0000005: 場所 0x8190eba0 を読み込み中にアクセス違反が発生しました。
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.15 ) |
- 名前:管理人 日時:2015/03/11 23:30
ご返答&Log.txtの貼り付けありがとうございます
Direct3D 11 を使用した場合は 2D の画像だけが正常な色で描画されていたのですね・・・
すみません、更にご質問です
1.非同期読み込みは一切使用しなかった場合( ソフト起動時も同期読み込み )にした場合、
Log.txt に出力される内容が変化したりせず、常に結果は同じになりますでしょうか?
2.「ただ、その記述を入れましたら、入れなかったときは読み込みが終わらない現
象が起きましたが、こんどはアクセス違反が起きるようになってしまいました。」こちらは
「2D画像の描画処理を行わないと『読み込みが終わらない現象』が発生して、
2D画像の描画処理を加えると『アクセス違反』が発生する」という解釈で宜しいでしょうか?
3.「読み込みが終わらない現象」については今までのお話にはありませんでしたが、
今回初めて発生したのでしょうか?
4.No.14のログを拝見する限りでは 32bit アプリとして実行されているようですが、
暫定最新版で 64bit アプリとして実行した場合はどのような結果になりますでしょうか?
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.16 ) |
- 名前:N.M 日時:2015/03/12 02:27
いつもお世話になっております。
1.おそらくLogの内容はだいたい変化なく、起動時の読み込みは正常に出来てるようです。ただ今Log見返
したのですがChangeWindowMode後に
38977: シェーダーコードを展開するメモリ領域の確保に失敗しました
38978: プログラマブルシェーダーを使用しません
というのが表示されてました。
2.SetUseDirect3DVersion( DX_DIRECT3D_9 );を加えなかったときはChangeWindowMode後そのまま再読み込みが終わらなくなり、加えたときは再読み込みの時にアクセス違反が起きてソフトが止まるようになりました。
3.DXライブラリの暫定最新版を入れてから初めて起こるようになりました。(ver3.13dの時は起きませんでした。)
4.Visual Studio Expressだと64bit版作るのにいろいろインストールしなければならないみたいですね。
ちょっと時間かかりそうなので今度試してみようと思います。
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.17 ) |
- 名前:N.M 日時:2015/03/12 03:25
報告申し上げます。インストールして64bit版にしたところ、暫定版だとやはりアクセス違反が起きてしまうようですが、ver3.13dの時はChangeWindowMode後も無事読み込むことが出来てました。No2、No3のときはどうやらまだ32bitのままだったようです。
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.18 ) |
- 名前:管理人 日時:2015/03/13 01:06
お試しいただきありがとうございます
Ver3.13d で 64bit版でしたら正常に動作したとしますと、やはり Ver3.13d での不具合は
メモリ不足が原因だったと考えて問題無さそうです
暫定最新版の不具合についてですが、色の R と B が入れ替わってしまうことや、
32bit版でのメモリ不足が異常なものではないか確認したいと思いますので、
もし不都合が無ければ現象を確認できるプログラムとプログラムの実行に必要な
ファイルをメールでこちら
BQE00322(あっとまーく)nifty.com
( (あっとまーく)を@に置き換えてください )
に送っていただけないでしょうか? m(_ _;m
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.19 ) |
- 名前:N.M 日時:2015/03/13 02:56
いろいろと対応して頂きましてありがとうございました。いままでテストしていたプログラム一式を送信す
ると16MBくらいいってしまって送信できなかったので新たにプログラムを組んでみようと思います。そのた
め時間がかかりますので少々お待ち頂ければとおもいます。
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.20 ) |
- 名前:N.M(解決) 日時:2015/03/13 12:25
RとBが入れ替わっているという件についてですが、どうやら暫定版になってカラーハンドルの仕様が変更さ
れたのが原因だったみたいです。(GetColorでちゃんと指定したら正常に表示されました。面倒くさがって
直接16進数で指定してたのでこのようなことが起きたのだと思います。)3Dモデルも背景の色が変わったた
めに色が変わったと錯覚しましたがモデル自体の色は正常でした。あと読み込めないといったことは管理人
様のおっしゃるとおりメモリ不足が原因だったようです。いろいろと教えて頂いたり、対応して頂きまして
本当にありがとうございました。
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.21 ) |
- 名前:管理人(解決) 日時:2015/03/14 00:50
問題が解決した様で何よりです
最後に一つだけご質問させてください No.17 のお書き込みに
『インストールして64bit版にしたところ、暫定版だとやはりアクセス違反が起きてしまうようですが』
とあります通り、暫定最新版では 64bitビルドにしても読み込み失敗やアクセス違反が発生してしまうという
認識で間違いないでしょうか?
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.22 ) |
- 名前:N.M(解決) 日時:2015/03/14 23:02
はい、そのとおりです。
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.23 ) |
- 名前:管理人(解決) 日時:2015/03/15 00:11
ご返答ありがとうございます
では、現在お名前の末尾が(解決)となっていますが、No.19 のお書き込みの通りテスト用の
プログラムを作成して頂けるという認識でよろしいのでしょうか?
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.24 ) |
- 名前:N.M 日時:2015/03/15 02:57
あっと、そうですね。そこはまだ未解決でしたね。はい、作製してみようと思います。少々お待ちください。
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.25 ) |
- 名前:管理人 日時:2015/03/16 03:14
すみません、(解決)とされていたので「もしかしてこちらも直ってたのだろうか?」と思いご確認させていただきました
ここ1週間ほど大きな変更を行っていて簡単なテストもできない状態だったのですが、先ほど漸く実行できる
状態になったので手元のモデルで ChangeWindowMode 後に MV1LoadModel で読み込むというテストを
行ってみたところ、読み込み終了が行われない現象とアクセス違反が発生する現象を確認できました
恐らく N.Mさんが遭遇した不具合と同じものだと思います
修正できたのですが、大きな変更によるその他の不具合がある状態なので、
修正版のアップはもう少しお待ちください m(_ _;m
|
Re: ChangeWindowMode関数後の3Dモデルの読み込み ( No.26 ) |
- 名前:管理人 日時:2015/03/23 00:03
|
ChangeWindowMode関数後の3Dモデルの読み込み ( No.27 ) |
- 名前:N.M(解決) 日時:2015/03/24 20:09
ありがとうございます。試してみたところエラーは発生せず正常に読み込みが出来ました。いろいろ対応し
て頂き本当にありがとうございました。
|