トップページ > 過去ログ > 記事閲覧
DrawPolygon3Dの不都合?
名前:みけCAT 日時: 2012/09/01 16:37

GCC用DXライブラリ 3.08cを使用しています。 DrawPolygon3Dにおいて、 BMPファイルをLoadImageで読み込み、 TransFlagをFALSEにして描画しているのですが、 黒を使用しているところが透過されてしまっているようです。 これはDXライブラリの不都合ですか?それともプログラムのバグですか? ライトの計算はオフにしています。 ポリゴンを描画する部分はこのようになっています。 void draw3dHenkan( int x1,int y1,int z1, int x2,int y2,int z2, int x3,int y3,int z3, int isUpper,int bmp) { y1=-y1;y2=-y2;y3=-y3; VERTEX3D vertex[3]={}; vertex[0].pos=VGet(x1,y1,z1); vertex[1].pos=VGet(x2,y2,z2); vertex[2].pos=VGet(x3,y3,z3); vertex[0].dif=GetColorU8(255,255,255,255); vertex[1].dif=GetColorU8(255,255,255,255); vertex[2].dif=GetColorU8(255,255,255,255); vertex[0].u=(isUpper?0:1); vertex[0].v=(isUpper?0:1); vertex[1].u=1; vertex[1].v=0; vertex[2].u=0; vertex[2].v=1; DrawPolygon3D(vertex,1,bmp,FALSE); } 検証用プログラムはここの3dtexture_dx.zipです。 (別件の質問スレッドですみません) h_tp://dixq.net/forum/viewtopic.php?f=3&t=11418 よろしくお願いします。

Page: 1 |

Re: DrawPolygon3Dの不都合? ( No.1 )
名前:管理人 日時:2012/09/02 05:30

ご報告ありがとうございます、DXライブラリのバグです 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/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) リンク先のスレッドの問題ですが、Zバッファの精度の問題です SetCameraNearFar の設定が SetCameraNearFar(0.1,1000); となっていますが、この Near の値が小さければ小さいほどZバッファの精度は悪くなります なので、不都合が無い範囲でできるだけ大きくする必要があります ( Far も精度に影響を及ぼしますが、Near に比べると微々たるものです ) なので、とりあえず SetCameraNearFar(100.0,1000); としてみましたところ、精度が改善されて正常に表示されるようになりました よろしければお試しください
Re: DrawPolygon3Dの不都合? ( No.2 )
名前:みけCAT(解決) 日時:2012/09/02 08:27

ありがとうございます。透過の問題は直ったようです。 ポリゴンの端の問題については、 SetCameraNearFar(10,1000); とすることでほぼ問題がなくなりました。

Page: 1 |