0% found this document useful (0 votes)
12 views35 pages

Projection and Camera Models: CS 4388/CS 5388: Computer Graphics

The document discusses projection and camera models in computer graphics, detailing the historical evolution of drawing and perspective techniques from ancient times to the Renaissance. It explains different types of projections, including perspective and parallel projections, and introduces the synthetic camera model used for 3D view projection parameters. Additionally, it covers the view matrix, which transforms world points into camera coordinates, and the steps to create it based on camera position and orientation.

Uploaded by

raskolnikov98
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views35 pages

Projection and Camera Models: CS 4388/CS 5388: Computer Graphics

The document discusses projection and camera models in computer graphics, detailing the historical evolution of drawing and perspective techniques from ancient times to the Renaissance. It explains different types of projections, including perspective and parallel projections, and introduces the synthetic camera model used for 3D view projection parameters. Additionally, it covers the view matrix, which transforms world points into camera coordinates, and the steps to create it based on camera position and orientation.

Uploaded by

raskolnikov98
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Projection and Camera Models

CS 4388/CS 5388: Computer Graphics

Isayas Berhe Adhanom | CS 4388/CS 5388 | Fall 2025

This course content is offered under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.
Drawing as Projection

The Invention of Drawing


Karl Friedrich Schinkle, 1830

Painting based on mythical tale told by


Pliny the Elder about a Corinthian man
tracing the shadow of departing lover.
Early Examples of Projection

Plan view (orthographic projection) from Mesopotamia, 2150 BC,


earliest known technical drawing in existence.

Greek vases from late 6th century BC show perspective(!)

Roman architect Vitruvius wrote specifications of a plan with


architectural illustrations, De Architectura (rediscovered in 1414).
The original illustrations for these writings have been lost.

Theseus Killing the Minotaur by the Kleophrades Painter


Most Striking Features of Linear Perspective

Parallel lines converge (in 1, 2, or 3 axes) to


vanishing point(s)

Objects farther away are more foreshortened


(i.e., smaller) than closer ones

Example: perspective cube


Early Perspective

Methods of invoking three dimensional space:


shading suggests rounded, volumetric forms
converging lines suggest spatial depth of room

Not systematic. Lines do not converge to single


vanishing point.

Giotto, Franciscan Rule Approved


Assisi, Upper Basilica, c.1295-1300
Setting for “Invention” of Perspective Projection
The Renaissance ushered in a new emphasis on the importance of
individual viewpoint, world interpretation, and power of observation.

Albrecht Dürer, Artist Drawing a Lute


Ender, Tycho Brahe and Rudolph II in Prague (detail of clockwork), c. 1855
Woodcut from Dürer’s work about the Art of Measurement.
Underweysung der messung, Nurenberg, 1525
Leono Battista Alberti (1404-1472)

Published first treatise on perspective,


Della Pittura, in 1435.

"A painting [the projection plane] is the intersection


of a visual pyramid [view volume] at a given distance,
with a fixed center [center of projection] and a
defined position of light, represented by art with lines
and colors on a given surface [the rendering]."
Leonardo da Vinci, The Last Supper (1495)
Types of Projections

Perspective projections imitate eyes or cameras and


looks more natural. This is what we have seen so far.

Parallel projections are also possible. They are useful


in engineering and architecture because they can be
used for measurements.
Main Classes of Planar Geometrical Projections

Perspective Projection: determined by Center of Projection (COP).

Parallel Projection: determined by Direction of Projection (DOP)


The projectors are parallel—they do not converge. Alternatively, the COP is at infinity.
Multiview Orthographic Projection

Used for:
engineering drawings of machines, machine parts
working architectural drawings

Pros:
accurate measurement possible
all views are at same scale

Cons:
does not provide “realistic” view or sense of 3D form
Isometric Projection
Used for:
catalogue illustrations
patent office records
furniture design
structural design
3d Modeling in real time (Maya, AutoCad, etc.)

Pros:
don't need multiple views
illustrates 3D nature of object
measurements can be made to scale along principal axes

Cons:
lack of foreshortening creates distorted appearance
more useful for rectangular than curved shapes
Isometric Projection

Games have been using isometric projection for ages. It all


started in 1982 with Q*Bert and Zaxxon, which were made
possible by advances in raster graphics hardware.

Still in use today when you want to see things in distance as


well as things close up (e.g. strategy, simulation games).

Technically some games today aren't isometric but instead


are a general axonometric (trimetric) with arbitrary angles,
but people still call them isometric to avoid learning a new
word. Other inappropriate terms used for axonometric
views are "2.5D" and "three-quarter."
The Synthetic Camera Model
The Synthetic Camera

The synthetic camera is the programmer's model to specify 3D view projection parameters.

Each graphics package has its own but they are all (nearly) equivalent.

General synthetic camera:


position of camera
orientation
field of view (wide angle, normal…)
depth of field (near distance, far distance)
perspective or parallel projection
Position

Determining the position is analogous to a photographer


deciding the vantage point from which to shoot a photo.

Three degrees of freedom: x, y, and z coordinates in 3-space

This x, y, z coordinate system is right-handed:


If you open your right hand, align your palm and fingers with
the +x axis, and curl your middle finger towards the +y axis,
your thumb will point along the +z axis.
Orientation

Orientation is specified by a point in 3D space to look at (or a direction to look in) and an angle of rotation about this direction.

Default (canonical) orientation is looking down the negative z-axis and up direction pointing straight up the y-axis.

In general, the camera is located at the origin and is looking at an arbitrary point with an arbitrary up direction.
Look and Up Vectors

Look Vector
The direction the camera is pointing
Three degrees of freedom; can be any vector in 3-space

Up Vector
Determines how the camera is rotated around the Look vector
For example, whether you are holding the camera horizontally
or vertically (or in between)
Projection of Up vector must be in the plane perpendicular to
the Look vector (this allows Up vector to be specified at an
arbitrary angle to its Look vector)
Aspect Ratio

Analogous to the size of film used in a camera

Determines proportion of width to height of image


displayed on screen

Square viewing window has aspect ratio of 1:1

Movie theater "letterbox" format has aspect ratio of 2:1

NTSC television has an aspect ratio of 4:3, and HDTV is


16:9
View Angle

Determines amount of perspective distortion in picture,


from none (parallel projection) to a lot (wide-angle
lens).

In a frustum, two viewing angles for width and height.

Choosing a View angle is analogous to a photographer


choosing a specific type of lens (e.g., a wide-angle or
telephoto lens).
View Angle

Lenses made for distance shots often have a nearly parallel viewing angle and cause little perspective
distortion, though they foreshorten depth.

Wide-angle lenses cause a lot of perspective distortion.


Clipping Planes

Don't want to draw things behind


the camera.

Drawing lots of faraway things


makes rendering slow.

There are a finite number of bits in


the depth buffer!
Focal Length

Some camera models take a focal length.

Focal length is a measure of ideal focusing range; approximates


behavior of a real camera lens.

Objects at distance equal to focal length from camera are rendered in focus.

Objects closer or farther away than focal length get blurred.

Focal length used in conjunction with clipping planes. Only objects within view
volume are rendered, whether blurred or not. Objects outside of view volume still
get discarded.
View Volume Specification

Position, Look vector, Up vector, Aspect ratio, Height angle, and Clipping planes, together specify a truncated
view volume.
Truncated view volume is a specification of bounded space that camera can "see."
A 2D view of the 3D scene can be computed from truncated view volume and projected onto the film plane.
The View Matrix
Official Definition of the View Matrix

The view matrix transforms world points into camera


coordinates, a.k.a. the world-to-eye transform.

We can think of it as the matrix that:


moves the camera position (eye) to the origin
rotates to align u,v,n with x,y,z
Step 1: Find u,v,n from Position, Look, and Up

We know that we want the (u, v, n) axes to have the following properties:

our arbitrary Look Vector will lie along the negative n-axis

a projection of the Up Vector into the plane defined by the n-axis as its normal will lie along the v-
axis

the u-axis will be mutually perpendicular to the v and n-axes, and will form a right-handed
coordinate system

Plan of attack: first find n from Look, then find u as a normal for the plane defined by Up and n, then find
v as a normal to the plane defined by n and u
Step 2: Create the View Matrix

The translation (move eye to origin) part is pretty easy.

We want to transform (ex, ey, ez) to (0,0,0).

Solution: translate by <-ex, -ey, -ez>.


Step 3: Rotate to align u,v,n with x,y,z

We also need to rotate so the camera ends up aligned properly with the x,y,z axes.

How do we construct a rotation matrix that takes one set of axes and aligns it to another?
Thus, the following will rotate x,y,z into u,v,n:
Thus, the following will rotate x,y,z into u,v,n:

Now, this isn't exactly right. We want to go the other way, from uvn to xyz.
The following will rotate x,y,z into u,v,n:

Now, this isn't exactly right. We want to go the other way, from uvn to xyz.

Recall, the inverse of a pure rotation matrix is its transpose:


Final View Matrix
Transforms points in world coordinates to eye coordinates.

You can also think of this as going from the situation where the camera is at some arbitrary location and orientation
in the scene to a situation where it is positioned and oriented in the standard arrangement as shown below.
Final View Matrix
Transforms points in world coordinates to eye coordinates.

You can also think of this as going from the situation where the camera is at some arbitrary location and orientation
in the scene to a situation where it is positioned and oriented in the standard arrangement as shown below.

You can apply this exact matrix manually onto a Camera in a graphics API, and it will work. BUT… we usually use a
utility function such as LookAt().

You might also like