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

Aktuelle Zeit: Fr Jul 18, 2025 07:58

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



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
BeitragVerfasst: Mi Aug 10, 2005 19:55 
Offline
DGL Member

Registriert: Mi Aug 28, 2002 17:03
Beiträge: 37
Wohnort: ABG
Ich habe mir schon ein haufen Codes, und "Tutorials" angeschaut, komme aber irgendwie nicht weiter.

Standard:
Code:
  1. glEnable(GL_TEXTURE_2D)
  2. glDisable(GL_TEXTURE_CUBE_MAP)
  3. glEnable(GL_TEXTURE_GEN_S)
  4. glEnable(GL_TEXTURE_GEN_T)
  5. glEnable(GL_TEXTURE_GEN_R)
  6. glEnable(GL_TEXTURE_GEN_Q)


Projective Texturing über GL_OBJECT_LINEAR
Code:
  1. glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR)
  2. glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR)
  3. glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR)
  4. glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR)


Anscheinend zum Filtern der jeweiligen Texturkoordinaten:
Code:
  1. glTexGenfv(GL_S, GL_OBJECT_PLANE, [1.0, 0.0, 0.0, 0.0])
  2. glTexGenfv(GL_T, GL_OBJECT_PLANE, [0.0, 1.0, 0.0, 0.0])
  3. glTexGenfv(GL_R, GL_OBJECT_PLANE, [0.0, 0.0, 1.0, 0.0])
  4. glTexGenfv(GL_Q, GL_OBJECT_PLANE, [0.0, 0.0, 0.0, 1.0])


Tetxurematrix erzeugen:
Code:
  1. glMatrixMode(GL_TEXTURE)
  2. glLoadIdentity()


Biasmatrix:
Code:
  1. glTranslatef(0.5, 0.5, 0.5)
  2. glScalef(0.5, 0.5, 0.5)
  3.  


So und jetzt kommt der Teil, wo ich nicht so richtig weiß, was schief läuft.

Projektor View Matrix:
Code:
  1. glTranslatef(Projector.Position[0], ..
  2.              Projector.Position[1], ..
  3.              Projector.Position[2])
  4. glRotatef(Projector.Rotation[0], 1.0, 0.0, 0.0)
  5. glRotatef(Projector.Rotation[1], 0.0, 1.0, 0.0)
  6. glRotatef(Projector.Rotation[2], 0.0, 0.0, 1.0)


Model View Matrix:
Code:
  1. glTranslatef(Objekt.Position[0], ..
  2.              Objekt.Position[1], ..
  3.              Objekt.Position[2])
  4. glRotatef(Objekt.Rotation[0], 1.0, 0.0, 0.0)
  5. glRotatef(Objekt.Rotation[1], 0.0, 1.0, 0.0)
  6. glRotatef(Objekt.Rotation[2], 0.0, 0.0, 1.0)


Projektor Projection Matrix:
Code:
  1. gluPerspective(45.0, 1.0, 0.1, 1.0)


Im Object Linear Modus werden die Koordinaten so berechnet:
g = P1*Xo + P2*Yo + P3*Zo + P4*Wo
g ist die Texturkoordinate
P1 bis P4 der jeweilige Object Plane Vektor
Xo .. Wo die Objektkoordinaten (also die noch nicht Transformiert wurden)

Die Texturkoordinaten werden dann so berechnet:
S = Xo
T = Yo
R = Zo
Q = Wo

Die Texturkoordinaten S, T, R und Q sind immer noch die Objektkoordinaten der Vertices.
Jetzt werden sie mit der Viewmatrix des Projektors multipliziert:

(S' T' R' Q') = (S T R Q) x Vp

dann mit der Viewmatrix des Objekts selber:

(S'' T'' R'' Q'') = (S' T' R' Q') x Vo

und dann mit der Projektionsmatrix des Projektors:

(S''' T''' R''' Q''') = (S'' T'' R'' Q'') x Pp

Das ist der gleiche Prozess, der auch beim normalen Rendern durchgelaufen wird mit einer Kamera statts einem Projektor.

Anscheinend sind die Komponenten des Vektors (S''' T''' R''' Q''') im Bereich -1.0 und 1.0. Deswegen die BiasMatrix, die 1. auf -0.5 bis 0.5 skaliert, und dann 2. mit 0.5 addiert das ein Bereich von 0.0 bis 1.0 entsteht.

Ich frage mich nur, warum das nicht geht :)

Das ist ja nur Vorarbeit für Shadow Texturen über Depth Tetxuring.

mfg olli

_________________
Programmieren beginnt im Kopf und endet im Compiler


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.006s | 14 Queries | GZIP : On ]