Habs jetzt endlich hinbekommen Schatten in OpenGL zu rendern . Allerdings habe ich folgende Probleme bemerkt: - Der Schatten wird ins "Unendliche" projeziert - Wenn die Kamera innerhalb der Silhouette ist, wirkt der Schatten "zerstochen"
Um die beiden Probleme verständlicher zu machen, hier zwei Screenshots:
Ich hab das bei mir ein etwas anders eingebaut (heißt jetzt aber nicht das deswegen der Schatten die zwei Probleme macht). Bei mir sieht das wie folgt aus:
Bei den Stencilschatten muss man z.B.die zFail-Methode nutzen wenn die Kamera im Schatten liegt, dass trifft nämlich genau auf dein zweites Bild zu. Die Methode ist zwar minimal komplexer weil man dem Schatten einen "Deckel" verpassen muss, aber für sowas unumgänglich.
Ah danke! Hab jetzt die zFail - Methode angewendet. Dadurch sind die 2 Probleme behoben aber ein neues taucht auf: Jetzt wird der Schatten 2x gerendert. Also ein Schatten der passt und noch einer der immer relativ zur Kameraposition liegt.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Bei zFail muss man für jedes Schattenvolumen eine Kappe konstruieren, also quasi nach hinten mit einer Silhouette abschliessen und nach vorne. Hast du das auch gemacht? Wenn nicht dann entstehen die von dir gezeigten doppelten Schatten.
P.S. : Bitte poste doch Bilder hier direkt als Anhang oder so, ansonsten muss man die immer erst runterladen bevor man sie sehen kann.
Das mit den Kappen hab ich jetzt gemacht. Sieht zwar etwas unsauber aus aber Hauptsache ist ja das moeglichst keine Loecher innerhalb dess Schattenvolumes sind oder?
Hier die Screenshots:
Dateianhang:
shadow1.jpg
Dateianhang:
shadow2.jpg
Leider hat sich am Problem nichts verändert .
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Dann machst du es nicht korrekt. Ist dein Mesh auch wirklich geschlossen? Denn Meshs mit Löchern kann man mit Stencilschatten via zFail nicht verwenden. Und wie erstellst du die Kappen? Normalerweise kann man dazu ja direkt die Silhouette des Schattenwerfers nutzen.
Hm... aber ich glaube das hängt nicht direkt mit den Kappen zusammen... weil mir ist gerade aufgefallen das der nicht den selben Schatten 2x rendert sondern das normale Objekt als Schatten rendert.
Edit: Habs soeben mal mit einem Würfel ausprobiert wo garantiert keine Loecher drin sind -> selbe Problem .. Also fällt das mit den Loechern schonmal weg...
Für die Kappe beim Objekt sollte man kein einfaches GL_POLYGON verwenden, weil sonst diese Kappe auf das Objekt selbst Schatten werfen kann (an Stellen wo dies nicht geschehen sollte). Das wäre zum Beispiel bei einer Suppenschüssel deren Öffnung in Richtung Licht zeigt der Fall.
@Schläfer Stimmt... Ist ja nur vorrübergehend um es zu testen...
Hab das Licht jetzt mal an eine bessere Position gesetzt um die Silhouette besser erkennbar zu machen.
Dateianhang:
schatten1.jpg
Dateianhang:
schatten2.jpg
Dateianhang:
schatten3.jpg
Wie man auf dem 2. Bild sieht ist die vordere Kappe eingeknickt... Darf das sein oder muss die Kappe einflächig sein? Und passt auch die Position der hinteren Kappe oder muss die vor das Objekt?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Darf das sein oder muss die Kappe einflächig sein?
Wie viele Flächen die Kappe hat ist grundsätzlich egal, es dürfen bloß keine Löcher drinnen sein. Die dem Licht zugewandte Kappe muss zudem zu deiner Geometrie passen (und zwar so, dass sie nicht davor liegt, und auch nicht (zu weit) dahinter). Die dem Licht abgewandte Kappe muss auf der FarCP liegen, oder dahinter, wenn die FarCP deaktiviert ist (NV_Depth_Clamp glaub ich hieß das) Was deine Bilder angeht: Da werd ich nicht wirklich schlau daraus. Hast du da einfach die dem Licht zugewandten Kappen ein Stück verschoben, um die abgewandten zu kriegen? Weil so gehts nicht wirklich...
Auf den 2 Bildern (ohne Stencil - Operationen) ist die selbe Szene zu sehen, aber aus 2 verschiedenen Perspektiven. Ich hab absichtlich die Länge dess Schattenwurfs verringert damit man sieht das die Kappe richtig drauf ist. Auf dem 3. Bild hab ich die Länge dess Schattens natürlich verlängert, sonst würde man ja garkeinen Schatten sehen .
Zitat:
Die dem Licht zugewandte Kappe muss zudem zu deiner Geometrie passen (und zwar so, dass sie nicht davor liegt, und auch nicht (zu weit) dahinter)
Ja, die Kappen passen, die verschließen den Schattenwurf am Anfang und Ende lückenlos.
Hm, hast du auch daran gedacht, dass die beiden Kappen in unterschiedlicher Orientierung gezeichnet werden müssen? Also die Vertices der Kappe beim Objekt gegen den Uhrzeigersinn und die der entfernten im Uhrzeigersinn. Die Seitenflächen müssen außerdem auch nach außen zeigen.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.