2

ゲーム用にOpenTKとOpenGLを使用してクイック2Dレンダリングシステムをセットアップしました。私は以下を使用して透明度を設定しました:

GL.Enable(EnableCaps.Blend);
GL.BlendFunc(BlendingFactorSrc.One, BlendingFactorDest.OneMinusSrcAlpha);

ただし、描画に行くと(テクスチャはSystem.Drawingがロードされたpngファイルです)、描画呼び出しの開始時にクリアした色とのみブレンドされます。

img

2Dレンダリングはすでに十分にテストされているため、MonoGameに切り替えることになりました。

4

1 に答える 1

2

正しい順序で描画していないようです。正しくブレンドするには、ポリゴンを後ろから前に並べ替えて、「後ろ」のものが最初に描画されるようにする必要があります。

ただし、その図に基づくと、ブレンドする代わりにアルファテストを使用する方がよい場合があります。アルファテストは、アルファがしきい値未満のピクセルを破棄するだけです。ブレンドよりも安価で、使用するためにオブジェクトを並べ替える必要はありません。半透明のオブジェクト(0と1の間のアルファ)を​​使用する場合にのみ、ブレンドが必要です。

于 2012-12-01T08:27:24.487 に答える