PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenGL Anzeigeproblem: Culling falsch??


Einfachkrank
2003-09-10, 19:15:31
Hi,

wie hier unschwer zu erkennen ist, sind bei unterschiedlichen Kameraperspektiven, verschiedene Polygone und Formen einfach verschwunden und ich weiß net warum? Woran kann denn so was liegen?

http://d.eberhardtfj1100.bei.t-online.de/Bild3.jpg http://d.eberhardtfj1100.bei.t-online.de/Bild2.jpg
http://d.eberhardtfj1100.bei.t-online.de/Bild1.jpg

MFG Einfachkrank

Einfachkrank
2003-09-11, 17:13:02
Hat keiner irgend ne Idee ? :(

zeckensack
2003-09-11, 18:41:06
Man sieht leider nicht allzuviel aussagekräftiges auf deinen Screenshots :|

Hast du einen Z-Buffer?
Aktiviert? (glDepthFunc(GL_LEQUAL); glEnable(GL_DEPTH_TEST); )
Wenn nein, dann bestimmt die Render-Reihenfolge darüber, welches Faces sichtbar sind. Das könnte es glatt sein ...

Hast du culling überhaupt angeknipst? Wenn ja, wie?

Einfachkrank
2003-09-14, 18:15:06
Z-Buffer steht standard mäßig auf GL_LESS und wird zwischen durch hin und wieder mal auf GL_LEQUAL gestellt, aber nicht wenn die Formen mit Texturen gerendert werden, wie oben dargestellt. Und Culling ist nichts besonderes eingestellt, aber auf jeden Fall enabled.

Einfachkrank
2003-09-15, 20:54:34
Wenn wir schon das Thema Culling schneiden -> Wie ist das bei OpenGL eigentlich genau? Culling sollte ich doch verwenden, wenn ich nur eine Seite der Polygone rendern möchte, um Leistung zu sparen, oder kann man Culling auch in anderen Situationen ausschalten?

zeckensack
2003-09-15, 21:15:11
Jo. Culling verhindert einfach das rendern der "Rückseiten". Bei 'normalem' Rendering (im Ggs zu Stencil-Schatten-Volumen und so Zeugs) in Kombination mit Z-Buffering ist Culling ein reines Performance-Feature.

Du mußt allerdings darauf achten, daß alle Polygone ein konsistentes 'winding' haben. Dh bei default-Einstellung, daß alle Außenflächen deiner Objekte, wenn sie Richtung Betrachter zeigen, im Gegenuhrzeigersinn gerendert werden müssen (Übergabe-Reihenfolge der vertices).
Wenn eine GUZS-Oberfläche dann auf den Rücken gedreht wird, ist sie dann in Fensterkoordinaten um UZS und wird verworfen.

Nochmal die Frage: was genau ist an den Screenshots falsch? Kannst du vielleicht andere Texturen/Farben benutzen, damit man das besser sieht?
Frage 2: Sieht alles korrekt aus, wenn du den Z-Buffer anknipst, aber Culling ausknipst?