我为主机应用程序编写了一个插件,它使用OpenGL 2.0绘制一些几何体
我需要基本上执行模板测试,但由于某种原因,主机应用程序禁用了模板缓冲区(GL_STENCIL_BITS == 0)。因此,我正在寻找替代解决方案(或者可能是启用模板缓冲区的方法)。
该程序需要两步法。
首先,所有项目都以多遍方式绘制。所有这些都需要在深度缓冲区中绘制,但是稍后需要删除部件(在绘制所有项目之后)。我可以用颜色,字母或模板标记这些不需要的部分(尽管如上所述它在这种情况下不起作用)。 稍后我需要做的是为缓冲区中具有某种颜色或alpha值的每个像素设置深度值为1.f.最后一部分使用模板缓冲区很简单,但如上所述它不可用。
Alpha测试似乎只适用于要绘制的值而不是已绘制的值。或者我错过了什么?
我还尝试将缓冲区复制到CPU内存(glReadPixels),修改它并返回(glDrawPixels),但由于某种原因它只能用于简单的场景。对于更复杂的场景,它在glReadPixels中失败,性能也很差。
有什么想法吗?