我正在使用OpenCL内核来计算一些顶点。经过计算,这些顶点(x,y,z坐标)更新为OpenCL-OpenGL共享缓冲区。我使用的是NVIDIA GrForce 820m。 我需要绘制一个有线球体并根据在此共享缓冲区中获得的值进行翻译。
void CreateVBO(){
glGenBuffers(1,&vbo);
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glBufferData(GL_ARRAY_BUFFER,3*sizeof(vertex),pos,GL_DYNAMIC_DRAW);
}
void Display(void)
{
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPointSize(10.0);
CreateVBO();
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(4, GL_FLOAT, 0, 0);
glDrawArrays(GL_POINTS,0,3);
glDisableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER,0);
glutSwapBuffers();
}
我尝试添加glutWiredSphere
或glutSolidSphere
。但它们不起作用。另外,请告诉我如何使用带有VBO值的translatef()
。我需要绘制一个旋转球体。像月亮一样绕着地球旋转。月亮的下一个位置是由共享缓冲区获得的。球体需要移动一个从VBO(openCL内核更新)动态获得的位置。提前致谢