尝试从std::vector<float4>
传递float4
的VBO顶点和颜色数据,其中int createVertexArrayObject(std::vector<float4> vertex_buffer_data,
std::vector<unsigned int> index_buffer_data,
std::vector<float4> color_buffer_data){
float* vertex_data = reinterpret_cast<float*>(&vertex_buffer_data[0]);
unsigned int vertexArrayID;
glGenVertexArrays(1, &vertexArrayID);
glBindVertexArray(vertexArrayID);
unsigned int vertexBufferID;
glGenBuffers(1, &vertexBufferID);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferID);
glBufferData(
GL_ARRAY_BUFFER,
vertex_buffer_data.size()*sizeof(float4),
vertex_data,
GL_STATIC_DRAW
);
(...)
}
与CUDA float4(具有x,y,z,w的对象)相似。
haswon
这就是我正在将数据传递给VBO的目的。但是,没有任何结果。 我可以正确计算尺寸吗?我是否提供对结构中第一个元素的正确引用?