Discussion:
Viewing Pipeline
(zu alt für eine Antwort)
Reinhard Paizoni
2003-11-09 20:33:46 UTC
Permalink
Hallo,

bin mir nicht ganz im klaren wie das funktionieren soll.

Zuerst benötige ich die Worldkoords, wie soll ich die bestimmen? Kann ich
die frei wählen?

Dannach brauch ich die ProjectionMatrix aus CG1Camera, oder?

Und zuletz berechne ich die DeviceKoords in CG1Cavas.

Das Ergebnis pack ich dann in die transVertices in CG1Object.

Ist das grundsätzlich richtig, oder hab ich da einen komplett falschen
ansatz?

Danke im Voraus.

Ciao
Reini
Chris Chiu
2003-11-10 05:56:04 UTC
Permalink
Post by Reinhard Paizoni
bin mir nicht ganz im klaren wie das funktionieren soll.
Zuerst benötige ich die Worldkoords, wie soll ich die bestimmen? Kann ich
die frei wählen?
Dannach brauch ich die ProjectionMatrix aus CG1Camera, oder?
Und zuletz berechne ich die DeviceKoords in CG1Cavas.
Das Ergebnis pack ich dann in die transVertices in CG1Object.
Ist das grundsätzlich richtig, oder hab ich da einen komplett falschen
ansatz?
Also, grundsätzlich funktioniert's so: die Modell-Vertizes sind im lokalen
Objekt-Koordinatensystem gespeichert. Mit der ModelMatrix (die es für Punkte
und Vektoren seperat gibt) transformiert man die Vertizes ins
Weltkoordinatensystem, die dann mittels ViewMatrix ins
Kamerakoordinatensystem, die wiederum mittels ProjectionMatrix auf eine
2d-Fläche, und die wiederum werden in getDeviceCoordinates() so gemappt,
dass die auf das Device (also den Bildschirmbereich) "passen". Prinzipiell
wirst du das im Framework wohl so machen, dass du die Matrizen
multiplizierst, und dann der Endmatrix die Vertizes überlieferst (da die
CG1Matrix4x4 schon eine Methode hat transformPoints bzw transformVectors
hat, die eine Serie von Vertizes/Vektoren transformiert).

Aber ich empfehle dir, das entsprechende Kapitel im Buch zu lesen.

Ciao,
Christoph
***@cg.tuwien.ac.at
Michael Wimmer
2003-11-10 16:18:58 UTC
Permalink
Post by Reinhard Paizoni
Hallo,
bin mir nicht ganz im klaren wie das funktionieren soll.
Zuerst benötige ich die Worldkoords, wie soll ich die bestimmen? Kann ich
die frei wählen?
Im Prinzip geht man davon aus, dass das lokale Objektkoordinatensystem, wenn
es gerade geladen wurde, mit dem Weltkoordinatenursprung uebereinstimmt. Das
heisst, man initialisiert die Model-Matrix mit der Einheitsmatrix. Erst durch
die Anwendung der Knoepfe aus dem Framework werden die 2 Koordinatensysteme
dann unterschiedlich (z.B. durch Rotation, Translation usw.)

Michael Wimmer

-- Dr. Michael Wimmer--------------------------------------------------------
Institut fuer Computergraphik und Algorithmen tel: +43 (1) 58801 18687
Technische Universitaet Wien fax: +43 (1) 58801 18698
Favoritenstr. 9-11/5/E186 http://www.cg.tuwien.ac.at
A-1040 Wien, Oesterreich mailto:***@cg.tuwien.ac.at
-----------------------------------------------------------------------------
Loading...