如何解决在 OpenGL 中绘制透明物体时出现奇怪的条纹
我正在使用逐像素链接列表来实现 OpenGL 中与顺序无关的透明度。但是当我画一些东西时,发生了一些看起来很奇怪的事情。
下图为透明模式,模型凸起处有一些异常条纹。
在逐像素链表方法的第二阶段,我计算每个像素上的片段数量(在片段着色器中)。我发现模型上的异常条带对应于具有超过 4 个碎片的像素。我将这些像素更改为红色。然后我的模型变成了这个,
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 举报,一经查实,本站将立刻删除。