没有 GL_OES_packed_depth_stencil 的 OpenGL 帧缓冲区 android(在 Nexus 7 2012 上)
OpenGL framebuffer android without GL_OES_packed_depth_stencil (on Nexus 7 2012)
如何在不支持 GL_OES_packed_depth_stencil
的设备上使用深度和模板初始化帧缓冲区(在我的例子中是 Nexus 7 2012)?
这不起作用:
glGenRenderbuffers(1, &depthStencil);
glBindRenderbuffer(GL_RENDERBUFFER, depthStencil);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8_OES, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthStencil);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depthStencil);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
//...
您为深度和模板创建单独的渲染缓冲区:
GLuint depthStencil[2];
glGenRenderbuffers(2, depthStencil);
glBindRenderbuffer(GL_RENDERBUFFER, depthStencil[0]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width, height);
glBindRenderbuffer(GL_RENDERBUFFER, depthStencil[1]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX8, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER,
GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthStencil[0]);
glFramebufferRenderbuffer(GL_FRAMEBUFFER,
GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depthStencil[1]);
如何在不支持 GL_OES_packed_depth_stencil
的设备上使用深度和模板初始化帧缓冲区(在我的例子中是 Nexus 7 2012)?
这不起作用:
glGenRenderbuffers(1, &depthStencil);
glBindRenderbuffer(GL_RENDERBUFFER, depthStencil);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8_OES, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthStencil);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depthStencil);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
//...
您为深度和模板创建单独的渲染缓冲区:
GLuint depthStencil[2];
glGenRenderbuffers(2, depthStencil);
glBindRenderbuffer(GL_RENDERBUFFER, depthStencil[0]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width, height);
glBindRenderbuffer(GL_RENDERBUFFER, depthStencil[1]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX8, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER,
GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthStencil[0]);
glFramebufferRenderbuffer(GL_FRAMEBUFFER,
GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depthStencil[1]);