使用VBO中的值平移和旋转OpenGL有线球体

使用VBO中的值平移和旋转OpenGL有线球体,opengl,opencl,vbo,Opengl,Opencl,Vbo,我使用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

我使用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内核更新)动态获得的位置。提前感谢

也许你可以通过提供一些图片来澄清这个问题,展示你的期望和收获。“但它们不起作用”在我看来是不够的。此外,为什么需要使用OpenCL来转换球体?难道一个简单的4x4矩阵作为一个着色器不是很好吗?我知道你可以使用内核作为矩阵,并通过这样做来转换缓冲区,但我不明白你为什么要这样做,而不是为了家庭作业。顺便说一下,不要每隔一段时间就发同样的问题。stackoverflow不是这样工作的。“它们不工作”意味着显示屏上没有渲染的球体。在代码中使用
glutSolidSphere
没有任何区别。使用OpenCL是因为我正在并行地尝试一个示例项目。我没有使用OpenCL来翻译球体。OpenCL内核生成(x,y,z)坐标,我需要根据这些(x,y,z)值转换球体。我想知道你对stackoverflow如何工作的看法,以及对我的问题的一些有效建议。谢谢你的回复。首先,我很抱歉地告诉你,我没有OpenCL的经验(而我正计划有一天研究它),这意味着我无法帮助你解决这个问题。此外,如果您想学习如何写出好的问题(应该得到好的答案),您可以访问帮助中心()。此外,再提出一个问题是个糟糕的主意。如果你想让它得到更多的关注,你可以添加一些图片,重新标记它,或者只是改进那篇文章,而不是把它作为一个新问题重新发布。谢谢你的建议。请注意,我在做同一个项目。但我的问题不同。以前,我对OpenL GL共享缓冲区有一个问题。现在我在VBO中使用translatef时遇到了一个问题。我不能写一个新的程序来提出我的问题。修改旧问题而提出新概念是没有意义的(仅仅因为程序是一样的)。