OpenGl и мерцание - PullRequest
       21

OpenGl и мерцание

1 голос
/ 11 сентября 2008

Когда объекты из CallList пересекают ближнюю плоскость, я получаю мерцание ... что я могу сделать?

Я использую OpenGL и SDL.

Да, это двойной буфер.

Ответы [ 4 ]

5 голосов
/ 11 сентября 2008

Звучит так, как будто ты получаешь z-бой.

"Z-боевые действия - это явление в 3D-рендеринге, которое возникает, когда два или более примитивов имеют одинаковые значения в z-буфере, и особенно распространено в копланарных многоугольниках. Этот эффект вызывает рендеринг псевдослучайных пикселей с цветом одного или другого многоугольника недетерминированным образом, варьируясь по мере анимации сцены, в результате чего один многоугольник "выигрывает" z-тест, затем другой и т. д. " (Из википедии )

Более подробную информацию о проблеме можно получить в FAQ по OpenGL .

glPolygonOffset может помочь, но вы также можете столкнуться с проблемами. У Тома Форсайта хорошее объяснение в его FAQ Примечание. В нем говорится о ZBIAS, но это только эквивалент DirectX.

3 голосов
/ 13 сентября 2008

Проблема заключалась в том, что в моей функции вращения были некоторые ошибки с плавающей запятой, которые испортили мою матрицу model_view.

Никто из вас, возможно, не догадался об этом, извините за трату вашего времени.

Хотя я не думаю, что перемещение ближней плоскости следует даже рассматривать как решение любой проблемы, обычно что-то не так, потому что openGL поддерживает пересечение полигонов с ближней плоскостью.

1 голос
/ 11 сентября 2008

Попробуйте поставить ближнюю плоскость отсечения немного дальше: например, с gluPerspective -> третий параметр zNear http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glu/perspective.html

0 голосов
/ 11 сентября 2008

Ах, вы имели в виду около самолета. :)

Ну ... еще одна вещь при рисовании полигонов в одной плоскости - это использование glPolygonOffset

Из описания

  glPolygonOffset is useful for rendering hidden-line images,
  for applying decals to surfaces, and for rendering solids
  with highlighted edges.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...