opengl glutWireTorus神器

时间:2012-09-06 10:53:42

标签: c++ opengl freeglut

我正在制作一个由sinewave移动圆圈生成的glutWireTorus小动画。

然而,我在圈子中使用void display(void) { glClearColor(0.f,0.f,0.f,0.f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // clear the color buffer and the depth buffer glLoadIdentity(); glTranslatef(0.0f,0.0f,-5.0f); //Push everything back 5 units into the scene, otherwise we won't see the primitive camera(); //yPrev = myCircle.y; glPushMatrix(); glTranslatef(0.0f,0.0f,t); glutWireTorus(0.02,1,100,100); glPopMatrix(); DrawAxes(); glutSwapBuffers(); //swap the buffers glFlush();//Flush the OpenGL buffers to the window t-=0.002; if (t < -T) { t = 0; } } 时遇到了一个奇怪的问题。即使当我注释掉所有其他绘图代码并让环面单独沿z轴移动时,我的内部也会出现闪烁的线条:

Screenshot

这是显示所有内容的显示功能。我使用显示功能作为我的空闲功能,我也通过创建一个空闲功能并将更新代码放在那里来检查是否存在这个问题,但它仍然存在。

{{1}}

1 个答案:

答案 0 :(得分:0)

呃,有趣的是,我遇到了同样的问题。 这是使用参数

的图片
glutWireTorus(/*innerRadius*/0.3, /*outerRadius*/0.5, /*nsides*/32, /*rings*/32);

torus.32x32

使用参数

的另一张照片
glutWireTorus(/*innerRadius*/0.3, /*outerRadius*/0.5, /*nsides*/64, /*rings*/128);

torus.64x128

我们不知道为什么没有 glutWireTorus 函数实现,但我们可以实现自己的环面,或者有人可以解释它?