我想在 OpenGL 中使用 C++ 和 GLSL 做什么:当纹理具有 alpha (texture.a! = 1.0;) 时,该像素不会写入深度缓冲区。(对于颜色缓冲区,它被写入)写入深度仅在像素纹理时发生。a == 1.0;
在着色器中丢弃不是解决方案 - 然后此像素不会写入颜色缓冲区。
有任何想法吗?
@UPDATE:示例:我有一些由 OpenGL 渲染的 UI 图像。他们中的一些人在角落里有阿尔法。在场景渲染中,我有“深度预通”来通过不计算光照来节省一些像素。我还想获得该预通的 UI 图像 - 但只是完全不透明的像素(alpha = 1.0)。