Hm, ein paar Vorschläge die mir so spontan einfallen:
Wenn gar nichts zu sehen ist: 1. Prüfen ob die Grafikkarte (bzw. die OpenGL-Version) überhaupt Shader zur Verfügung stellt. 2. Sicherstellen das die Fehlerabfrage funktioniert. Etwa absichtlich einen Compiler-Fehler einbauen um zu sehen ob die Fehlermeldung korrekt ausgegeben wird. 3. Checken ob ohne Shader was zu sehen ist um sicherzustellen das es auch am Shader liegt und nicht etwa am Z-Buffer, Blending, etc... 4. Beliebter Fehler: Uniforms gesetzt bevor der Shader gebunden war? 5. Den Fragmentshader einfach mal eine konstante Farbe (ungleich der Hintergrundfarbe) ausgeben lassen um zu sehen ob er überhaupt ausgeführt wird.
Wenn etwas zu sehen ist aber nicht das gewünschte: 1. Checken ob die Normalen richtig sind. Dazu einfach im Fragmentshader die Normale als Farbe ausgeben. Die Farbe sollte sich je nach Ausrichtung einer Fläche zur Kamera ändern. Zur Kamera gewandte Flächen sollten bläulich erscheinen, da die Normale in Richtung der Z-Achse stehen müsste. Es ist oft einen Versuch Wert einfach mal das Vorzeichen der Normale umzukehren. 2. Checken ob die Texturkoordinaten korrekt sind. Auch hier die Texturkoordinaten als Farbwert ausgeben lassen.
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Finde ich eine gute Idee, mit der Checkliste. Ich würde noch hinzufügen:
Wenn der Shader sich nicht kompilieren lässt: - Prüfen, ob der Code wirklich korrekt an glShaderSource() übergeben wird (einfach einen Haltepunkt setzen)
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 19:34, insgesamt 1-mal geändert.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also das klingt doch schonmal ganz gut. Kann man das ganze noch mit ein paar Befehlen garnieren. Also wie soll man abprüfen, ob Shader unterstützt werden? Die Fehlerabfrage bei Compilierfehlern, wie soll das am besten geschehen? (Wenns in den Tuts erklärt wird, kann man das ja verlinken) etc.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Ich bin zwar alles andere als ein Shaderprofi, aber hier mal drei Kleinigkeiten:
0. Bei "Unterstützt die Grafikkarte überhaupt Shader?" würde sich ein Satz wie "Es wird mindestens OpenGL Version 2.0 oder 1.5 mit den Extensions, die hier aufgelistet sind, benötigt." imho ganz gut machen. - habe ich jetzt geändert
1. Soll man im Wiki eigentlich gesiezt oder geduzt werden? Ich fände es zumindest schöner, wenn man es (wenigstens innerhalb eines Artikels) irgendwie einheitlich macht.
2. Ich finde die Aufteilung, wie sie hier im Forum ist ehrlich gesagt besser als die im Wiki. Auch wenn es dort vielleicht professioneller aussieht, wenn man die Punkte in "Grundlagen" und "Problemspezifisches" aufteilt, findet man die für sich relevanten Punkte m.E. schneller bei einer Aufteilung mit "Wenn gar nichts zu sehen ist:" usw.
Uuund... kann ich das jetzt eigentlich einfach ändern, oder wie ist das jetzt gedacht? Ich habe nämlich noch nie etwas in einem Wiki geändert.
edit: Wie steht ihr denn zu meinen Punkten 1 und 2? Soll ich das auch ändern?
Grüße mrtrain
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 19:34, insgesamt 3-mal geändert.
Uuund... kann ich das jetzt eigentlich einfach ändern, oder wie ist das jetzt gedacht? Ich habe nämlich noch nie etwas in einem Wiki geändert.
In einem Wiki ändert man einfach. Es gibt eine Versionshistorie, d.h. man kann gucken was jemand geändert hat und das ggf. wieder rückgängig machen. Also keine Angst...
Mitglieder in diesem Forum: 0 Mitglieder und 15 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.