【发布时间】:2015-10-25 23:04:03
【问题描述】:
假设我有两个深度缓冲区(“DA”和“DB”)。我想将 DA 附加到帧缓冲区,并以正常/“传统”方式呈现给它(每个片段深度都针对 GL_LESS 进行测试,如果它通过,则将其绘制并将其深度写入深度缓冲区)。
然后,我想附上 DB- 在这里我想以传统方式引用/使用 DB,还想用 GL_GREATER 对 DA 进行深度测试。如果片段通过了两个测试,我仍然只想将深度写入 DB。
这将完成的是,在第二遍中绘制的任何内容只有在它在第一遍的内容之后,但在在任何其他内容之前时才会绘制第二遍。
OpenGL 2.1(或 OpenGL ES 2)是否提供任何此类功能?如果没有正式提供它,我能做些什么来解决它?
如果它不提供,这里有一个关于我会如何做的想法,我想接受理智检查......
您附加一个作为深度缓冲区的渲染缓冲区,然后手动填充深度。并手动执行“如果深度大于 DA 时的纹素”测试(失败时,丢弃片段)。我很好奇我会遇到什么问题?有没有一种简单的方法来模拟正式指定深度缓冲区的深度精度?表演会很糟糕吗?还有其他顾虑吗?
【问题讨论】:
标签: c++ opengl opengl-es-2.0