Depth Buffering

Moderator: Game Technology

SirtobeD
Mausschubser
Mausschubser
Beiträge: 68
Registriert: 28. Okt 2010 18:56

Depth Buffering

Beitrag von SirtobeD » 12. Jan 2017 22:32

Hallo,

ich habe mir Übung 9 aus dem Repository gezogen. Beim Ausführen ohne irgendwelche Modifikationen scheint irgendetwas mit der Tiefenschärfe nicht zu funktionieren. Ich nutze OSX mit X-Code. Habe ein Bild angehängt das den Fehler zeigt.
Bildschirmfoto 2017-01-12 um 22.28.40.png
Bildschirmfoto 2017-01-12 um 22.28.40.png (146.03 KiB) 539 mal betrachtet
Viele Grüße
Tobias

FloM-KOM
Moderator
Moderator
Beiträge: 279
Registriert: 27. Apr 2010 17:20

Re: Depth Buffering

Beitrag von FloM-KOM » 13. Jan 2017 07:11

Welche Version von MacOS und Xcode sind denn installiert? Und sind alle Treiber aktuell? Ich habe es gerade ausprobiert auf dem Mac, da hat alles gepasst.

SirtobeD
Mausschubser
Mausschubser
Beiträge: 68
Registriert: 28. Okt 2010 18:56

Re: Depth Buffering

Beitrag von SirtobeD » 15. Jan 2017 17:39

XCode: Version 8.2.1 (8C1002)
OSX: 10.12.2
Treiber sind alle aktuell.
Habe auch bei keinem anderen Programm Probleme mit der Grafik.

FloM-KOM
Moderator
Moderator
Beiträge: 279
Registriert: 27. Apr 2010 17:20

Re: Depth Buffering

Beitrag von FloM-KOM » 16. Jan 2017 13:09

Danke für die Infos, haben es jetzt unter El Capitan sowie Sierra ausprobiert, ging bei uns beide Male, von daher können wir nur eine Ferndiagnose probieren :-(

Kannst Du bitte diese beiden Schritte probieren, beides in der Datei Kore/Backends/OSX/Sources/Kore/BasicOpenGLView.mm, Funktion basicPixelFormat
1) Die Variable aa von 1 auf 0 setzen
2) Die beiden Einträge (NSOpenGLPixelFormatAttribute)24 in 16 oder 32 ändern.

Gab es bei anderen Übungen seit Übung 5 auch Depth-Buffer-Probleme?

SirtobeD
Mausschubser
Mausschubser
Beiträge: 68
Registriert: 28. Okt 2010 18:56

Re: Depth Buffering

Beitrag von SirtobeD » 16. Jan 2017 15:30

Die Änderungen haben leider beide nichts bewirkt.
Ich meine mich erinnern zu können das ich bei einer vorherigen Übung ähnliche Probleme hatte, da habe ich dann in einem Shader was geändert (bzw. von .frag Shader was in den .vert Shader kopiert oder umgekehrt) und dann gings. Weiß aber leider nicht mehr bei welcher Übung und was genau ich geändert habe ...

FloM-KOM
Moderator
Moderator
Beiträge: 279
Registriert: 27. Apr 2010 17:20

Re: Depth Buffering

Beitrag von FloM-KOM » 16. Jan 2017 16:52

Wir sind immer noch mit dem Latein am Ende und überlegen woran es liegen könnte, es gab aber einen Hinweis auf einen falschen Depth Clear im Übungscode der unter DirectX dazu geführt hat daß nichts gezeichnet wurde, vielleicht hängt das zusammen. Dafür müsstest Du einmal die Übung neu ziehen und ausprobieren. Wir rätseln derweil weiter.

SirtobeD
Mausschubser
Mausschubser
Beiträge: 68
Registriert: 28. Okt 2010 18:56

Re: Depth Buffering

Beitrag von SirtobeD » 16. Jan 2017 19:42

Am falschen Depth Clear liegt es offensichtlich auch nicht, habe ich gerade ausprobiert.

Ich musste in Übung 6 die lightDistance-Berechnung verschieben, da war auch ein Kommentar in einem Shader: "// Distance between the light and the current point. For the DirectX backend, we need to compute this in the vertex shader, if not, it will get a wrong value" - vielleicht hängt das mit dem Problem zusammen?

FloM-KOM
Moderator
Moderator
Beiträge: 279
Registriert: 27. Apr 2010 17:20

Re: Depth Buffering

Beitrag von FloM-KOM » 17. Jan 2017 20:56

Das sollte eigentlich nicht damit zusammenhängen. Was mir noch einfällt:
* Du könntest im Debugger anschauen ob die Zeilen in denen der Z-Buffer-Test am Ende der init()-Funktion eingeschaltet wird wirklich ausgeführt werden.
* Unter https://developer.apple.com/library/con ... flows.html gibt es eine kleine Anleitung zum OpenGL-Debugging unter MacOS, vielleicht taucht da etwas auf.

Wie gesagt, wir haben leider noch keinen Mac gefunden auf dem wir es reproduzieren können zum Fixen. Ist das ein Laptop? Vielleicht können wir am Samstag zusammen einen Blick draufwerfen falls Du da bist.

0b101101101
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 179
Registriert: 15. Apr 2015 18:24

Re: Depth Buffering

Beitrag von 0b101101101 » 18. Jan 2017 15:43

Wenn ich zu

Code: Alles auswählen

		Graphics::setRenderState(DepthTest, true);
		Graphics::setRenderState(DepthTestCompare, ZCompareLess);
die Zeile

Code: Alles auswählen

		Graphics::setRenderState(DepthWrite, true);
hinzufüge, funktionierts.

Das stand für eine vergangene Aufgabe glaub ich schonmal hier im Forum, drum hab ichs ausprobiert.

FloM-KOM
Moderator
Moderator
Beiträge: 279
Registriert: 27. Apr 2010 17:20

Re: Depth Buffering

Beitrag von FloM-KOM » 18. Jan 2017 15:59

Ja, das macht Sinn. Danke! Hatte leider den anderen Thread nicht mehr auf dem Schirm, sonst wäre ich vielleicht eher drauf gekommen. Ich füge die Zeile in den Übungen dazu.

Antworten

Zurück zu „Game Technology“