深度缓冲区大小是否与视图端口大小相同?

时间:2012-01-04 16:11:53

标签: opengl depth-buffer

如果我执行

#define SCREEN_SIZE 512
glEnable(GL_DEPTH_TEST);
glViewport(0, 0, SCREEN_SIZE, SCREEN_SIZE);

这是否使我的深度缓冲区大小为SCREEN_SIZE x SCREEN_SIZE?

1 个答案:

答案 0 :(得分:2)

  

这是否使我的深度缓冲区大小为SCREEN_SIZE x SCREEN_SIZE?

没有。深度缓冲区是窗口帧缓冲区的一部分。通常这样的窗口帧缓冲包含

  • 前色面
  • 背面颜色
  • 深度缓冲区
  • 模板缓冲区

所有这些平面都具有相同的大小,即创建OpenGL上下文的窗口大小。视口只定义了将映射规范化设备坐标的[-1,1]范围的窗口子集,即选择帧缓冲的一部分用作投影目标。视口甚至不需要剪切视口范围之外的内容。如果需要,必须将其与剪刀测试结合使用。