我正在使用OpenGL ES分析器。它显示调用glResolveMultisampleFramebufferAPPLE()需要大约90%的运行时间。这是典型的,还是我的代码有一些低效率?这里是我的绘制代码:iPad OpenGL ES极其缓慢glResolveMultisampleFramebufferAPPLE()
glBindFramebuffer(GL_FRAMEBUFFER, sampleFramebuffer);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Draw Stuff . . .
glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, defaultFramebuffer);
glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFramebuffer);
glResolveMultisampleFramebufferAPPLE();
const GLenum discard1[] = {GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT};
glDiscardFramebufferEXT(GL_READ_FRAMEBUFFER_APPLE, 2, discard1);
const GLenum discard2[] = {GL_DEPTH_ATTACHMENT};
glDiscardFramebufferEXT(GL_DRAW_FRAMEBUFFER_APPLE, 1, discard2);
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[[EAGLContext currentContext] presentRenderbuffer:GL_RENDERBUFFER];
场景很复杂,每帧渲染了超过一百万个三角形。我认为我的慢帧速率(10帧/秒)是由于平局 - 而不是多抽样。有什么想法吗?
您使用了多少个样品?你是否正在调用像glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER_OES,4,GL_RGB565_OES,backingWidth,backingHeight); ? – HalR 2013-04-22 23:09:52
是的,我正在使用内部格式为GL_RGBA8_OES的4个样本。 – AbleArcher 2013-04-22 23:36:43
是的,这是推动大量数据。说得通。您是否尝试过使用GL_RGB5_A1_OES或更少的样本? – HalR 2013-04-22 23:42:49