トップページ > 記事閲覧
非テクスチャマテリアルの描画ができない
名前:さかな 日時: 2013/10/22 23:08

お世話になっております。 DXライブラリを用いてモデルを描画しようとしたところ、 テクスチャは正常に表示されるのですが、 それ以外のマテリアルが真っ黒になってしまいます。 その際、標準エラー出力に libpng error: Not a PNG file という表示が流れ続けます。 また、最適化(-O3)を有効にするとコンソール上の表示は消えて、 その代わりにソフト本体が異常終了してしまいました。 環境は Windows 8.1 Professional Core i7-3540M Intel HD Graphics 4000 DXライブラリ3.10e(MinGW-GCC4.7.2) ですが、 ライブラリ本体はAVX命令を有効にしてx86用にビルドしています。 なお、not a png fileという表示は、 テクスチャを含まないモデルでも現れたので、 テクスチャでないマテリアルをテクスチャとして読み込もうとしているように思えるのですが、 原因が全く分からず困っております。 どなたか助けて頂けるとありがたいです。 以下に現象発生時のログを載せます。 0:システムの情報を出力します 15: DXライブラリ Ver3.10e 15: 論理プロセッサの数 : 4 15: OS Windows8 ( Build 9200 ) 32:COMの初期化... 成功しました 42:メモリ総量:8070.14MB 空きメモリ領域:4549.68MB 46:タイマーの精度を検査します 50:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 54: パフォーマンスカウンターを使用します タイマー精度 : 2922.995000 KHz 62: ャtトの二重起動検査... 二重起動はされていませんでした 74:ウインドウクラスを登録します... 登録に成功しました 82:ウインドウモード起動用のウインドウを作成します 88:ウインドウの作成に成功しました 93:ウインドウを侮ヲします 103:IMEを無効にしました 108:ウインドウスタイルをウインドウモード用に変更します... 完了 116:DirectInput関係初期化処理 120: XInput DLL の読み込み中... 成功 129: DirectInput7 の取得中... 成功 142: 引き続き初期化処理... 初期化成功 151: ジョイパッドの初期化... 158: ジョイパッドの初期化は正常に終了しました 162: マウスデバイスの初期化... 初期化成功 171: キーボードデバイスの初期化... 初期化成功 181:DirectInput 関連の初期化は正常に終了しました 187:DirectDraw オブジェクトの取得を行います.... 成功 197:引き続き初期化処理... 初期化に成功しました 213:IDirect3D9Ex オブジェクトを取得します.... 成功 222:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 598:成功 602:Driver:igdumdim32.dll Description:Intel(R) HD Graphics 4000 606:画面のフォーマットは D3DFMT_X8R8G8B8 です 610:Zバッファのフォーマットは D3DFMT_D16 です 615:16bit カラーフォーマットは D3DFMT_R5G6B5 です 619:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 622:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 626:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 631:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 635:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 639:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 643:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 647:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 651:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 655:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 659:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 664:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 667:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 672:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 676:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 680:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 684:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 689:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 693:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 697:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 701:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 705:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 710:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 713:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 718:一度に描画できるプリミティブの最大数:1048575 722:対応している最大頂点インデックス:16777215 727:同時にレンダリングできるバッファの数:4 731:最大テクスチャサイズ 幅:8192 高さ:8192 735:テクスチャステージテンポラリレジスタ:使用可 739:減算合成のハードウェア対応:ネイティブ 743:ハードウェア頂点シェーダーバージョンコード:300 747:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 752:ピクセルシェーダーバージョンコード:300 767:バックバッファロック転送の時間:1651nsec 一時的な描画可買oッファを使用した転送の時間:1463nsec 771:バックバッファロックを使用しません 776:Zバッファを作成します.... 成功 859:プログラマブルシェーダーを使用します 915:フォントの初期化を行います 920:フォントの初期化は正常に終了しました 40494:ウインドウを閉じようとしています 40506:ウインドウが破棄されようとしています 40511:ャtトを終了する準備が整いました 40517:フォントの初期化を行います 40525:フォントの初期化は正常に終了しました 40534:Direct3DDevice9 の解放 2 40543:Direct3D9 DLL の解放 1 40549:DirectInput 関連の終了処理... 完了
メンテ

Page: 1 |

Re: 非テクスチャマテリアルの描画ができない ( No.1 )
名前:管理人 日時:2013/10/22 23:28

こちらのスレッドと同じ原因( gccのバージョン違いが原因 )のような気がします http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=3144 DXライブラリとDXライブラリが使用している libjpeg や libpng などのライブラリを GCC 4.7.2 でコンパイルしたものをアップしてありますので、 よろしければこちらをお試しになってみてください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
メンテ
Re: 非テクスチャマテリアルの描画ができない ( No.2 )
名前:さかな 日時:2013/10/22 23:40

>管理人さん 迅速な回答ありがとうございます! すみません、libpng、zlib、DXライブラリと件のプログラムは すべてGCC4.7.2でコンパイルしたものです。 (jpeg読み込み機能は無効化してあります)
メンテ
Re: 非テクスチャマテリアルの描画ができない ( No.3 )
名前:管理人 日時:2013/10/23 00:16

うーんそうでしたか・・・ そういえば今見てみたらMinGW版は DxGraphics.cpp は最適化なし、それ以外のソースは 全部 -O2 でコンパイルしていました 以前私も謎の強制終了現象に悩まされてそうした記憶があります・・・
メンテ
Re: 非テクスチャマテリアルの描画ができない ( No.4 )
名前:さかな 日時:2013/10/27 14:44

返信が遅れてしまい、大変申し訳ありません。 MinGW版のDXライブラリ3.11のバイナリをダウンロードして リンクしてみたところ、正常に動作することが確認できました。 原因は依然不明のままですが、とりあえずこのまま使ってみようと思います。 追記: すみません、プログラム自体は動くのですが、 やはり標準エラー出力に次のようなメッセージが表示されました。 Not a JPEG file: starts with 0x89 0x50 Not a JPEG file: starts with 0x00 0x00 libpng error: Not a PNG file Empty input file libpng error: Read Error Not a JPEG file: starts with 0x00 0x00 libpng error: Not a PNG file Empty input file libpng error: Read Error 描画したモデル中でjpegファイルは一切使っていません。 テクスチャを1枚も含まないモデルを描画しても、 上と全く同一のメッセージが出ます。
メンテ
Re: 非テクスチャマテリアルの描画ができない ( No.5 )
名前:管理人 日時:2013/10/30 16:19

> すみません、プログラム自体は動くのですが、 > やはり標準エラー出力に次のようなメッセージが表示されました。 すみません、こちらでも確認できました 修正したバージョンをアップしましたので、よろしければお試しください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
メンテ
Re: 非テクスチャマテリアルの描画ができない ( No.6 )
名前:さかな 日時:2013/10/30 16:37

管理人さん、早速の対応に感謝いたします。 更新版を使わせて頂きます。
メンテ

Page: 1 |

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

   クッキー保存