Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ArthurII

Treue Seele

  • »ArthurII« ist der Autor dieses Themas

Beiträge: 132

Wohnort: Aachen

Beruf: Student

  • Private Nachricht senden

11

05.03.2010, 07:53

Naja, in dem Bereich, den ich da rot umrandet habe, ich ist der Schatten nicht aus jeder Richtung sichtbar. Er flimmert halt so ein bischen. Weiß nicht wie ich das sonnst beschreiben soll. Hab gerade mal versucht den Depth-Buffer auf 32 Bit zu stellen, bringt aber nichts :(
Ich bin nicht verrückt - nur verhaltensoriginell!
Project-Seite: Aura

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

05.03.2010, 08:27

Wie groß ist denn der Abstand zwischen deiner Near und Far-Plane?

ArthurII

Treue Seele

  • »ArthurII« ist der Autor dieses Themas

Beiträge: 132

Wohnort: Aachen

Beruf: Student

  • Private Nachricht senden

13

05.03.2010, 16:01

ich verwende: gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.001f,150.0f); bei 1024 zu 768 Pixeln


Edit:
hab die letzten beiden Argumente in 0.1f und 150.0f geändert und dazu noch den Depth-Buffer auf 32 Bit hochgeschraubt (war vorher auf 16). Jetzt funktioniert es.

Allerdings habe ich jetzt ein neues Problem:
Versuche auf Z-Fail Schatten umzusteigen, irgendwas klappt aber wieder nicht :( sieht einfach krüppelig aus.

kann noch mal jemand so eine Checkliste notieren wie Alyx sie weiter oben gepostet hatte?
Die Tutorien zu dem Thema sind leider um einiges spärlicher gesät als die zum Z-Pass Verfahren (wenn man überhaupt eins findet)
Ich bin nicht verrückt - nur verhaltensoriginell!
Project-Seite: Aura

ArthurII

Treue Seele

  • »ArthurII« ist der Autor dieses Themas

Beiträge: 132

Wohnort: Aachen

Beruf: Student

  • Private Nachricht senden

14

12.03.2010, 08:35

Habe auch hier wieder den Fehler selber gefunden. Saß in Mathe und dachte plötzlich: glDepthFunc muss bei Z-fail auf GL_LESS gesetzt werden, nicht GL_LEQUAL.

Allerdings taucht jetzt wieder das Problem mit dem Flimmern auf. Nicht mehr nur an den Kanten sondern über das komplette Polygon hinweg.

Habe den Z-Buffer schon auf 64 Bit gesetzt, macht aber keinen Unterschied.
Gibt es Möglichkeiten solche Überschneidungen genauer zu berechnen oder den Buffer künstlich hochpuscht?
Ich bin nicht verrückt - nur verhaltensoriginell!
Project-Seite: Aura

Alyx

Treue Seele

Beiträge: 236

Wohnort: Hannover

Beruf: Head Of Software Development

  • Private Nachricht senden

15

12.03.2010, 09:54

Also ob der Z-Buffer auf 16 oder 32 Bit gesetzt ist, macht definitiv keinerlei Unterschied. Das funktionierte selbst auf alten Riva TNT Karten von anno domini schon perfekt mit 16 Bit.

Wenn die Genauigkeit deines Z-Buffers so große Probleme macht, vermute ich deinen Fehler mittlerweile viel eher in deinen ganzen anderen Berechnungen als bei deinen OpenGL-Settings. Durch deine Flag-Umschalterei werden diese Fehler lediglich besser kaschiert, aber besser werden sie damit nicht.

Der Depth-Test beim Zeichnen der Planes... sofern ich mich nun grad nicht völlig irre... muss auf jeden Fall auf GL_LEQUAL gesetzt werden. Das System beruht ja schließlich darauf, dass die + und - Planes sich in allen Bereichen des Bildschirms, auf die kein Schatten geworfen werden soll, gegenseitig neutralisieren und nur dort, wo die "weg guckenden" der Planes durch den Depth-Test nicht gezeichnet werden (weil sie in das Objekt "reintstechen") ist dies dann nicht der Fall, weswegen der Stencil-Wert dort am Ende dann !=0 ist, so dass man weiß, dass der Bereich schattiert ist. Und ob du nun 16 oder 32 Bit Z-Buffer hast, macht dort dann mal null komma gar nichts aus, weil bei der Berechnung der Dreieckskannten im 3D-Raum als auch die Startpuntke der Shadow-Planes für eben diese kritischen Punkte ja exakt die selbe Koordinaten verwenden (wenn deine Berechnung richtig ist) und da darf GL_LEQUAL definitiv NICHT fehlschlagen ;-). Und bei allen weiter entfernten Punkten der Shadow-Planes, die ja bei A+LightDirection*Infinity, B+LightDirection*Infinity und C+LightDirection*Infinity liegen sollten, kann dieser Test ebenfalls niemals fehlschlagen, da egal wie ungenau die Z-Berechnung ist, > und < liefern in diesem Fall, wo die Planes ja wirklich im 90° Winkel wegstehen, ganz definitiv keine Werte, die dazu führen könnten ;-).

Das einzige was ich mir sonst noch vorstellen könnte ist, dass du dich selbst in einem der Shadow-Volumina befindest, das darf natürlich nicht passieren :-).

LG
Alyx

ArthurII

Treue Seele

  • »ArthurII« ist der Autor dieses Themas

Beiträge: 132

Wohnort: Aachen

Beruf: Student

  • Private Nachricht senden

16

12.03.2010, 17:02

hattest du in dem Edit des Postings von da drüber gelesen, dass ich auf Z-Fail umsteigen wollte?? Da macht die Sache mit den Caps auf der Seite des Objekts schon den Unterschied, wie knapp das ist. Zumindest nach meinem Verständnis der Methode.
Ich bin nicht verrückt - nur verhaltensoriginell!
Project-Seite: Aura

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

12.03.2010, 17:05

Vielleicht hilft dir ja ein Depth Bias. Schau dir mal glPolygonOffset() an...

ArthurII

Treue Seele

  • »ArthurII« ist der Autor dieses Themas

Beiträge: 132

Wohnort: Aachen

Beruf: Student

  • Private Nachricht senden

18

13.04.2010, 21:54

war die letzte Zeit mit nem Map-Editor beschäftigt. Habe mich nun wieder dem Haupt-Projekt zugewandt :)

Habe deinen Tip versucht, klappt auch. Das Flimmern ist weg.

jedoch sieht der Schatten wenn ich zwei Objekte kante an Kante stelle noch komisch aus. Irgendwie fehlt da was. In der "Flimmerfase" war es noch möglich durch viel Geduld die Ansicht so zu drehen, dass ein ununterbrochener Schatten zu sehen ist. Jetzt sieht es leider so aus:

Screenshot
Ich bin nicht verrückt - nur verhaltensoriginell!
Project-Seite: Aura

Werbeanzeige