0

次のアルゴリズムを実行するにはどうすればよいですか? :

if(Color.a < 0.9)
    gl_FragDepth = gl_PrevFragDepth;
else
    gl_FragDepth = gl_FragCoord.z;

これは で作成できますが glDepthMask(false);、すべてのピクセルが であるポリゴンで動作していますalpha < 1。ポリゴンにピクセルがalpha = 1あり、alpha < 1レンダリングされた画像が正しくない場合。これは、アルファ値を含むテキスト マスクをレンダリングするために必要です。

深度バッファをリアルタイムで操作する必要があるため、深度テクスチャを使用できません!

4

1 に答える 1

0

次のアルゴリズムを実行するにはどうすればよいですか? :

OpenGL-4 では、フラグメント シェーダーで深度テクスチャ書き込みを使用してそれを行うことができました。しかし、GPU は分散アクセスではなく収集アクセス用に最適化されているため、パフォーマンスはひどいものになりますが、これはあなたがやろうとしていることです。

OpenGL-3 以下では実行できません。ごめん。

于 2012-05-30T11:59:28.517 に答える