首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于渲染到纹理

关于渲染到纹理
EN

Stack Overflow用户
提问于 2013-02-15 06:33:03
回答 1查看 279关注 0票数 0

我正在实施渲染到纹理的概念,并对FBO的范围有疑问。在完成了对默认FBO的glDrawArrays调用和渲染到纹理之后,我将删除纹理和非默认的FBO。然后,我调用glReadPixels读取默认FBO上的内容。所以,我的问题是,我做得对吗--我的意思是,在删除FBO和纹理之前,我应该调用read像素吗?

我所假设的是,在默认的FBO上绘制它之后,我们不需要非默认的FBO和纹理,但是后来一些OpenGL的开发人员告诉我,我在我的应用程序中做了一些奇怪的事情。请帮助我理解这一点。

以下是我要采取的步骤:

  1. 创建一个框架缓冲区对象,并附加一个合适的纹理作为颜色附件。
  2. 绑定和清除FBO
  3. 呈现一些原语
  4. 解除FBO的绑定,从而滑动回系统FBO
  5. 绑定用作颜色附件的纹理
  6. 在系统FBO上渲染上面创建的纹理。
  7. 删除纹理和FBO创建。
  8. 来自FBO系统的glReadpixel。

现在,正如我在系统FBO和它上所呈现的那样。为什么我们仍然需要这种纹理和其他用作纹理的FBO?

注意:我使用术语系统FBO来区分两个FBO,这是我的术语。

EN

回答 1

Stack Overflow用户

发布于 2013-02-15 06:52:14

我建议阅读这个:fbo.html

但是总的来说,这里是一些伪代码,用于在OpenGL中呈现纹理。

代码语言:javascript
复制
init() {
    // setup FBO, attachments, etc...
}

render() {
    glBindFramebuffer(your_fbo);
    glClearBuffer(...);
    renderScene();

    glBindFramebuffer(0);  // setup default, system FBO
    glBindTexture(texture_id_that_was_attached_to_FBO);
    renderSecondScene();
}

没有必要删除纹理或fbo后,你渲染你的场景,删除他们在应用程序的末尾,在一些清理过程。

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

https://stackoverflow.com/questions/14889434

复制
相关文章

相似问题

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