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.

È stato utile?

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.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top