是否有一种方法只将VBO的单个属性绑定到纹理缓冲区对象?
问题是,我使用交错的VBO 来绘制具有属性position,radius和另一个的球体。现在,我想使用另一个着色器,它在我的球体VBO中的位置使用实例几何绘制其他东西。 我能做的只是texelFetch()我需要的数据,这对于所需的对齐(VBO属性有不同的大小)和未使用的空间非常难看,因为纹理缓冲区的大小有限,这是不好的。另一种方法可能是将我需要的数据从一个VBO复制到一个单独的VBO,但这也不是很令人满意。
那么......还有另一种可能性吗?
答案 0 :(得分:1)
Buffer textures没有属性。所以你所谈论的内容没有意义。
此外,维也纳国际中心不是一件事;没有“VBO”这样的东西。只有buffer objects和它们的不同用途。 glVertexAttribPointer
不会修改缓冲区对象。它只是告诉OpenGL的顶点读取系统如何从中获取数据。从缓冲区对象获取数据的其他系统使用它们自己的机制来完成,这是完全独立的。
像缓冲区纹理一样。
如果你想“使用实例化几何体绘制其他东西”,为什么不只是use instancing?对这些属性应用除数(可能为1),这样它们只会为不同的实例得到不同的值。