DGL https://delphigl.com/forum/ |
|
Problemfindung bei Shadern - Checkliste https://delphigl.com/forum/viewtopic.php?f=20&t=9377 |
Seite 1 von 1 |
Autor: | Flash [ Sa Jul 31, 2010 20:59 ] |
Betreff des Beitrags: | Problemfindung bei Shadern - Checkliste |
Für einige häufige Probleme habe ich vor einiger Zeit Checklisten im Wiki hinterlegt. Gibts für Shader auch Standardschritte die man durchführen sollte um Problemen mit Shadern auf den Grund zu kommen? Also Situation ist: Die Ausgabe entspricht nicht dem was ich eigentlich erwarte. Wie sollte man vorgehen um den Fehler einzugrenzen. |
Autor: | Coolcat [ Sa Jul 31, 2010 21:56 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
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. |
Autor: | mrtrain [ Sa Jul 31, 2010 23:43 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
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) |
Autor: | damadmax [ So Aug 01, 2010 12:31 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
Bei der Ausgabe der Normalen als Farbe daran denken diese umzurechnen (das o.g. Blau wird dann etwas heller ![]() Code: gl_FragColor = vec4(normal / 2.0 + 0.5, 1.0);
|
Autor: | Flash [ So Aug 01, 2010 13:34 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
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. |
Autor: | Flash [ Fr Aug 20, 2010 08:24 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
Ich habe die Checkliste Shader jetzt mal zusammengestellt. Die Shaderprofis hier können ja mal drüberlesen ob ich da grobe Schnitzer drinnen hab. |
Autor: | mrtrain [ Fr Aug 20, 2010 13:09 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
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 |
Autor: | Coolcat [ Fr Aug 20, 2010 13:17 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
Zitat: 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... ![]() |
Autor: | i0n0s [ Fr Aug 20, 2010 14:10 ] |
Betreff des Beitrags: | Re: Problemfindung bei Shadern - Checkliste |
Und zum Einloggen den Benutzernamen und das Passwort aus dem Forum nutzen. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |