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

Aktuelle Zeit: Fr Jul 18, 2025 05:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Nochmal Bumpmapping
BeitragVerfasst: Do Sep 25, 2003 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Okt 26, 2002 17:14
Beiträge: 188
Wohnort: Hannover/Lüneburg
Ich habe noch 3 kleine Fragen zum Thema Bumpmapping, eher zur Kontrolle.
1.) Wenn ich mein Objekt mit glRotate oder einer Matrix rotiere, dann muss ich im Vertexprogramm auch die Normale und Tangente rotieren und anschließend normalisieren, oder?
2.) Dazu noch: ich bewege meine Kamera, in dem ich deren Bewegungen in der Projektionsmatrix setze. Dies Bewegungen müssen sich ja aber nicht auf die Lichtberechnung auswirken, da sich ja dadurch eh alles gleich bewegt, relativ zueinander also gar nicht. Dann wäre es doch sinnvoll im Vertexprogramm das ganze so zu lösen:
-Vertex, Normale und Tangente mit Projektionsmatrix multiplizieren
-Vertex noch anschließend mit Modelviewmatrix multipliezieren
-Tangente und Normale normalisieren
-weitere Berechnungen ausführen
Oder kann man irgendetwas schneller, effektiver oder eleganter lösen?

[EDIT 26.09.]Der folgende Punkt hat sich erledigt. (VertexPos + (LightPos - [0.5/0.5/0.5])) * (0.5 / LightRange) ist meine Formel für die Umwandlung der Koordinaten[/EDIT]

3.) Lichtintensität: Diese realisiert man am besten mit einer 3 D-Texture, wie ich das gesehen habe. Dazu muss ich ja dann die Vertexkoordinaten als Texturkoordinaten übergeben. Nur wie muss ich diese verändern, dass sie im Lightmapspace sind? Also meine Lichtquelle hat einen Radius, den ich kenne und die 3D-Texture hat eben auch diesen Radius. Lichtposition ist natürlich auch bekannt. Aber so ganz klappte bisher keiner meiner Versuche... :(

Wäre nett, wenn mir hier nochmal jemand helfen könnte. :)

_________________
Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 26, 2003 22:47 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
1) Die Normalen und Tangenten müssen mitrotiert werden. Das Normalisieren kann entfallen, weil die Vektoren ja vorher schon normalisiert waren. Alternativ kann man auch die Lichtposition mit der inverseren Matrix transformieren.

2) Die Vertex Position wird mit dem Produkt aus Modelview und Projetionsmatrix multipliziert, aber für die Lichtberechnung wird die original Vertex Position verwendent. Die Normalen und Tangenten brauchen weder transformiert noch normalisiert werden. Im Gegensatz zum OpenGL Licht, daß auf das Sichtfeld bezogen ist, ist beim Tangent Space Bumpmapping die Lichtposition im Koordinatensystem der Welt. Die Normalen und Tangenten dienen nur als Matrix um die Lichtposition zu transformieren. Am Ende vom meinem PDF zum Thema fxPascal ist ein solchen Vertex Programm auch in ARB Form angegeben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 27, 2003 11:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Okt 26, 2002 17:14
Beiträge: 188
Wohnort: Hannover/Lüneburg
Ähm, bei 2. stimme ich dir zu, sofern der Mesh nicht bewegt wird. Dann sind transformierte und untransformierte Vertexposition ja nicht mehr identisch. Das hast Du aber ja in Fall 1 schon erläutert, dass es dann reicht den Lichtvektor mit der Inversen Matrix zu transformieren.
Danke.

_________________
Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 29, 2003 14:12 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ja, das stimmt. Dadurch das man die Lichtposition mit der inversen Matrix multipliziert wird das wieder ausgeglichen.


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 4 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.013s | 14 Queries | GZIP : On ]