我怎样才能做下一个算法? :
if(Color.a < 0.9)
gl_FragDepth = gl_PrevFragDepth;
else
gl_FragDepth = gl_FragCoord.z;
我可以用
glDepthMask(false);
,但它正在使用包含alpha < 1
所有像素的多边形。如果多边形包含alpha = 1
和alpha < 1
的像素,则表示渲染图片不正确。我需要这个来渲染文本掩码,它包含任何alpha值!
我无法使用深度纹理,因为我需要实时使用深度缓冲区!
答案 0 :(得分:0)
我怎样才能做下一个算法? :
在OpenGL-4中,您可以使用片段着色器中的深度纹理写入来完成。但性能将会非常糟糕,因为GPU已针对集合访问进行了优化,而不是分散访问,而这正是您尝试做的事情。
使用OpenGL-3及以下版本,你无法做到。遗憾。