was sind die Auswirkungen wenn während dem zeinchen mehrfach glotho aufgerufen wird und dabei unterschiedliche znear zfar werte spezifiziert werden.
Also was ich vorhabe - alles in einem Vorgang nacheinander:
1. Zeichen der normalen Geometrie mit znear und zfar in glOrtho gesetzt auf die Werte (die Mittelpunkt +/- Halbe Raumdiagonale) => Gutes Zeinchen kein Z-Fighting
2. Zeichen einiger weniger Elemente (z.B. des Koortinatensystemes, was evtl. sehr weit weg ist - Angenommen die Teile liegen bei 10000,10000,10000 und sind nur 100x100x100 groß)
Das mache ich indem ich znear und zfar in einem 2. Aufruf von glOrtho auf +1E20 und -1E20 setzte. (funktioniert auch gut)
3. Weiteres Zeichen wie unter 1 mit nochmaligen Aufruf von glOrtho mit den znear und zfar wie unter 1. beschrieben. (funktioniert das?)
Was passiert nun mit dem Depth buffer?
Mache ich den mit 2. schon kaputt und kriege beim Zeinchen unter 3. ein Z-fightig, weil die Depth buffer Werte im Eimer sind?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das Problem dürfte sein, dass die Werte, die in den z-Buffer geschrieben werden, sich sozusagen an deinem zNear und zFar orientieren. Wenn du das also änderst, ändert sich auch die Bedeutung der bereits bestehenden Werte. Daher kommts da wohl zu interessanten zwischenfällen. Du solltest also auf ein ändern von zNear/zFar verzichten, wenn du den Tiefenpuffer nicht killst.
Eine sinnvolle verwendung wäre zum beispiel, wenn du deine Szene entlang der View-Z-Achse (also der Blickrichtung) in mehrere Teile aufteilst und dann von hinten nach vorne renderst. Dann kannst du die einzelnen Teile mit unterschiedlichem zNear und zFar rendern, musst aber zwischendrin den Tiefenpuffer abschießen, mit glClear(GL_DEPTH_BUFFER_BIT);.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Was passiert denn mit den Werten im Depth puffer? Werden die verändert, wenn ich neue zNear und zFar seetze oder werden nur nachfolgede Werte mit anderem Mapping in der Depthpuffer geschrieben?
Wenn ich unter 2. mit hohen zNear, zFar ohne DepthTest zeichne, also die Werte garnicht in den Puffer wandern, bekomme ich dann die unter 1. bereits erzeugte Depthwerte mit exakt der selben Bedeutung wieder, wenn ich die Werte nach hohen zNear und zFar (und zeichnen mit disabled Depthtest) wieder auf die Ursprungswerte von davor setze?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Verändert werden die Werte nicht. Aber die neuen Werte werden, wie du schon richtig erkannt hast, mit einem anderen Mapping geschrieben und somit auch beim Tiefentest verglichen. Das Vergleichen bekommst du mit glDisable(GL_DEPTH_TEST) ohne weiteres aus. Um auch das schreiben in den Tiefenpuffer zu verhindern, musst du glDepthMask(False) - fürs ausschalten - und später wieder glDepthMask(true) - fürs einschalten - aufrufen. Aber du musst dann halt bedenken, dass der Kram, den du mit dem extremen zNear/zFar renderst, keinen Tiefentest erhält, da also nur die Zeichenreihenfolge ausschlag gibt, ob gezeichnet wird oder nicht.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: Bing [Bot], Google [Bot] und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.