我通过深度剥离绘制透明图形,当我渲染到多样本(出现网格)时,结果很难看
vec4 fragColor = texelFetch(frontTexture, ivec2(gl_FragCoord.xy), 0);
if (gl_FragCoord.z < nearestDepth) {
// Skip this depth in the peeling algorithm
return;
}
fragColor += someColor;
没有“如果返回”,一切都很好(但是我需要这个“如果”)。网格与我将mipmapping与非均匀流控制一起使用时完全相同。
答案 0 :(得分:0)
gl_FragCoord仅在片段语言中可用,是一个输入变量,其中包含片段的窗口相对坐标(x,y,z,1 / w)值。如果是多采样,则此值可以用于像素[ !!! ]
内的任何位置
P.S。深度剥离使用严格的深度比较,如果“对于像素内的任何位置”都无法获得深度,则不可能。代替
if (gl_FragCoord.z < nearestDepth)
使用
if (gl_FragCoord.z < nearestDepth - 0.0001)
(这是第一个简单的解决方案)