在 OpenGL 中绘制透明物体时出现奇怪的条纹

问题描述

我正在使用逐像素链接列表来实现 OpenGL 中与顺序无关的透明度。但是当我画一些东西时,发生了一些看起来很奇怪的事情。

下图为非透明模式,一切正常。

enter image description here

下图为透明模式,模型凸起处有一些异常条纹。

enter image description here

在逐像素链表方法的第二阶段,我计算每个像素上的片段数量(在片段着色器中)。我发现模型上的异常条带对应于具有超过 4 个碎片的像素。我将这些像素更改为红色。然后我的模型变成了这个,

enter image description here

vec4 final_color = vec4(background_color.xyz,0.0f);
if (fragment_count >= 1) {
    for (i = 0; i < fragment_count; ++i) {
        vec4 modulator = unpackUnorm4x8(fragment_list[i].y);
        final_color = mix(final_color,modulator,modulator.a);
    }
} else {
    final_color = background_color;
}

if (fragment_count >= 4) {
    final_color = vec4(1.0f,0.0f,1.0f);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...