Opengl 获取最大数量的帧缓冲区颜色附件?
我正在开发一个OpenGL应用程序,我需要找到支持多少帧缓冲区颜色附件。有没有办法查询OpenGL中的该值?您可以通过查询Opengl 获取最大数量的帧缓冲区颜色附件?,opengl,framebuffer,Opengl,Framebuffer,我正在开发一个OpenGL应用程序,我需要找到支持多少帧缓冲区颜色附件。有没有办法查询OpenGL中的该值?您可以通过查询 int maxColorAttachments; glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxColorAttachments); 有两个值可能会限制您可以使用的附件数量: GL\u MAX\u COLOR\u ATTACHMENTS指定FBO有多少个颜色附着点。换句话说,它对应于使用GL\u COLOR\u ATTA
int maxColorAttachments;
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxColorAttachments);
有两个值可能会限制您可以使用的附件数量:
指定FBO有多少个颜色附着点。换句话说,它对应于使用GL\u MAX\u COLOR\u ATTACHMENTS
指定附着点时可以使用的最大值GL\u COLOR\u ATTACHMENTn
。这将限制可以同时将多少颜色纹理/渲染缓冲层附加到FBO。您可以通过以下方式获得此限制:n
GLint maxAttach = 0; glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxAttach);
GLint maxDrawBuf = 0; glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuf);
指定可以同时绘制到的缓冲区数量。它是允许传递到GL\u MAX\u DRAW\u BUFFERS
的最大缓冲区数,也是片段着色器中允许的最大输出数。您可以通过以下方式获得此限制:glDrawBuffers()
GLint maxAttach = 0; glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &maxAttach);
GLint maxDrawBuf = 0; glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuf);