【发布时间】:2013-11-21 18:25:22
【问题描述】:
我有粒子和粒子系统类。在我的主程序中,我创建了一个粒子系统实例并在其中初始化了粒子。在显示功能中,我想一次性将所有粒子的位置传递给顶点缓冲区。但我不确定用于访问所有位置顶点的符号。
class particle{
glm::vec3 pos;
glm::vec3 vel;
}
class particleSystem{
std::vector<particle> m_particles;
}
我试过这样的:
//Displaying particles starts here
glGenBuffers(1, &particleBuffers);
glBindBuffer(GL_ARRAY_BUFFER, particleBuffers);
glBufferData(GL_ARRAY_BUFFER, sizeof(ps.m_particles[].pos), ps.m_particles[].pos, GL_STATIC_DRAW);
glVertexAttribPointer(position_loc, 3, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_POINTS, 0, (GLsizei)ps.m_particles.size()); //Draw them to screen
glBindBuffer(GL_ARRAY_BUFFER, 0);
//Displaying particles ends here
其中ps 是粒子系统类的一个实例。我用来访问 glBufferData 函数中所有粒子位置的符号不起作用。有什么建议?
【问题讨论】:
标签: c++ visual-c++ opengl particle-system