So und jetzt kommt der Teil, wo ich nicht so richtig weiß, was schief läuft.
Projektor View Matrix:
Code:
glTranslatef(Projector.Position[0], ..
Projector.Position[1], ..
Projector.Position[2])
glRotatef(Projector.Rotation[0], 1.0, 0.0, 0.0)
glRotatef(Projector.Rotation[1], 0.0, 1.0, 0.0)
glRotatef(Projector.Rotation[2], 0.0, 0.0, 1.0)
Model View Matrix:
Code:
glTranslatef(Objekt.Position[0], ..
Objekt.Position[1], ..
Objekt.Position[2])
glRotatef(Objekt.Rotation[0], 1.0, 0.0, 0.0)
glRotatef(Objekt.Rotation[1], 0.0, 1.0, 0.0)
glRotatef(Objekt.Rotation[2], 0.0, 0.0, 1.0)
Projektor Projection Matrix:
Code:
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
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.