使用Depth Buffer来避免片段计算

时间:2015-09-21 13:04:52

标签: c++ opengl-es

我一直在检查这个问题的SO,甚至我发现了一个类似的问题(OpenGL ES 2.x: any way to reuse depth buffer for off-screen and on-screen rendering?)说它无法完成,我发现它与我的意图不同。

我的目的是通过使用深度缓冲区来丢弃遮挡的gonnabes来减轻着色器碎片的操作。

  1. 我设置了DEPTH Writing On。
  2. 我禁用了Color Writing(glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE);)
  3. 我将DEPTH功能设置为GL_LESS
  4. 我选择了更简单的顶点着色器和一个void片段着色器(void main(void){})。
  5. 我画我的场景
  6. 我设置DEPTH注销
  7. 我再次启用了Color Writing
  8. 这次我用他自己的着色器再次绘制每个对象
  9. 但这不起作用(我使用的是OpenGL ES 2.0)。如果我在第一遍中禁用了Color Writing,我没有得到任何图像(以及一些奇怪的闪烁),如果我跳过第2和第7遍,我没有fps速率变化。

    为什么呢?我的逻辑中有什么问题吗?我不讨论FBO,我只是将VBO的图形称为2次。

0 个答案:

没有答案