OpenGL:渲染两个相互交叉的透明平面:不可能或不可能?

New*_*bie 15 opengl transparency

我努力地解决了这个问题,似乎无法渲染.

怎么能解决这个问题呢?我希望OpenGL渲染它看起来像下面这张图片的右侧:

替代文字

tib*_*bur 11

您需要在禁用深度测试和使用与订单无关的混合公式的同时渲染您的平面.

如果背面有一些不透明的几何图形,则绘制这些几何图形,将深度缓冲区设置为只读而不是禁用深度测试,并渲染透明的几何图形.

还有处理这个常见问题的先进技术,如深度剥离.

编辑

您可以使用以下命令将深度缓冲区设置为只读:glDepthMask(GL_FALSE).

这是一篇很好的文章,解释了为什么你无法实现完美的透明度:透明度排序.另请参阅具有双深度剥离的订单独立透明度文章,该文章涵盖两种方法(一种非常简单且单次通过),用于具有精确(或近似)顺序独立透明度.

我忘了提到Alpha覆盖范围.