トップページ > 過去ログ > 記事閲覧
環境によってZバッファが正常に適用されない
名前:Aquid 日時: 2009/09/09 22:06

こんばんは、Aquidです。 Zバッファを使っていて、環境によって得られる結果が大きく異なってしまったことを報告いたします。 本来なら以下のコードを実行することで赤と青の要素のみが画面に描画されるはずなのですが、実行環境によって結果が異なる状況に陥りました。 使用しているDXライブラリのバージョンは3.00です。 ・WindowsXP + GeForce 8400GS ・WindowsVista + GeForce Go 7400 ・Windows7 + Intel GMA4500 赤と青の要素のみで描画される。 ・WindowsVista + Intel GMA 950 左半分が水色の要素が描画されてしまう。 #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE); if( DxLib_Init() == -1 ){ MessageBox(NULL,"DirectXの初期化に失敗。\n","Error",MB_OK); return -1 ; // エラーが起きたら直ちに終了 } //メインループ while(ProcessMessage() == 0){ SetDrawScreen(DX_SCREEN_BACK); ClearDrawScreen(); //目安の円を先に描画 DrawCircle(320,240,240,GetColor(0,255,255),TRUE); DrawCircle(320,240,120,GetColor(0,0,255),TRUE); // Zバッファを有効にする SetUseZBufferFlag(TRUE); //画面左半分をマスクで覆う DrawBoxToZBuffer(0,0,320,480,TRUE,DX_ZWRITE_MASK); //中央を円でくりぬく DrawCircleToZBuffer(320,240,240,TRUE,DX_ZWRITE_CLEAR); //再度上より小さい円で埋める DrawCircleToZBuffer(320,240,120,TRUE,DX_ZWRITE_MASK); //画面を赤く描画 DrawBox(0,0,640,480,GetColor(255,0,0),TRUE); ScreenFlip(); clsDx(); }; //DxLibを破棄 DxLib_End(); return 0 ; } なお、ログの出力を一部抜粋したものは以下のとおりです。 ・WindowsVista + Intel GMA 950 524:IDirect3D9 オブジェクトを取得します.... 成功 525:IDirect3DDevice9 オブジェクトを取得します.... ソフトウエア頂点演算を使用します 572:成功 572:画面のフォーマットは D3DFMT_X8R8G8B8 です 572:Zバッファのフォーマットは D3DFMT_D16 です 573:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 573:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 573:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 574:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 574:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 574:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 574:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 575:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 575:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 575:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 575:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 575:描画用 16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 576:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 576:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 576:Zバッファを作成します.... 成功 577:プログラマブルシェーダーを使用しません ・WindowsVista + GeForce Go 7400 520:IDirect3D9 オブジェクトを取得します.... 成功 522:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します 612:成功 612:画面のフォーマットは D3DFMT_X8R8G8B8 です 612:Zバッファのフォーマットは D3DFMT_D16 です 612:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 612:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 613:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 613:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 613:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 613:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 613:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 613:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 614:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 614:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 614:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 614:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です 614:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 614:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 615:Zバッファを作成します.... 成功 653:プログラマブルシェーダーを使用します ・WindowsXP + GeForce 8400GS 468:IDirect3D9 オブジェクトを取得します.... 成功 473:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します 574:成功 574:画面のフォーマットは D3DFMT_X8R8G8B8 です 574:Zバッファのフォーマットは D3DFMT_D16 です 574:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 574:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 575:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 575:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 575:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 575:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 575:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 575:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 575:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 576:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 576:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 576:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です 576:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 576:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 576:Zバッファを作成します.... 成功 578:プログラマブルシェーダーを使用します

Page: 1 |

Re: 環境によってZバッファが正常に適用されない ( No.1 )
名前:Hima 日時:2009/09/09 23:34

同じことかもしれませんが、このトピックを見てください。 hxxp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1317
Re: 環境によってZバッファが正常に適用されない ( No.2 )
名前:管理人 日時:2009/09/13 10:45

ご報告ありがとうございます Intel GMA950の環境でもプログラム通りの動作をするように手を加えたバージョンをアップしました よろしければお使い下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 環境によってZバッファが正常に適用されない ( No.3 )
名前:Aquid 日時:2009/09/13 10:17

指示されたURLからダウンロードしようとしたところ、404NotFoundを返してしまったので 別の書き込みに貼られていたテスト版を使用したところ、想定通りの描画がされました。 ありがとうございました。

Page: 1 |