0

我怎么能做下一个算法?:

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

我可以 glDepthMask(false);alpha < 1. 如果多边形有像素alpha = 1并且alpha < 1我有不正确的渲染图片。我需要它来呈现包含任何 alpha 值的文本掩码!

我不能使用深度纹理,因为我需要实时使用深度缓冲区!

4

1 回答 1

0

我怎么能做下一个算法?:

在 OpenGL-4 中,您可以使用片段着色器中的深度纹理写入来做到这一点。但是性能会很糟糕,因为 GPU 针对收集访问进行了优化,而不是分散访问,但是这正是您想要做的。

使用 OpenGL-3 及以下您无法做到这一点。对不起。

于 2012-05-30T11:59:28.517 回答