Domanda
Quando gli oggetti di una CallList intersecano il piano vicino ottengo uno sfarfallio..., cosa posso fare?
Sto usando OpenGL e SDL.
Sì, ha il doppio buffer.
Soluzione
Sembra che tu stia iniziando a combattere con gli Z.
"Il combattimento Z è un fenomeno nel rendering 3D che si verifica quando due o più primitive hanno valori simili nello z-buffer ed è particolarmente diffuso con i poligoni complanari.L'effetto fa sì che i pixel pseudo-casuali siano resi con il colore di un poligono o nell'altro in modo non deterministico, variando poiché la scena è animata, causando un poligono a "vincere" il test Z, quindi un altro e così via. " (Da Wikipedia)
È possibile ottenere ulteriori informazioni sul problema nel Domande frequenti su OpenGL.
glPolygonOffset potrebbe aiutare, ma potresti anche metterti nei guai.Tom Forsyth ha una buona spiegazione nella sua FAQ Nota:Si parla di ZBIAS, ma è solo l'equivalente di DirectX.
Altri suggerimenti
Il problema era che la mia funzione di rotazione presentava alcuni errori in virgola mobile che rovinavano la mia matrice model_view.
Nessuno di voi avrebbe potuto immaginarlo, scusate per la perdita di tempo.
Anche se non penso che lo spostamento del piano vicino debba essere considerato una soluzione a qualsiasi tipo di problema, di solito c'è qualcos'altro che non va, perché openGL supporta l'intersezione del poligono con il piano vicino.
Prova a posizionare il piano di ritaglio vicino un po' più lontano:ad esempio con gluPerspective -> terzo parametro zVicino http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glu/perspective.html
Ah, intendevi il vicino aereo.:)
Beh...un'altra cosa da fare quando si disegnano poligoni sullo stesso piano è usare glPolygonOffset
Dalla descrizione
glPolygonOffset is useful for rendering hidden-line images,
for applying decals to surfaces, and for rendering solids
with highlighted edges.