トップページ > 過去ログ > 記事閲覧
透明テクスチャについて
名前:Dragon 日時: 2011/11/05 17:16

今、DXライブラリで3Dアクションゲームを 作ってるのですが、3Dモデルで透明テクスチャを貼るとまったく表示されません。 ファイルは、bmpです。 0:システムの情報を出力します 0: DXライブラリ Ver3.06c 0: 論理プロセッサの数 : 8 0: OS Windows7 ( Build 7600 ) 100: CPU動作速度:大体1.85GHz 102: MMX命令を使用します 103: SSE命令が使用可能です 104: SSE2命令が使用可能です 105: CPUベンダ:GenuineIntel 109: CPU名: Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz 113:COMの初期化... 成功しました 122:メモリ総量:8106.17MB 空きメモリ領域:5866.10MB 123:タイマーの精度を検査します 124:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 125: パフォーマンスカウンターを使用します タイマー精度 : 1948.750000 KHz 126: ソフトの二重起動検査... 二重起動はされていませんでした 127:ウインドウクラスを登録します... 登録に成功しました 129:ウインドウモード起動用のウインドウを作成します 133:ウインドウの作成に成功しました 211:IMEを無効にしました 213:ウインドウスタイルをウインドウモード用に変更します... 完了 214:DirectInput関係初期化処理 215: DirectInput7 の取得中... 成功 245: 引き続き初期化処理... 初期化成功 249: ジョイパッドの初期化... 253: ジョイパッドの初期化は正常に終了しました 254: マウスデバイスの初期化... 初期化成功 256: キーボードデバイスの初期化... 初期化成功 258:DirectInput 関連の初期化は正常に終了しました 262:DirectSound の初期化を行います 262:DirectSound インターフェースの取得を行います.... 成功 270:引き続きインターフェースの初期化処理... 成功 543: DirectSound デバイスを列挙します 545: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 546: モジュール名:{0.0.0.00000000}.{774a6620-4467-4740-9071-c132d58a405f} ドライバ記述:スピーカー (Realtek High Definition Audio) 547: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 548: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 549: 利用可能サンプリング精度 550: プライマリ 16bit = OK 8bit = OK 551: セカンダリ 16bit = OK 8bit = OK 552: 利用可能チャンネル 553: プライマリ MONO = OK STEREO = OK 554: セカンダリ MONO = OK STEREO = OK 556:DirectSound の初期化は正常に終了しました 563:DirectDraw オブジェクトの取得を行います.... 成功 577:引き続き初期化処理... 初期化に成功しました 621:IDirect3D9Ex オブジェクトを取得します.... 成功 626:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 971:成功 972:Driver:igdumdx32.dll Description:Intel(R) HD Graphics Family 973:画面のフォーマットは D3DFMT_X8R8G8B8 です 974:Zバッファのフォーマットは D3DFMT_D16 です 975:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 976:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 977:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 977:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 978:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 979:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 980:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 981:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 982:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 983:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 984:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 985:描画用 16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 986:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 986:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 987:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です 988:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です 988:最大テクスチャサイズ 幅:4096 高さ:4096 989:テクスチャステージテンポラリレジスタ:使用可 990:減算合成のハードウェア対応:ネイティブ 991:頂点シェーダーバージョンコード:300 991:ピクセルシェーダーバージョンコード:300 1145:バックバッファロック転送の時間:28608nsec 一時的な描画可能バッファを使用した転送の時間:1105nsec 1146:バックバッファロックを使用しません 1147:Zバッファを作成します.... 成功 1171:プログラマブルシェーダーを使用します 1383:フォントの初期化を行います 1390:フォントの初期化は正常に終了しました 1391:文字コードバッファの初期化を行います... 完了しました 1891:Read Model Convert Error : テクスチャ tx1.bmp の読み込みに失敗しました 1900:VMD Load Error : 対応していない VMD バージョンです 4424:ウインドウを閉じようとしています 4432:ウインドウが破棄されようとしています 4433:ソフトを終了する準備が整いました 4464:フォントの初期化を行います 4466:フォントの初期化は正常に終了しました 4468:Direct3DDevice9 の解放 3 4514:Direct3D9 DLL の解放 4 4516:DirectInput 関連の終了処理... 完了 4576:DirectSound の終了処理は正常に終了しました 4577: 4577:Alloc memory dump 4578: size: 8296( 8.102kb) file:DxModelRead.cpp line:4700 ID:823 addr:005663b8 data:<................> [0d f0 ad ba 0d f0 ad ba 0d f0 ad ba 0d f0 ad ba] 4579: size: 19612( 19.152kb) file:DxModelRead.cpp line:4609 ID:821 addr:005bb010 data:<.............L..> [00 00 00 00 00 00 00 00 05 00 00 08 9c 4c 00 00] 4580: Total size:27908(27.254kb) Alloc num:2 4580:

Page: 1 |

Re: 透明テクスチャについて ( No.1 )
名前:Dragon 日時:2011/11/05 17:18

dxライブラリのバグなのでしょうか メタセコイヤではちゃんと表示されました。
Re: 透明テクスチャについて ( No.2 )
名前:いっち 日時:2011/11/05 21:49

読み込めないテクスチャのファイルをアップローダなどでご提供頂けますか?
Re: 透明テクスチャについて ( No.3 )
名前:Dragon 日時:2011/11/06 10:34

//www1.axfc.net/uploader/Sc/so/289885 にアップロードしました。 キーワードは、dxlibです。 透明テクスチャはレンズフレアを再現しようとおもって使いました。
Re: 透明テクスチャについて ( No.4 )
名前:いっち 日時:2011/11/06 16:39

原因は図りませんが、テスト版のモデルビューアでモデルを読み込むと強制終了が起こりました。 メタセコイアの透明テクスチャに対応していないだけかも分かりませんが、 管理人さんの見解をお待ちするのが良いと思います。
Re: 透明テクスチャについて ( No.5 )
名前:yasi 日時:2011/11/06 23:50

Dragonさんが上げてくださったファイルを使用し、 Ver3.06cのModelViewerで確認できた内容2点を書かせていただきます。 1つはメタセコイアにてディフューズ(模様)マップを設定せず、 透過マップのみを設定した場合正常に読込めないようです。 これはModelViewerのマテリアルに透過マップの選択が無い事から推測すると、 モデルデータ読込み時に、透過マップをα値としてディフューズマップのデータと合成し、 透過マップデータを単体で保持していないのかもしれません。 もう1つは余談的な内容ですが、 ディフューズマップに32bitBMPを使用し、さらに透過マップが設定されていた場合、 メタセコイアでは透過マップ側を優先し透過処理が行われているようですが、 ModelViewerではディフューズマップのα値が優先されているようでした。 確認はしていませんが、32bitPNGでも同じように処理されるかもしれません。 こういった使用方はまれだとは思いますが・・・。 Dragonさんがもしお急ぎであれば手段としては32bitBMP出力が可能なようですので、 基本色をRGB値に、透過マップをα値として1枚の32bitBMPをペイントソフトで作成したうえで、 ディフューズ(模様)マップのみの設定にすることで回避できるかもしれません。
Re: 透明テクスチャについて ( No.6 )
名前:管理人 日時:2011/11/07 00:09

ご報告ありがとうございます mqoファイルの読み込みプログラムにバグがあり、読み込みに失敗していました 修正版をアップしましたので、よろしければお試しください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCCTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMinGWTest.exe // MinGW 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) // ビューアー http://homepage2.nifty.com/natupaji/DxLib/DxLibModelViewerTest.zip 尚、表示されるようにはなりますが透明要素のあるモデルは画面奥側にあるものから描画しないと 正常な描画結果が得られませんので、フレームの順番を mqo で変更するか、モデルの描画に MV1DrawModel ではなく MV1DrawFrame でプログラム実行時に奥に配置されているフレームから 描画するようにする必要があります > yasiさん ディフューズマップが無い場合も読み込めるようにしていたつもりでしたがそこにバグがありました orz
Re: 透明テクスチャについて ( No.7 )
名前:Dragon(解決) 日時:2011/11/07 17:08

ちゃんと表示されました。! 管理人さん修正ありがとうございます。

Page: 1 |