ZFighting: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K
Zeile 8: Zeile 8:
 
ZFighting kann durch verschieden Techniken verhindert werden: <br>
 
ZFighting kann durch verschieden Techniken verhindert werden: <br>
 
1. Die Tiefenfunktion ändern ( [[glDepthFunc]](GL_LEQUAL) )<br>
 
1. Die Tiefenfunktion ändern ( [[glDepthFunc]](GL_LEQUAL) )<br>
2. Größe des Tiefenbuffers hochsetzen (zb. 32 bit statt 16 bit)<br>
+
2. Genauigkeit des Tiefenbuffers erhöhen (zb. 32 bit statt 16 bit)<br>
 
3. Die Werte der near/far clipping plane verändern (siehe auch den link am ende des Artikels)<br>
 
3. Die Werte der near/far clipping plane verändern (siehe auch den link am ende des Artikels)<br>
 
4. Keine zwei Polygone an der selben Stelle zeichenen lassen<br>
 
4. Keine zwei Polygone an der selben Stelle zeichenen lassen<br>

Version vom 7. Juli 2004, 22:35 Uhr

Ursache

ZFighting nennt man den Effekt, der auftritt wenn zwei Polygone genau auf der gleichen Stelle positioniet wurden, und/oder wenn der Tiefenpuffer nicht hoch genug auflöst.

Beschreibung

ZFighting erkennt man am flimmern der sich überdeckenden Polygone/Linien bei Bewegungen der Szene. Dabei kommt es mitunder auch zur partiellen Sichtbarkeite beider Polygone.

Lösung

ZFighting kann durch verschieden Techniken verhindert werden:
1. Die Tiefenfunktion ändern ( glDepthFunc(GL_LEQUAL) )
2. Genauigkeit des Tiefenbuffers erhöhen (zb. 32 bit statt 16 bit)
3. Die Werte der near/far clipping plane verändern (siehe auch den link am ende des Artikels)
4. Keine zwei Polygone an der selben Stelle zeichenen lassen
5. "Polygon Offset" verwenden ( glPolygonOffset )

weitere Infos im Web

Ein interresanter Artikel über Z-Buffer