我有一个带有透明四边形 mustache 的模型。我无法判断哪些三角形属于 mustache ,因为它们的颜色来自传递给片段着色器的纹理。我尝试在导出模型期间将三角形从后向前预排序,但这没有帮助。所以我实现了 MSAA 和 Alpha to Coverage,但这也没有帮助。我的最后一次尝试是绘制模型,关闭深度蒙版并跳过任何透明数据,因此颜色缓冲区将具有要混合的不清晰的颜色值。然后我会第二次绘制模型,进行深度测试并绘制 alpha 片段。
到目前为止我所尝试的一切都不起作用。我还可以尝试哪些其他技术来正确绘制模型的 mustache ?我正在寻找一种不使用大量扩展的方法来处理这个问题。我更喜欢可以用普通旧式 OpenGL 4 处理的技术。
这是我正在处理的图像。
这是我应用所选答案后得到的结果。
最佳答案
您正在尝试做的事情仍然存在一个很大程度上尚未解决的问题:独立于订单的透明度。 MSAA 是完全不同的东西,Alpha 覆盖范围也是如此。
到目前为止,最好的解决方案是将模型分成不透明的部分和毛茸茸的部分。首先绘制场景的不透明部分,然后绘制所有(半)半透明的部分,在第二遍中按由远到近的顺序绘制。
您的图像看起来像是 mustache 被渲染为第一个事物,这与您实际想要的完全相反。
关于opengl - 具有透明度的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18706871/