首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Opengl ES 2 (ios)中启用抗锯齿

在Opengl ES 2 (ios)中启用抗锯齿
EN

Stack Overflow用户
提问于 2014-02-13 00:20:10
回答 1查看 2.2K关注 0票数 0

我在IOS中启用多重采样时遇到了问题。

我指的是这个guide

如果您向下滚动到

清单4-5创建多样本缓冲区

你可以清楚地看到我们需要(当然)一个解析缓冲区。但是,它在第一步中没有显示任何类型的初始化。我是否只需要

代码语言:javascript
复制
glGenFramebuffers(1, &resolveBuffer);
glBindFramebuffer(GL_FRAMEBUFFER, resolveBuffer);

我应该什么时候初始化我的帧缓冲对象?

另外,最后一步我也不清楚。

代码语言:javascript
复制
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER];

我应该在哪里做这件事?它能做什么呢?我猜在抽签之后,我的fbo和vbo会打电话给我,但我不是很确定。

有没有我可以查到的例子项目的链接?我用谷歌搜索了一下,但我找不到:

最后,我使用float纹理来渲染HDR图像。我必须在这条指令中保留GL_RGBA8_OES吗?

代码语言:javascript
复制
glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height);

我真的不清楚在这一点上我是否已经渲染了一个纹理。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 16:08:19

您可以使用与不使用多重采样时相同的代码。然后在其渲染缓冲区glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height)上使用多重采样添加额外的帧缓冲区。绘制时,需要绑定采样缓冲区,而不是原始缓冲区。绘制完成后,需要将采样缓冲区解析为原始缓冲区:

代码语言:javascript
复制
glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, originalFrameBuffer);
glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFrameBuffer);
glResolveMultisampleFramebufferAPPLE();

此时你已经填充了原始的缓冲区(originalFrameBuffer),你可以随心所欲地使用它,你甚至可以绑定它并继续绘制它,使用它作为一个纹理,或者像在苹果示例中那样将它的渲染缓冲区内容呈现到视图上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21733535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档