ZFighting: Unterschied zwischen den Versionen
Aus DGL Wiki
Flash (Diskussion | Beiträge) (Text strukturiert) |
Flash (Diskussion | Beiträge) () |
||
Zeile 6: | Zeile 6: | ||
== Lösung == | == Lösung == | ||
− | ZFighting kann durch verschieden Techniken verhindert werden: | + | ZFighting kann durch verschieden Techniken verhindert werden: <br> |
− | 1. Größe des Tiefenbuffers hochsetzen (zb. 32 bit statt 16 bit) | + | 1. Die Tiefenfunktion ändern ( [[glDepthFunc]](GL_LEQUAL) )<br> |
− | + | 2. Größe des Tiefenbuffers hochsetzen (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> | |
− | + | 4. Keine zwei Polygone an der selben Stelle zeichenen lassen<br> | |
− | + | 5. "Polygon Offset" verwenden ( [[glPolygonOffset]] )<br> | |
− | |||
== weitere Infos im Web == | == weitere Infos im Web == | ||
[http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html Ein interresanter Artikel über Z-Buffer] | [http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html Ein interresanter Artikel über Z-Buffer] |
Version vom 5. Juli 2004, 16:35 Uhr
Inhaltsverzeichnis
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össt.
Beschreibung
ZFighting erkennt mann 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. Größe des Tiefenbuffers hochsetzen (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 )