2

3D ワールドで透明な 2D スプライトを描画する必要があります。QUAD をレンダリングし、(slick_util を使用して) テクスチャリングし、カメラに向くように回転させてみましたが、それらが多数ある場合、透明度は実際には機能しません。カメラに最も近いスプライトは、その前にレンダリングされた場合、その後ろにあるスプライトをブロックします。

OpenGL はアルファ値をチェックせずに、ビューアに最も近いオブジェクトのみを描画するためだと思います。これは、最も遠いものから最も近いものに並べ替えることで修正できますが、その方法がわからず、距離を取得するために math.sqrt を使用する必要はありませんか? (遅いと聞いたことがあります)

3D で透過性を正しく機能させる簡単な方法はあるのでしょうか。(OpenGL で何かを有効にするなど)

4

1 に答える 1

1

深度テストを無効にし、透明なジオメトリを前後にレンダリングします。

または、加算ブレンディングに切り替えて、うまくいくことを願っています。

または深層剥離を使用します。

于 2013-04-23T15:32:07.750 に答える