zoukankan      html  css  js  c++  java
  • RenderBuffer

    A renderbuffer is a data storage object containing a single image of
        a renderable internal format.(参考http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt下4.4.2.1)

    渲染缓冲区是OpenGL管理的有效内存,其中包含了格式化的图像数据。

    绑定渲染缓冲区后,并没有分配存储空间来存储图像数据。需要分配存储空间并指定其图像格式,然后才可以把渲染缓冲区附加到一个帧缓冲区并向其中渲染。

    GLvoid glGenRenderbuffersOES (GLsizei n, GLuint* renderbuffers)

    不保证renderbuffers的名字都是连续的数字,但能保证所有的renderbuffer都未使用

    GLvoid glBindRenderbufferOES (GLenum target, GLuint renderbuffer);

    renderBuffer 用于离屏渲染,即将场景渲染到renderBuffer object上。RBO是一个数据存储区,含有一副图像和内部渲染格式,用于存储opengl没有纹理格式的逻辑缓冲区,如模板和深度缓冲区。

    void glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)

    Renderbuffers cannot be bound to shaders or otherwise rendered with; they can only be attached to FBOs.

    framebuffer是什么?

    framebuffer是帧缓冲对象,它是一个容器,但是自身不能用于渲染,需要与一些可渲染的缓冲区绑定在一起,像纹理或者渲染缓冲区。

    在OpenGL渲染管线中,几何数据和纹理经过一系列的测试最终以2d像素图渲染到屏幕上,最终的渲染目的地就叫做帧缓冲区。它是由一些OpenGL操作的2d数组和存储空间组成。这个缓冲区完全的由窗口系统创建和管理,这个默认的缓冲区就叫做“窗口系统提供的”缓冲区。

    framebuffer有什么优点?

    允许我们把渲染从窗口的帧缓冲区转移到离屏帧缓冲区,即离屏渲染。

    1.FBO并不受窗口大小的限制。
    2.纹理可以连接到FBO,允许直接渲染到纹理,不需要显示glCopyTexImage。
    3.FBO可以包含许多颜色缓冲区,可以同时从一个片段着色器写入。

  • 相关阅读:
    WordCount C语言实现求文本的字符数,单词数,行数
    iOS 数据持久化
    Apple store加急审核
    iOSTableViewCell不等高的几种方法
    Xcode 插件(时间就是生命)
    iOS UI组件汇总
    iOS之获取经纬度并通过反向地理编码获取详细地址
    iOS 开发常用宏
    iOS让你的app一直在后台活着(运行)
    OC动画——基础动画CABasicAnimation使用
  • 原文地址:https://www.cnblogs.com/wustlj/p/3071647.html
Copyright © 2011-2022 走看看