0

是否有一种方法可以仅将 VBO 的单个属性绑定到纹理缓冲区对象?

问题是,我使用交错的 VBO来绘制具有位置、半径和另一个属性的球体。现在,我想使用另一个着色器,它使用实例化几何体在我的球体 VBO 的位置​​绘制其他东西。我能做的只是 texelFetch() 我需要的数据,这对于所需的对齐(VBO 属性具有不同的大小)和未使用的空间来说真的很难看,因为纹理缓冲区的大小有限,这很糟糕。另一种方法是只将我需要的数据从一个 VBO 复制到一个单独的 VBO,但这也不是很令人满意。

那么……还有其他可能吗?

4

1 回答 1

1

缓冲区纹理没有属性。所以你说的没有意义。

此外,VBO 也不是一回事。没有“VBO”之类的东西。只是缓冲区对象和它们的不同用途。glVertexAttribPointer不修改缓冲区对象。它只是告诉 OpenGL 的顶点读取系统如何从中获取数据。其他从缓冲区对象中获取数据的系统使用它们自己的机制来执行此操作,这些机制是完全独立的。

像缓冲纹理。

如果您想“使用实例化几何图形绘制其他东西”,为什么不使用实例化?对这些属性应用除数(大概为 1),这样它们只会为不同的实例获得不同的值。

于 2013-06-07T12:01:10.253 回答