问题描述
我正在使用逐像素链接列表来实现 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 (将#修改为@)