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

Aktuelle Zeit: Fr Jul 18, 2025 20:20

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Nov 25, 2006 10:37 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Hallo,

ich habe bei der Berechnung von volumetrischen Schatten (z-fail) ein seltsames Problem beim Test, ob ein Polygon von der Lichtquelle aus sichtbar ist oder nicht (Dot zwischen Polygon-Normale und Vektor Polygon-Mitte - Lichtquelle): Das Ergebnis ändert sich abhängig von Position und Blickrichtung des Betrachters. Zum Test habe ich mal ein einzelnes Rechteck isoliert und dessen Normale und Linie zur Lichtquelle eingezeichnet. Polygon blau, Linien rot und gelb -> sichtbar, Polygon grün, Linien hell- und dunkelblau -> unsichtbar. Befinde ich mich vor dem Polygon und blicke leicht nach unten, wird das Rechteck unsichtbar. Hinter dem Polygon ist es umgekehrt. Die gesamte Schattenberechnung findet nach Projektion von Lichtquelle und Modell in die Welt statt (also nach transform und rotate). Gerendert wird alles korrekt, auch die Linien Poly-Licht und die Normale verändern sich nicht. Ich habe nicht den geringsten Plan, was ich falsch mache. Kann mir jemand weiterhelfen?

Hier noch drei Bilder:

Übersicht:
Bild

Rechteck von Lichtquelle aus sichtbar:
Bild

Rechteck von Lichtquelle aus unsichtbar:
Bild

Wie man sieht, verändert sich der Winkel zwischen Normale und Vektor zum Licht nicht. Trotzdem stimmt die Berechnung nicht. Wenn ich den Blickpunkt drehe, rückt allerdings der Rechteck-Mittelpunkt mal näher zum Betrachter, mal weiter weg. Die Projektion skaliert in X,Y und Z-Richtung unterschiedlich (X = 3:4, Y = 1:1, Z = 9/16:1).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 25, 2006 23:11 
Offline
DGL Member

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Problem gelöst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 26, 2006 01:31 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Ursache für die Leute die ähnliche Probleme haben?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


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

Registriert: Sa Nov 25, 2006 10:27
Beiträge: 10
Die Ursache war folgende: Ich mache die Koordinatenstransformation (rotate, translate) per Software, und da war eine Skalierung für x,y (Bildschirm-Seitenverhältnis) und z (Distanz drin). Da ich die Schatten nach erfolgter Transformation berechne, und die Skalierung die Koordinatenpositionen zueinander verfälscht hat, habe ich abhängig vom Betrachter falsche Ergebnisse rausgekriegt. Ich mache die Skalierung jetzt per OpenGL, seitdem geht's.

(Inzwischen ist der Wurm wo anders drin :evil: ...)


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


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]