使用opengl 3.3,radeon 3870HD,C++ ..在交错的OpenGL顶点缓冲区对象之间进行复制
我得到了关于交错数据阵列的问题。我得到了我的向量中的应用程序结构,它作为数据发送到缓冲区对象。事情是这样的:
struct data{
int a;
int b;
int c;
};
std::vector<data> datVec;
...
glBufferData(GL_ARRAY_BUFFER, sizeof(data)*datVec.size(), &datVec[0], GL_DYNAMIC_DRAW);
这是确定我用这个东西非常频繁。但我创建是交织排列因此数据是这样的:
a1,b1,c1,a2,b2,c2,a3,b3,c3
现在我在GPU与改造反馈我读回缓冲区实例B变量下发这个东西进行处理。所以它看起来像:
bU1, bU2, bU3
我想更新的值复制到缓冲区交错,可以这样与像glCopyBufferSubData一些简单的命令做了什么?因为只需要偏移和大小不是趟过(也许这有点像在C++中的memcpy)这个人是不适合......结果应该是这样的:
a1, bU1, c1, a2, bU2, c2, a3, bU3, c3
如果不是有比这2我的好办法?
地图更新缓冲器,的值复制到临时存储在应用程序,去映射更新,地图数据缓冲器,并通过它itterating设置新值
上恒定缓冲器和可变缓冲器单独的缓冲器。常会留一段时间,但使用glCopyBufferSubData可以在单个呼叫更新变量同一个..
感谢
我会保持更新的数据分开为2. – Bahbar 2011-02-15 15:39:54