DGL https://delphigl.com/forum/ |
|
Schattendemo https://delphigl.com/forum/viewtopic.php?f=20&t=10624 |
Seite 1 von 3 |
Autor: | MBS [ So Okt 21, 2012 14:28 ] |
Betreff des Beitrags: | Schattendemo |
Hi Leute, Hat irgendjemand eine Schattendemo für mich? Ich habe versucht das Tutorial http://wiki.delphigl.com/index.php/GLSL_Licht_und_Schatten zu machen^^ Ich habe das prinzip + den Shadercode verstanden, nur ich schaffe es nicht die Schatten in meinem Programm umzusetzten, weil ich den Delphi-Quellcode vom Tutorial nicht nachvollziehen kann. Danke für's Lesen ![]() |
Autor: | Thmfrnk [ Mo Okt 22, 2012 06:57 ] |
Betreff des Beitrags: | Re: Schattendemo |
Für den Anfang ist auch dieses Tutorial nicht schlecht: http://fabiensanglard.net/shadowmapping/index.php Wo genau hast du denn Probleme? |
Autor: | MBS [ Do Okt 25, 2012 18:28 ] | |||
Betreff des Beitrags: | Re: Schattendemo | |||
Ich kann einfach nicht ruhig schlafen, solange das nicht läuft, denn das ist etwas ziemlich wichtiges. Ich habe im Anhang meine Projektdatei und das Ergebnis des Programms. Irgendetwas läuft schön falsch. Es sieht aus, als wäre meine ganze Szene im Schatten. Ich hoffe ihr könnt mir helfen und nimmt euch auch kurz Zeit mein Projekt durchzugucken ![]()
|
Autor: | MBS [ Sa Okt 27, 2012 19:21 ] |
Betreff des Beitrags: | Re: Schattendemo |
Hat denn niemand kurz Zeit sich das durchzusehen ![]() Das wäre so nett von euch ![]() |
Autor: | Lord Horazont [ So Okt 28, 2012 11:37 ] |
Betreff des Beitrags: | Re: Schattendemo |
Niemand hat die Zeit, sich mal eben so eine Zip runterzuladen, die bei sich zu kompilieren (ne Fremde .exe ausführen ... hmm; falls man überhaupt Windows hat) und dann deine Fehler zu debuggen. Du musst schon versuchen, den Fehler irgendwie einzugrenzen. Lass dir z.B. den Inhalt der relevanten Texturen ausgeben (wenn es Shadowmapping ist). Rechne ein kleines Offset auf die Daten drauf um zu schauen obs vielleicht nur nen Rundungsfehler ist und whatnot. Wenn du nicht zeigst, dass du selber ein wenig Arbeit reingesteckt hast, den Fehler zu finden, wird sich nur schwer jemand motivieren lassen. Leider. Aber wir haben auch alle nicht unendlich viel Zeit. grüße |
Autor: | MBS [ So Okt 28, 2012 17:08 ] |
Betreff des Beitrags: | Re: Schattendemo |
ok ![]() Ups, als ich gerade eine logische Reinfolge schreiben wollte, was ich gemacht habe und daher bei OnCreate anfangen wollte, sah ich gleich, dass ich die Prozedur zum erstellen des Framebufferobjekts gar nicht ausgeführt habe. ![]() Jetzt sehe ich schon sowas wie Licht^^ Ich werde versuchen, die noch seltsamen Schatten zu fixen ![]() Wenn ich da noch das ein oder andere Problem habe melde ich mich ![]() Das kennt ihr doch bestimmt auch, dass man nicht auf den Fehler kommt, bis man es jemanden zeigen möchte^^ |
Autor: | Lord Horazont [ So Okt 28, 2012 17:09 ] |
Betreff des Beitrags: | Re: Schattendemo |
Ja, genau deswegen sollst du ja erstmal versuchen den Fehler einzugrenzen ![]() ![]() grüße |
Autor: | MBS [ So Okt 28, 2012 17:31 ] | ||
Betreff des Beitrags: | Re: Schattendemo | ||
So sieht das momentane ergebnis aus (siehe Anhang) ^^ Ich frag mich gerade, was deneben gegangen sein könnte. Ich denke irgendetwas mit dem Framebufferobjekt. Ich denke aber nicht, dass das am Shader leigen könnte. Falsch an dem Ergebnis ist, dass: 1. das Quad keinen Schatten castet 2. der Lichtkreis nicht dieselbe Farbe hat, sondern dass an den Winkeln 0° und 180° ein schwarzer Übergang ist
|
Autor: | MBS [ Mo Okt 29, 2012 13:07 ] | ||
Betreff des Beitrags: | Re: Schattendemo | ||
Was habe ich gemacht? Beim erstellen der Anwendung habe ich die Shader geladen und ein Framebufferobjekt für das Rendern der Schatten erstellt. An diesem Framebufferobjekt habe ich eine Texture gebunden, die das grenderte als shadow_map speichern soll. Die Größe der Texture entspricht meiner der Variabeln shadow_size. Nach dem erstellen dieses Framebufferobjekts und der Framebuffertexture prüfe ich den Status des Framebufferobjekts. Im Quellcode sieht das so aus: Code:
Beim ausführen der Procedure CreateFBO kam es zu keinen Fehlern, der Status des Framebufferobjekts hatte keine Fehler. Dieser Abschnitt (Shader laden + FBO) scheint einwandfrei funktioniert zu haben. Deshalb erläutere ich jetzt, was ich beim Rendern, das ich in dem OnIdle-Event der Anwendung ausführe gemacht habe. Als erstes habe ich die Zeit für die FPS berechnung gemessen. Danach habe ich versucht, das FBO zu rendern (mit den ShadowShader). Da ich zwei Lichter rendere habe ich eine for-Schleife in der ich 360° rendere. Danach deaktiviere ich das Framebufferobjekt und rendere dich Szene mit dem Final-Shader. Nach dem eigentlichen Rendern berechne ich die FPS. Im Quellcode sieht das bei mir so aus: Code:
Das zeichnen der Objekte übernimmt die Prozedur DrawObjects. Code:
Das habe ich gemacht, das ergebnis ist seltsam^^ Es etwas wie ein Licht gerendert, doch es entstehen keine Schatten und der Lichtkreis ist auch fehlerhaft. Ich habe das Gefühlt, dass es am Rendern des Framebufferobjekts liegt. Da ich mit Framebufferobjekten noch nicht viel Erfahrung habe, bitte ich euch um Hilfe ![]() PS: Ihr könnt auch gerne selbst einen Blick auf das Projekt werfen. Im Anhang habe ich die Projekt-Datei ![]()
|
Autor: | MBS [ Di Dez 18, 2012 17:36 ] |
Betreff des Beitrags: | Re: Schattendemo |
Hat jemand von euch noch eine Schattendemo auf der Platte? |
Autor: | yunharla [ Di Dez 18, 2012 19:36 ] |
Betreff des Beitrags: | Re: Schattendemo |
ähm.... ich sags mal .... nett.... die Basics sind schon voller Fehler.... ich empfehl dir mal nehe und robsite durchzuarbeiten um die Grundlagen zu verstehen... |
Autor: | MBS [ Mi Dez 19, 2012 21:33 ] |
Betreff des Beitrags: | Re: Schattendemo |
Kannst du mir nicht bitte sagen, wo die Fehler sind, damit ich weiß wo die Nadel im Heuhaufen sein könnte? |
Autor: | Traude [ Do Dez 20, 2012 14:53 ] |
Betreff des Beitrags: | Re: Schattendemo |
Wenn mich nicht alles täuscht, gibt es dafür im Wiki einen Artikel, nämlich hier: http://wiki.delphigl.com/index.php/GLSL ... d_Schatten |
Autor: | MBS [ Do Dez 20, 2012 14:59 ] |
Betreff des Beitrags: | Re: Schattendemo |
Genau. Den Beitrag habe ich ja durchgearbeitet. Das Ergebnis ist meine Projektarchiv, das ich schon hochgeladen habe. Doch ich wollte auch fragen, ob jemand von euch etwas ausführbares hat oder mir Fehlerstellen in meinem Projekt zeigen kann. |
Autor: | Traude [ Do Dez 20, 2012 17:14 ] |
Betreff des Beitrags: | Re: Schattendemo |
Ja , ich habe etwas Ausführbares. Allerdings nicht aus diesem Tutorial, sondern von der Website Fabien Sanglard; das ist kein Dual Paraboloid- sondern ein normales Shadow Mapping, nur mit einer Shadowmap, und ich habe es in meine Engine "hineingeflochten". Das bedeutet, damit Du damit etwas anfangen kannst, muss ich es in eine einfachere Form gießen, was gar nicht so einfach ist. Und ich arbeite schon lange nicht mehr mit Delphi, sondern mit Free Pascal. Ich verwende kein TForm, sondern erzeuge alle meine Fenster selbst. Das sollte eigentlich in Delphi auch laufen. Zusätzlich ist gerade die Woche vor Weihnachten(!). Allerdings - ich habe eine Vorlage für eine Test-Grafikanwendung, mit der ich alle meine Tests mache und auch archiviere. Die könnte ich verwenden und ein ShadowMapping einfügen, das wäre vielleicht bis morgen Abend zu schaffen. |
Seite 1 von 3 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |