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

  • 相关阅读:
    20175314 《Java程序设计》第六周学习总结
    20175314 结队编程项目——四则运算第一周
    20175314 《Java程序设计》迭代和JDB
    20175314 实验一 Java开发环境的熟悉
    20175314 《Java程序设计》第五周学习总结
    20175314 《Java程序设计》第四周学习总结
    20175314 《Java程序设计》第三周学习总结
    20175314 《Java程序设计》第二周学习总结
    20175314 《Java程序设计》第一周学习总结
    多态的成员特点
  • 原文地址:https://www.cnblogs.com/wustlj/p/3071647.html
Copyright © 2020-2023  润新知