gpt4 book ai didi

真的需要GLSL Renderbuffer吗?

转载 作者:行者123 更新时间:2023-12-04 03:53:53 25 4
gpt4 key购买 nike

我正在尝试编写将摄像机帧写入四边形的程序。
我看到了一些教程解释说,使用帧缓冲区可以更快,但仍在学习如何做到这一点。
但是除了帧缓冲区,我发现还有渲染缓冲区。

问题是,如果目的只是将纹理写入可以填充屏幕的四边形,那么我真的需要渲染缓冲区吗?

我知道渲染缓冲区用于深度测试,我认为这仅用于检查像素的Z位置,因此必须为我的场景创建渲染缓冲区是很愚蠢的,对吗?

最佳答案

framebuffer object是粘贴图像的位置,以便您可以对其进行渲染。颜色缓冲区,深度缓冲区等都进入帧缓冲区对象。

renderbuffer就像一个纹理,但是有两个重要的区别:

  • 始终为2D,没有mipmap。因此,它始终恰好是1张图片。
  • 您无法从渲染缓冲区读取。您可以将它们附加到FBO并渲染到它们,但是不能通过纹理访问或其他方式从它们采样。

  • 因此,您正在谈论两个主要独立的概念。渲染缓冲区不必“用于深度测试”。这是渲染缓冲区的常见用例,因为如果将颜色渲染为纹理,则通常不需要关心深度。您需要一个深度,因为您需要对隐藏表面的去除进行深度测试。但是您不需要从那个深度进行采样。因此,您无需创建深度纹理,而是创建深度渲染缓冲区。

    但是渲染缓冲区也可以使用颜色而不是深度格式。您只是不能将它们附加为纹理。您仍然可以对它们开枪,也可以使用 glReadPixels读回它们。您只是无法在着色器中从中读取它们。

    奇怪的是,这无助于回答您的问题:

    The question is, if the purpose is only to write a texture into a quad that will fill up the screen, do I really need a renderbuffer?



    我不明白为什么您需要任何类型的帧缓冲区或渲染缓冲区。纹理是纹理;只需绘制一个纹理四边形即可。

    关于真的需要GLSL Renderbuffer吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850803/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com