PDA

View Full Version : [Frage] setupProjection


Tiniiiii
29-10-2004, 14:47
Ich steh grad bissl an beim Erstellen der Projection Matrix.

Hab im Buch S.379 (7-33) eine Matrix gefunden, die mir gut "gefallen" würde bzw. die meiner Meinung nach eigentlich stimmen sollte.

-znear 0 0 0
0 -znear 0 0
0 0 sz tz
0 0 -1 0
Sorry für das grausliche Aussehen. tz und sz sind unter S. 381 (7-39) aufgeschlüsselt.

Dann hab ich aber im Forum das hier gefunden und bin jetzt bissl verwirrt. Wo haben die Leute vom vorigen Jahr das her und was stimmt jetzt?

public voooooid setupProjection (double zvp)
{
CG1Matrix4x4 projectionMatrix = new CG1Matrix4x4();
projectionMatrix.setIdentity() ---
projectionMatrix.m[2][2] *= -zvp/zvp ---
projectionMatrix.m[2][3] *= 0 ---
projectionMatrix.m[3][2] *= -1/-zvp ---
projectionMatrix.m[3][3] *= 0 ---
}

und nein, ich habe nicht java code gepostet, weil in java gibts kein voooooid und ausserdem werden statements nicht mit --- abgeschlossen Dieses Postig hab ich hier gefunden: http://www.informatik-forum.at/showthread.php?t=12189&highlight=setupProjection - wollt nicht mehr dazuposten weils dort ohnehin schon mega unübersichtlich ist ...)

Thanx & lg :ausheck:

Flowyes
29-10-2004, 14:58
Diesbezüglich steht unter den Tips für das dritte Beispiel (http://www.cg.tuwien.ac.at/courses/CG/LU/Beispiel3_tipps.html) schon einiges (unter Projektion). Eigentlich steht da ziemlich genau, was man machen soll.

Tiniiiii
29-10-2004, 15:39
Danke. Das fällt ja eigentlich unter dumm dort nicht nachzuschauen. Trotzdem:

projectionMatrix.m[2][2] *= -zvp/zvp Das kann ja nicht passen. Denn in der Info steht:
"Für die 3. Ausgabe kann man denselben Effekt erreichen, indem man s_z auf 1 und t_z auf 0 setzt (in Matrix (7-26)), und ebenso bei der Homogenisierung den z-Wert nicht durch w dividiert."

w ist anscheinend -zvp ...

Müsste dann eigentlich projectionMatrix.m[2][2] = 1 sein ..., oder???
[2][2] ist doch der z-Wert???

Wie kommt Lacrima auf -zvp/zvp? Hab ich da einen argen Denkfehler???

Thanx & lg :ausheck:

Matthias
29-10-2004, 16:55
Danke. Das fällt ja eigentlich unter dumm dort nicht nachzuschauen. Trotzdem:

Das kann ja nicht passen. Denn in der Info steht:
"Für die 3. Ausgabe kann man denselben Effekt erreichen, indem man s_z auf 1 und t_z auf 0 setzt (in Matrix (7-26)), und ebenso bei der Homogenisierung den z-Wert nicht durch w dividiert."

w ist anscheinend -zvp ...

Müsste dann eigentlich projectionMatrix.m[2][2] = 1 sein ..., oder???
[2][2] ist doch der z-Wert???

Wie kommt Lacrima auf -zvp/zvp? Hab ich da einen argen Denkfehler???

Thanx & lg :ausheck:

diese matrix ist einfach falsch, also ich sehe zumindest keinen denkfehler von dir. verwende einfach die allgemeine matrix auf seite 374 (7-26) im buch (3. ausgabe). für xprp, yprp, zprp verwendest du 0, sz und tz setzt du auf 1 und 0 (siehe tipps zur 3. abgabe).

Tiniiiii
29-10-2004, 17:15
Danke! Verwirrend. Vorallem nachdem einige gemeint hatten es stimmt ...
Auf den Folien ist's übrigens auch richtig drauf! (Kap 12, Folie 4)

lg :ausheck: