Seite 1 von 1

Open GL debuggen

Verfasst: 29.12.2009, 11:58
von Jonathan
Also folgendes ist mein Problem: Ich habe eine Modellkalsse zum laden und rendern von Modellen geschrieben und ein dazu passendes Spiel, welches Modelle auf einem Terrain darstellen soll. Mein Problem ist jetzt, dass der Boden nicht dargestellt wird, sobald ich ein Modell lade. Naja es wird irgendetwas mit irgendwelchen Statechanges zu tun haben, das beim Laden der Modelle irgendwas gesetzt wird, was für das rendern des Bodens nicht so toll ist.
Die Frage ist jetzt, wie findet ihr solche Fehler schnell und zuverlässig? Ich benutze z.B. glIntercept damit kann man unter anderem schön sehen, was während eines Frames so alles passiert. Aber um den Fehler beim Laden zu finden muss man fast schon einen kompletten Log erstellen und sich überlegen, was da jetzt schief gehen sollte. Desweiteren verwende ich glew, was bei jedem Start erstmal ein paar tausend abfragen für die Extensions macht, was irgendwie nervig ist, wenn man gerade debuggen will.
Ich suche jetzt nicht unbedingt Antworten auf mein jetziges Problem sondern eher Tips und Erfahrungen wie ihr Fehler sucht und findet.

Re: Open GL debuggen

Verfasst: 29.12.2009, 14:47
von anonym
Leider läuft die Trial-Version nur eine Woche:
http://www.gremedy.com/products.php

Re: Open GL debuggen

Verfasst: 29.12.2009, 15:08
von Jonathan
Hm, eine Woche reicht mal, um 1-2 Fehler zu suchen, aber nicht um das Projekt fertig zu stellen. Und die Preise sind auch jenseits von Gut und Böse, oder sagen wir, nicht auf Privatnutzer ausgerichtet. Ansonsten sieht das natürlich super aus, kommt aber wohl leider nicht in Frage :(

Re: Open GL debuggen

Verfasst: 29.12.2009, 15:57
von glassbear
Für gDebugger gibt es auch billigere Versionen für Privatleute und Studenten. Als Student hatte ich eine, hat um die $150 für die jährlich Maintenance gekostet, weiter nix. Schick einfach ne Email hin ;)

Re: Open GL debuggen

Verfasst: 29.12.2009, 15:59
von anonym
Gibt was ähnliches für umsonst:
http://www.vis.uni-stuttgart.de/glsldevil/
Kommt aber so weit ich bisher gesehen habe nicht ganz an gDEBugger ran.

Re: Open GL debuggen

Verfasst: 29.12.2009, 21:54
von Stefan Zerbst
Jonathan hat geschrieben:Die Frage ist jetzt, wie findet ihr solche Fehler schnell und zuverlässig?
Also glIntercept nützt bei solchen Dinge nicht wirklich viel. Letzten Endes, wie du ja schon selber erkannt hast, wird das Problem ein "falsch" gesetzter State sein. Dabei ist "falsch" allerdings relativ, weil das kein Fehler in der Anwendung von OpenGL ist und sich daher nicht unbedingt als irgendein GL_ERROR bemerkbar machen muss. Es ist eher ein Fehler in deinem Programmablauf und daher auch mit GL Debuggern schwer bis gar nicht zu finden.

Bei solchen Situationen ist es leider das einfachste z.B. den Modelloader am Schopfe zu packen und sukzessive alle OpenGL Anweisungen auszukommentieren. Ab irgendeinem Zeitpunkt wird das Terrain wieder auftauchen und du weißt, welcher State falsch ist.

Mit etwas mehr Detailwissen und / oder Erfahrung kann man dann auch erstmal gezielt diverse States beim Rendern des Terrains auf ihren Default setzen bzw. das was zum Rendern des Terrains eigentlich gesetzt sein sollte worauf man sich implizit verlässt. Bestenfalls wird es nur einen nicht-gepoppte GL Matrix sein :) schlimmstenfalls sind Blending-States so verdreht, dass nix bei rauskommt.

Ciao,
Stefan