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

Aktuelle Zeit: So Mai 26, 2024 13:41

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Shadowmapping probleme
BeitragVerfasst: So Okt 23, 2011 11:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich habe bei meinem ShadowMapping ein kleines Problem mit dem Self-Shadowing. (siehe Anhang)

Dashier ist der Shader code den ich nutze:
Code:
  1.     float shadowMap(vec4 shadowPosition, sampler2D shadowMap, mat4 shadowTexMatrix)
  2.     {
  3.         vec4 shadowTexCoord = shadowTexMatrix * shadowPosition;
  4.         vec4 shadowTexCoordDivW = shadowTexCoord / shadowTexCoord.w;
  5.         shadowTexCoordDivW.z += 0.0005;
  6.         float distanceFromLight = texture2D(shadowMap, shadowTexCoordDivW.st).z;
  7.         if (shadowTexCoord.w > 0.0)
  8.             return distanceFromLight < shadowTexCoordDivW.z ? 0.0 : 1.0;
  9.         return 1.0;
  10.     }


shadowPosition ist ein varying das im VertexShader auf "gl_Vertex" gesetzt wird.
shadowMap ist die shadowMap.. :)

Und shadowTexMatrix ist diese Matrix:
Code:
  1.         static CIMatrix4x4f biasMatrix(0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f);
  2.         textureMatrix = biasMatrix * lightProjectionMatrix * lightViewMatrix;


Das merkwürdige ist, in meinem deferred renderer nutze ich die selbe funktion, dort habe ich diese probleme nicht...

Ich habe schon den toleranzwert:

Code:
  1.         shadowTexCoordDivW.z += 0.0005;


höher und niedriger gemacht, hat aber keine wirkliche auswirkung :(

Hat irgendwer eine Idee was das Problem sein könnte?

Aya~


Dateianhänge:
Dateikommentar: ShadowMapping Problem
Screen shot 2011-10-23 at 21.21.42.png
Screen shot 2011-10-23 at 21.21.42.png [ 145.74 KiB | 4609-mal betrachtet ]
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shadowmapping probleme
BeitragVerfasst: Mo Okt 24, 2011 18:21 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Wieso ist der Schatten eigentlich dunkler als die von Licht abgewandten Teile? Eigentlich sollten die beide gleich beleuchtet sein, da auf beide kein direktes Licht fällt. Außerdem nimmt man doch für die Shadowmap die am nächsten an der Lichtquelle liegenden Pixel, sodass der abgewandte Teil der Kugel eigentlich vollständig dunkel sein müsste.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shadowmapping probleme
BeitragVerfasst: Di Okt 25, 2011 21:57 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Mich würde die Lösung auch mal interessieren.
Bei mir sieht der Code ziemlich ähnlich aus und habe das selbe Problem - aber auch erst seitdem ich die Shadows mit dem FBO mache, vorher bei einer normalen Textur war das nicht der Fall.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shadowmapping probleme
BeitragVerfasst: Mi Okt 26, 2011 16:40 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
PushThread() :P

Ich wollte nochmal nachfragen ob irgendjemand die Lösung weiss? Würde mich schon sehr interessieren wie das entsteht!
Bei mir sieht es so ähnlich aus wie bei Aya:
Bild


Dateianhänge:
shadowbug.jpg [113.13 KiB]
Noch nie heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shadowmapping probleme
BeitragVerfasst: Mi Okt 26, 2011 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Was Schläfer sagt erscheint mir sinnig. Die Shadowmaps sehen aus, als ob die Auflösung zu gering wäre (stichwort: GL_DEPTH_COMPONENT24 (= gut) vs. GL_DEPTH_COMPONENT (= schlecht)) bzw. als ob mit einem GL_GEQUAL-Tiefentest gerendert würde

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shadowmapping probleme
BeitragVerfasst: Mi Okt 26, 2011 18:28 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Also:
- Meine Depth-Texture hat GL_DEPTH_COMPONENT24
- glDepthFunc(GL_LEQUAL); => Also kein GEQUAL

Wenn ich beim FBO die größe auf 4096x4096 stelle ist die Qualität zwar schon einigermaßen okay aber diese komischen stellen treten leider immer noch auf. Und das 4096x4096 etwas performance benötigt sollte ja klar sein :? Dass das normale Shadow Mapping nicht unbedingt optimal ist für größere Gebiete ist mir bewusst aber naja, denke mal Cascaded Shadow Mapping wäre dort optimal aber dafür habe ich ehrlich gesagt kein gutes Tutorial gefunden im Zusammenhang mit OpenGL - gibt zwar eins von nvidia aber dort sind meiner Meinung nach viel zu viele andere Dinge mit enthalten die den Code viel zu groß und unübersichtlich machen für sowas :?

Edit// Konnte mit folgendes BiasMatrix gefixxt werden:
Code:
  1. biasMatrix(0.5f, 0.0f, 0.0f, 0.0f,
  2.            0.0f, 0.5f, 0.0f, 0.0f,
  3.            0.0f, 0.0f, 0.5f, 0.0f,
  4.            0.5f, 0.501f, 0.5f, 1.0f);


Also in der letzten Zeile der 2. Wert.

Jetzt wäre nur noch ein Weg praktisch scharfe Shadow Maps zu haben aber das wird wohl beim normalen Shadow Mapping auf großen Flächen kompliziert.

Edit2// Nach längerem probieren ist mir aufgefallen, dass die Qualität zwar besser ist aber wenn die Textur kleiner wird (selbst 1024x1024 ist zu klein), dann tritt der Fehler wieder erneut auf! Also keine wirkliche Lösung... :?

Edit3// Okay das Problem liegt (bei mir) am Backface Culling.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.011s | 16 Queries | GZIP : On ]