Schatten für animierte Objekte

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Schatten für animierte Objekte

Beitrag von Artificial Mind »

Jonathan hat geschrieben:
Jeason hat geschrieben:Also eigentlich geht das Debugen von OpenGL unter Windows ganz easy -> http://code.google.com/p/glintercept/ . Hat bei mir super geklappt und hat mir schon viele Stunden Fehlersuche erspart :)
Ich hab die 0.5er Version früher viel genutzt, aber dann wurde gDEBugger kostenlos und das ist imo ein deutliche besseres Tool:
http://www.gremedy.com/
gDEBugger Feature List hat geschrieben: Supports all OpenGL versions up to version 3.1 standard and additional OpenGL, WGL and GLX extensions.
Das war für mich der Grund, nicht gDEBugger zu benutzen, weil ich damit z. B. mein Deferred Shading nicht ansatzweise debuggen konnte, da gDEBugger die Texturen nicht vernünftig auslesen konnte und sich ab und an auch einfach aufhing.
(Ich benutzte OpenGL 3.3 Core afaik)
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Schatten für animierte Objekte

Beitrag von Eisflamme »

Okay, das klingt gut. Shader für Schatten habe ich gerade ja keine, ich erstelle mir eine Shadowmap-Texture und haue die über's Terrain. Wenn ich in die OpenGL-Befehle reindebuggen kann, weiß ich aber immer noch nicht genau, was das Problem ist. Ich meine, es kann ja einfach nur an den Texturkoordinaten liegen. Gut, ich könnte wahrscheinlich die generierte Texturmatrix oder die Koordinaten anschauen. Aber so wirklich was damit anfangen, kann ich dann ja auch schwerlich. =/

Aber das mit den Minusen in den Matrizen kann ich schon Mal überprüfen. Ich kann einfach vom Beispielcode die Matrizen mit meinem Code vergleichen, vielleicht sehe ich da was. Wenn ich nach und nach mein Programm an das andere anpasse, sollte es ja irgendwann auffallen. Die Texturmatrix wird ja im Programm berechnet. In meinem Fall war 4:4 meiner Matrix schon Mal negativ, kA, ob das schlimm ist.

Edit: So, nachdem ich nun alle Matrizen gleichgesetzt hab, hab ich schon Mal fest gestellt, dass die Matrix-Multiplikationsreihenfolge doch andersrum war. -.- Ich werde das glaube ich nie begreifen. Jetzt sind die Matrizen gleich, leider kommt immer noch nichts. Dann werde ich jetzt wohl auch die gleichen Modelle basteln müssen.

So, nachdem ich nun 1:1 mein Programm nachgebaut hab, ist der Fehler klar:

Das Beispielprogramm benutzt GLEE, ich benutze GLEW. Und GLEW sagt, dass es diese Schattenvergleichsgeschichten unterstützt (diese Prüfungen am Anfang funktionieren). Allerdings funktionieren sie nicht. Wenn ich diese Schattenvergleiche in beiden Programmen auskommentiere, dann sieht es gleich aus (was aber eben nicht perfekt ist). GLEE hingegen kriege ich nicht zum Laufen.

Hat hier jemand Erfahrung mit den Extensions ARB_shadow und ARB_depth_texture? -.- depth texture scheint ja zu gehen, shadow wohl nicht

Edit X: So, aber jetzt hab ich in das Beispielprogramm Mal GLEW reingehauen statt GLEE und dort funktioniert es ebenfalls. Also liegt es nicht an GLEW... Ich raffe gar nichts mehr, schade.

Edit Y: Die Codes sind wirklich identisch, ich hab keine Abweichungen gefunden. Nur nutzt das Beispielprojekt glut für Fenstererstellung usw. und mein Programm nutzt SDL... ich habe bei glutInit und Konsorten auch keine außergewöhnlichen Parameter gefunden. Ich verstehe überhaupt nichts mehr und höre für jetzt erstmal auf. Bin für alle Ideen und Vorschläge sehr, sehr willkommen!
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Schatten für animierte Objekte

Beitrag von Eisflamme »

Ok, es läuft jetzt für das Beispiel. Ich nähere mit dem jetzt langsam an.

Wie macht ihr das eigentlich mit dem Schatten für multitexturierte Objekte? Mein Terrain nutzt z.B. 3 Texturen. Also brauche ich 4 Texturen, wenn Schatten mit dabei sein soll. Oder kann man das noch anders lösen?
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Schatten für animierte Objekte

Beitrag von Artificial Mind »

Wenn du eine Deferred Shading Umgebung hast, wird die Beleuchtung unabhängig (im Sinne von in einem anderen Pass) von der Geometrie gemacht und dann sind die getrennt. Sonst brauchst du afaik 4 Texturen.
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Schatten für animierte Objekte

Beitrag von Eisflamme »

Achso, also werden die geblendet? Steht vermutlich ja auch alles in den Artikeln. :) Dann weiß ich Bescheid... ist es normal, dass man für die ganzen Sachen mehrere dutzend Stunden braucht? Ich sitz allein heut schon 10 dran und komme nur langsam voran...
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Schatten für animierte Objekte

Beitrag von Artificial Mind »

Eisflamme hat geschrieben: ist es normal, dass man für die ganzen Sachen mehrere dutzend Stunden braucht? Ich sitz allein heut schon 10 dran und komme nur langsam voran...
Kommt sehr stark auf deine Erfahrung, das Thema und die "Tutorial-Dichte" dazu an. Aber ja, je nach Thema kann das gut auch mal länger dauern. Ich habe zum Beispiel ne ganze Weile gebraucht, bis ich die Schatten vernünftig in eine CubeMap zeichnen und aus dieser auch wieder lesen konnte in OpenGL. Mir graut es schon, da ich bald auf CubeMapArrays umsteigen möchte >.<
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Schatten für animierte Objekte

Beitrag von Eisflamme »

hehe, mit so was hab ich mich auch noch nicht befasst. Bei den ganzen Schatten sind mir halt viele, viele Details nicht klar. ZB wieso man zwei Renderdurchläufe macht und die Ergebnisse kombiniert werden, obwohl man in beiden eigentlich kein Alpha hat, sprich: eigentlich sollte man nur das letzte sehen...

Und diese Texturkoordinaten-Erstellung seitens OpenGL für Eye-Koordinaten ist mir auch nicht klar. Der berechnet anscheinend für jeden Vertex der gerenderten Bilder die passende Texturkoordinate aus der Schattenmatrix. Oder er erfasst irgendwelche Ränder und mappt das dann. Aber der muss ja bei ner gewellten Form auch wissen, wo das hinmuss usw. Voll kein tiefes Verständnis.

Und mit Matrizen mach ich auch ständig Fehler... a * b oder b * a, das kommt ja immer drauf an und ich weiß eben nicht, wie ich das zügig jedes Mal aufs neue rausfinden muss. Es ist immer großes Probieren, was echt nicht gut ist. Und diese ganzen OpenGL-States und so... ach na ja, ich hab aber auch wieder viel zu lange Pause gemacht, ich muss Mal mehr am Stück arbeiten. Immer diese 10 Projekte parallel...
Antworten