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

Aktuelle Zeit: Fr Jul 18, 2025 12:34

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Cubemap koordinaten und depthbuffer
BeitragVerfasst: Mo Jun 09, 2008 17:43 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
Ich habe zwei fragen bezüglich Cubemaps, die dynamisch zur laufzeit erstellt werden:

1. Kann man auch Cubemaps erstellen, die nur aus der Depth-Component bestehen
2. wie kann ich errechnen, wo in der Cubemap ein Vektor hinzeigt?

letzteres ist wichtig für nen shader, bei dem ich Schadowmapping durch ne Cubemap realisieren will. Hab bisher
leider nur tutorials gefunden, wo das mit spotlighs gemacht wird. Deshalb wollte ich nebenher mal fragen, ob jemand
da einen nützlichen Link zu kennt, bzw. evtl. kurz erklären kann, wie er das bei sich umgesetzt hat.

Meine Idee sieht momentan so aus, dass ich die Entfernung des Fragments vom Licht im Eyespace und im Lightspace
berechne, abhängig von dem Depthbuffer der Cubemap um das Pointlight. Die Entfernung im Eyespace hab ich bereits,
und den Vektor kenn ich dadurch natürlich auch, aber wie rechne ich jetzt aus diesem Vektor die Textur koordinaten
in der Cubemap aus? Weil an der Stelle müsste ich dann ja den Depthwert auslesen und mit dem Entfernungswert
ausm Eyespace vergleichen. Und we spreche ich in glsl eine Cubemap an? Hat die dann drei Parameter?

im Cubemap tutorial steht, dass man nen Texgen normal modus nehmen kann... bekomm ich da dann die Koordinaten?

viele Grüße und Danke!

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 09, 2008 19:34 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Ich weiß zwar nicht wieso du berechnet willst wo vektor hinzeigt, da das der texturaufruf im shader von selbst macht, aber berechne den Betrag des Vektors in der Maximumsnorm und dividiere durch diese Länge. Dann hast du die 3D koordinate an denen der vektor den Würfel schneidet.

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 18:01 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

ich glaub du musst folgendermaßen vorgehen :

Wenn du im Light-Space bist, hast du ja für jede Seite des Würfels eine (MVP-)Matrix ( L_1 bis L_6 ), die dir jeden Vertex im Bereich von -1 bis 1 mappt ( falls dieser auf der entsprechenden Seite zu sehen ist ).

Um in den Light-Texture-Space zu kommen, multiplizierst du jeweils vorne noch eine Matrix T, die dir die Texturkoordinaten von 0 bis 1 liefert, mit
Code:
  1. T =
  2. 0.5    0    0  0.5
  3.   0  0.5    0  0.5
  4.   0    0  0.5  0.5
  5.   0    0    0    1


Du musst dann nur noch prüfen, bei welcher Multiplikation Koordinatenwerte zwischen 0 und 1 herauskommen, und dann in der entsprechenden Textur ein Lookup machen.

Die Matrizen T*L_1 bis T*L_6 berechnest du am besten schon im voraus.

Viele Grüße
dj3hut1


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


Wer ist online?

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