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

Aktuelle Zeit: Fr Jul 18, 2025 21:11

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Nov 26, 2006 00:53 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Ich habe beim Rendern von Schatten folgendes Problem: Wenn sich die Lichtquelle hinter dem Objekt befindet und zwischen Objekt und Betrachter eine Wand ist, dann durchdringt der Schatten die Wand. Ich habe schon probiert, face culling abzuschalten, aber das hat nicht geholfen. Wie verhindert man sowas?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 01:06 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Die Wand muß auch Schatten werfen. Dann kommt kein Licht hinter die Wand und man kann den Schatten der anderen Objekte nicht sehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 01:45 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Dann wirft mir aber doch einfach die Wand den falschen Schatten, oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 02:08 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Eigentlich ist es ja so, dass nicht der Schatten sondern das Licht geworfen wird. Ich vermute du färbst den Schatten nacher dunkel. Man kann aber auch den Schatten vor der Beleuchtung berechnen und dort wo Schatten ist einfach kein Licht zeichnen.
Ein falscher Schatten entsteht ja dadurch dass der Schatten von dem Objekt an einer falschen Stelle sichtbar ist. In dem Fall hinter, also selber im Schatten von der Wand. Wenn die Wand auch Schatten wirft, dann ist es hinter der Wand sowieso dunkel und man sieht keinen Unterschied zwischen dem Schatten der Wand und des Objektes.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 02:12 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Ich glaube ich muss das präzisieren. Ich habe mehrere Lichtquellen. Für den Schatten jedes Objekts wird nur die dem Objekt nächste Lichtquelle berücksichtigt. Die Aufstellung ist jetzt folgende:

Wand 1 -> Licht 1 -> Objekt -> Wand 1 <- Betrachter <- Licht 2 <- Wand 3

Der Schatten des Objekts erscheint nun sowohl auf der dem Betrachter zugewandten Seite von Wand 2 als auch auf Wand 3. Wand 1 kann aber wegen Licht 2 keinen Schatten Richtung Betrachter werfen. Ich muss den Schatten des Objekts also irgendwie anders wegkriegen. Aber wie?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 14:36 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Ja, der Schatten wird wahrscheinlich einfach auf die Bodenplatte gezeichnet, ohne dass die Wand berücksichtigt wird. Da müsste man mit raycasting / photonmapping arbeiten, damit so etwas von vornherein exakt berücksichtigt wird.

Du könntest z.B. den Umriss deines schattenwerfenden objekts berechnen und dann von jeder Lichtquelle aus Strahlen durch zu definierend eng beieinanderliegende punkte auf diesem umriss werfen. dort wo du triffst, ist schatten, der dann mehr oder weniger exakt projiziert wird. (das ist der raycasting-ansatz ;) )

Ansonsten musst du eben beim schattenzeichnen auf deiner bodenplatte überprüfen, ob der schatten nicht schon woanders hingeworfen wird.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 15:18 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ich nehme mal an dass ist so gemeint:
Der Schatten des Objektes soll hinter der Wand ausgeblendet werden, aber die Wand soll selber keinen Schatten werfen.
Es geht um Stencil Schattenvolumen.

Man kann trotzdem den Schatten der Wand berechnen, aber nicht zum abdunkeln benutzen sondern nur um damit den Stencil Buffer zu markieren und an diesen Stellen den Schatten des Objektes auszublenden.

Zitat:
Du könntest z.B. den Umriss deines schattenwerfenden objekts berechnen und dann von jeder Lichtquelle aus Strahlen durch zu definierend eng beieinanderliegende punkte auf diesem umriss werfen. dort wo du triffst, ist schatten, der dann mehr oder weniger exakt projiziert wird. (das ist der raycasting-ansatz )

Das soll vermutlich auch noch in hinreichend komplexer Umgebung in Echtzeit laufen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 27, 2006 01:08 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Danke mal soweit für alle Antworten. :)

Lars,

wie würde man das machen müssen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 05, 2006 12:15 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Hm. Kann mir jemand erklären, wie das von Lars angesprochene Verfahren zu implementieren ist?


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 » OpenGL


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.008s | 15 Queries | GZIP : On ]