gpt4 book ai didi

opengl - 纹理缓冲对象还是常规纹理?

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

OpenGL SuperBible 讨论了纹理缓冲对象,它们是由 VBO 内的数据形成的纹理。看起来使用它们有好处,但我发现的所有示例都创建了常规纹理。有没有人对何时使用一个而不是另一个有什么建议?

最佳答案

根据extension registry ,纹理缓冲区只是一维的,不能做任何过滤,必须通过访问显式纹素(通过索引)来访问,而不是标准化的 [0,1] 浮点纹理坐标。因此,它们实际上并不是常规纹理的替代品,而是大型均匀阵列(例如蒙皮矩阵或每个实例数据)的替代品。将它们与统一缓冲区进行比较比与常规纹理进行比较更有意义,例如 here .

编辑:如果您想将 VBO 数据用于常规、过滤的 2D 纹理,您将无法绕过数据副本(最好通过 PBO 来完成)。但是,当您只想对 VBO 数据进行普通数组访问并且属性不足以满足此要求时,纹理缓冲区应该是首选方法。

编辑:在查看 SuperBible 中的相应章节后,我发现他们一方面提到纹理缓冲区始终是一维的,并且通过离散整数 texel 偏移量访问,但另一方面没有明确提到缺少过滤。在我看来,他们或多或少地将它们宣传为仅从缓冲区获取数据的纹理,这解释了 OP 的问题。但如上所述,这只是错误的比较。纹理缓冲区只是提供了一种以普通数组的形式直接访问着色器中的缓冲区数据的方法(尽管具有可调整的元素类型),不是更多(使它们对常规纹理无用)但也不少(它们仍然是一个很棒的功能) )。

关于opengl - 纹理缓冲对象还是常规纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6281109/

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