opengl glutWireTorus артефакт

Я работаю над небольшой анимацией sinewave генерируется движущимся кругом, подобным этому GIF.

Однако у меня странная проблема с использованием glutWireTorus для круга. Даже когда я закомментирую весь другой код рисования и оставлю тор, движущийся только вдоль оси z, у меня внутри вспыхнут линии:

Скриншот

Это функция отображения, где все нарисовано. Я использую функцию отображения в качестве функции ожидания, также я проверил, была ли это проблема, создав функцию ожидания и поместив туда свой код обновления, но он все еще сохранялся.

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;
}
}

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 реализация функции, но мы можем реализовать наш собственный тор, или, может быть, кто-то может объяснить это?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]