Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jun 08, 2024 06:34

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Jul 31, 2010 20:59 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
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.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jul 31, 2010 21:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
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.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jul 31, 2010 23:43 
Offline
DGL Member

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.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Aug 01, 2010 12:31 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
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);

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Aug 01, 2010 13:34 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 20, 2010 08:24 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich habe die Checkliste Shader jetzt mal zusammengestellt.
Die Shaderprofis hier können ja mal drüberlesen ob ich da grobe Schnitzer drinnen hab.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 20, 2010 13:09 
Offline
DGL Member

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.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 20, 2010 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
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...;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 20, 2010 14:10 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Und zum Einloggen den Benutzernamen und das Passwort aus dem Forum nutzen.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.083s | 15 Queries | GZIP : On ]