【发布时间】:2017-02-07 23:52:15
【问题描述】:
我下载了这个 Apple 示例代码 GLEssentials sample code。我想用深度缓冲区做一些实验,所以一开始我决定检查 BUFFER_BITS。
我在 -initWithDefaultFBO 方法中向 OpenGLRenderer.m 添加了下一个代码:
// code from sample
NSLog(@"%s %s\n", glGetString(GL_RENDERER), glGetString(GL_VERSION));
// buffer bits check
GLint depthBits;
glGetIntegerv(GL_DEPTH_BITS, &depthBits);
printf("depthBits: %d\n", depthBits);
我有下一个输出:
GLEssentials[3630:112826] Apple Software Renderer OpenGL ES 2.0 APPLE-12.4.2
depthBits: 24
但在 ES2Renderer.m 我看到下一行:
// using 16-bit depth buffer
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, backingWidth, backingHeight);
为什么会这样?是bug吗?
PS:我只在iOS模拟器上测试过,因为我没有ios设备。
【问题讨论】:
标签: ios opengl-es-2.0 depth-buffer bit-depth