Zu dieser Karteikarte gibt es einen kompletten Satz an Karteikarten. Kostenlos!
100
Explain how to transform geometry according to camera position and projection to the screen!
Concatenation of three matrices:
![](/pool/data/tex/302a8895b7d704862a861cd257149a58.gif)
Look-at transform![](/pool/data/tex/33a5343f37a5d3eb7903ac070343515f.gif)
Given a camera position
, a desired viewing direction
and an up vector
, we compute a orthogonal coordinate system as follows:
![](/pool/data/tex/d05dd0e7bcbee8282def7405d251c456.gif)
![](/pool/data/tex/84b57e35a4b8e650babf6983c9b005c7.gif)
Now, the matrix transforming points from camera space to world space is given by
![](/pool/data/tex/2ac4f57ad363f9f9d35dfd882f5533ee.gif)
The look-at transform is the inverse of this, transforming points from world space to local camera space:
![](/pool/data/tex/37f19bee3b2bbf757d8a79eb48155eec.gif)
Frustum transform![](/pool/data/tex/532b6ffb98ce4da7c1dc50acc1d84183.gif)
Transforms points from a frustum defined by the near / far plane distance of the camera
and the extents of the near plane rectangle
into the unit cube
.
maps points on the near plane to
and points on the far plane to
.
Viewport transform![](/pool/data/tex/bbcdb41a107982c0eef830dc3528ca4b.gif)
Transforms from the unit cube to pixel coordinates on a
screen:
![](/pool/data/tex/9885042c63dc15d6e7e6cdebc742d848.gif)
![](/pool/data/tex/302a8895b7d704862a861cd257149a58.gif)
Look-at transform
![](/pool/data/tex/33a5343f37a5d3eb7903ac070343515f.gif)
Given a camera position
![](/pool/data/tex/83878c91171338902e0fe0fb97a8c47a.gif)
![](/pool/data/tex/8277e0910d750195b448797616e091ad.gif)
![](/pool/data/tex/7b774effe4a349c6dd82ad4f4f21d34c.gif)
![](/pool/data/tex/d05dd0e7bcbee8282def7405d251c456.gif)
![](/pool/data/tex/84b57e35a4b8e650babf6983c9b005c7.gif)
Now, the matrix transforming points from camera space to world space is given by
![](/pool/data/tex/2ac4f57ad363f9f9d35dfd882f5533ee.gif)
The look-at transform is the inverse of this, transforming points from world space to local camera space:
![](/pool/data/tex/37f19bee3b2bbf757d8a79eb48155eec.gif)
Frustum transform
![](/pool/data/tex/532b6ffb98ce4da7c1dc50acc1d84183.gif)
Transforms points from a frustum defined by the near / far plane distance of the camera
![](/pool/data/tex/25fb9d535a17f441389b1280f49e15a4.gif)
![](/pool/data/tex/8f5cb492b68b5232c4696b203e801634.gif)
![](/pool/data/tex/8066e5c851f15af196d9b048f14cc4d0.gif)
![](/pool/data/tex/800618943025315f869e4e1f09471012.gif)
![](/pool/data/tex/104b150315cb3f0186f5f7a7890278af.gif)
![](/pool/data/tex/9360d2c79de73e141e391d96ae0770ba.gif)
Viewport transform
![](/pool/data/tex/bbcdb41a107982c0eef830dc3528ca4b.gif)
Transforms from the unit cube to pixel coordinates on a
![](/pool/data/tex/98104d9230043b0e26b0d573a0ba2cbe.gif)
![](/pool/data/tex/9885042c63dc15d6e7e6cdebc742d848.gif)
![](/pool/img/avatar_40_40.gif)
Karteninfo:
Autor: janisborn
Oberthema: Informatik
Thema: Computergrafik
Schule / Uni: RWTH Aachen
Ort: Aachen
Veröffentlicht: 18.05.2022