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.
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.