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可以包含许多颜色缓冲区,可以同时从一个片段着色器写入。

  • 相关阅读:
    C# Stream篇(—) -- Stream基类-----转载
    C# Stream篇(三) -- TextWriter 和 StreamWriter---转载
    C#文件过滤器filter---转载
    微信列表展示与详情页
    关于微信表单添加与图片上传
    登录的php代码 接口开发
    文章列表与点赞的一些功能实现 以及详情页点赞、取消赞操作
    Linux 简单命令总结
    微信小程序实现登录功能 (第一种模式)
    201509-1 数列分段 Java
  • 原文地址:https://www.cnblogs.com/wustlj/p/3071647.html
Copyright © 2011-2022 走看看