Pergunta

Quando objetos de uma CallList cruzam o plano próximo, recebo uma cintilação..., o que posso fazer?

Estou usando OpenGL e SDL.

Sim, é com buffer duplo.

Foi útil?

Solução

Parece que você está brigando.

"Z-fighting é um fenômeno na renderização 3D que ocorre quando dois ou mais primitivos têm valores semelhantes no buffer z, e é particularmente prevalente em polígonos coplanares.O efeito faz com que os pixels pseudo-aleatórios sejam renderizados com a cor de um polígono ou outro de maneira não determinística, variando à medida que a cena é animada, fazendo com que um polígono "vença" o teste Z, depois outro e assim por diante. " (De Wikipédia)

Você pode obter mais informações sobre o problema no Perguntas frequentes sobre OpenGL.

glPolygonOffset pode ajudar, mas você também pode ter problemas com isso.Tom Forsyth tem uma boa explicação em seu Perguntas frequentes Observação:Fala sobre ZBIAS, mas isso é apenas o equivalente DirectX.

Outras dicas

O problema era que minha função de rotação tinha alguns erros de ponto flutuante que estragaram minha matriz model_view.

Nenhum de vocês poderia ter adivinhado, desculpe pela perda de tempo.

Embora eu não ache que mover o plano próximo deva ser considerado uma solução para qualquer tipo de problema, geralmente algo está errado, porque o openGL suporta a interseção do polígono com o plano próximo.

Tente colocar o plano de recorte próximo um pouco mais longe:por exemplo com gluPerspective -> terceiro parâmetro zPerto http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glu/perspective.html

Ah, você quis dizer o aproximar avião.:)

Bem...outra coisa ao desenhar polígonos no mesmo plano é usar glPolygonOffset

Da descrição

  glPolygonOffset is useful for rendering hidden-line images,
  for applying decals to surfaces, and for rendering solids
  with highlighted edges.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top