Loading in 2 Seconds...

ICS 415 Computer Graphics Rendering Geometric Primitives

Loading in 2 Seconds...

- 93 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'ICS 415 Computer Graphics Rendering Geometric Primitives' - isabelle-duncan

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

ICS 415Computer Graphics Rendering Geometric Primitives

Dr. Muhammed Al-Mulhem

March 1, 2009

Dr. Muhammed Al-Mulhem

Rendering geometric primitives

- Describe objects with points, lines, and surfaces
- Compact mathematical notation
- Operators to apply to those representations
- Render the objects
- The rendering pipeline
- Reading:
- Appendix A1-A5

Dr. Muhammed Al-Mulhem

Rendering

- Generate an image from geometric primitives

Rendering

Geometric

Primitives

Raster

Image

Dr. Muhammed Al-Mulhem

Overview

- 3D scene representation
- 3D viewer representation
- Visible surface determination
- Lighting simulation

Dr. Muhammed Al-Mulhem

Overview

- 3D scene representation
- 3D viewer representation
- Visible surface determination
- Lighting simulation

How is the 3D scene

described in a computer?

Dr. Muhammed Al-Mulhem

3D Scene Representation

- Scene is usually approximated by 3D primitives
- Point
- Line segment
- Polygon
- Polyhedron
- Curved surface
- Solid object
- etc.

Dr. Muhammed Al-Mulhem

3D Vector

- Specifies a direction and a magnitude
- Represented as the difference between two point positions by three coordinates (Vx, Vy, Vz).
- Magnitude |V| = sqrt( Vx2 + Vy2 + Vz2)
- Has no location

(Vx, Vy, Vz).

Dr. Muhammed Al-Mulhem

Vector Addition/Subtraction

- Operation u + v, with:
- Identity 0 : v + 0 = v
- Inverse - : v + (-v) = 0
- Addition uses the “parallelogram rule”:

v

u

-v

v

-v

u-v

u

Dr. Muhammed Al-Mulhem

Vector Space

- Vectors define a vector space
- They support vector addition
- Commutative and associative
- Possess identity and inverse
- They support scalar multiplication
- Associative, distributive
- Possess identity

Dr. Muhammed Al-Mulhem

Affine Spaces

- Vector spaces lack position and distance
- They have magnitude and direction but no location
- Combine the point and vector primitives
- Permits describing vectors relative to a common location
- A point and three vectors define a 3-D coordinate system
- Point-point subtraction yields a vector

Dr. Muhammed Al-Mulhem

Y

Z

X

Right-handed

coordinate

Left-handed

system

coordinate

system

Z

X

Coordinate SystemsGrasp z-axis with hand

Thumb points in direction of z-axis

Roll fingers from positive x-axis towards positive y-axis

Dr. Muhammed Al-Mulhem

v

P

Points + Vectors- Points support these operations
- Point-point subtraction: Q - P = v
- Result is a vector pointing fromPtoQ
- Vector-point addition: P + v = Q
- Result is a new point
- Note that the addition of two points is not defined

Dr. Muhammed Al-Mulhem

3D Line Segment

- Use a linear combination of two points
- Parametric representation:
- P = P1 + t (P2 - P1), (0 t 1)

P2

P1

Dr. Muhammed Al-Mulhem

3D Ray

- Line segment with one endpoint at infinity
- Parametric representation:
- P = P1 + t V, (0<= t < )

V

P1

Dr. Muhammed Al-Mulhem

3D Line

- Line segment with both endpoints at infinity
- Parametric representation:
- P = P1 + t V, (- < t < )

V

P1

Dr. Muhammed Al-Mulhem

y

P2 = (x2, y2)

P1 = (x1, y1)

x

3D Line – Slope Intercept- Slope =m
- = rise / run
- Slope = (y - y1) / (x - x1) = (y2 - y1) / (x2 - x1)
- Solve for y:
- y = [(y2 - y1)/(x2 - x1)]x + [-(y2-y1)/(x2 - x1)]x1 + y1
- or: y = mx + b

Dr. Muhammed Al-Mulhem

Euclidean Spaces

- Q: What is the distance function between points and vectors in affine space?
- A: Dot product
- Euclidean affine space = affine space plus dot product
- Permits the computation of distance and angles

Dr. Muhammed Al-Mulhem

θ

u

Dot Product- Thedot productor, more generally, inner productof two vectors is a scalar:

v1 • v2 = x1x2 + y1y2 + z1z2 (in 3D)

Dr. Muhammed Al-Mulhem

θ

u

Dot Product- Useful for many purposes
- Computing the length (Euclidean Norm) of a vector:
- length(v) = ||v|| = sqrt(v • v)
- Normalizing a vector, making it unit-length: v = v / ||v||
- Computing the angle between two vectors:
- u • v = |u| |v| cos(θ)
- Checking two vectors for orthogonality
- u • v = 0.0

Dr. Muhammed Al-Mulhem

v

u

Dot Product- Projecting one vector onto another
- If v is a unit vector and we have another vector, w
- We can project w perpendicularly onto v
- And the result, u, has length w • v

Dr. Muhammed Al-Mulhem

Dot Product

- Is commutative
- u • v = v • u
- Is distributive with respect to addition
- u • (v + w) = u • v + u • w

Dr. Muhammed Al-Mulhem

Cross Product

- The cross product or vector product of two vectors is a vector:
- The cross product of two vectors is orthogonal to both
- Right-hand rule dictates direction of cross product

Dr. Muhammed Al-Mulhem

Cross Product Right Hand Rule

- See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
- Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A
- Twist your hand about the A-axis such that B extends perpendicularly from your palm
- As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

Dr. Muhammed Al-Mulhem

Cross Product Right Hand Rule

- See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
- Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A
- Twist your hand about the A-axis such that B extends perpendicularly from your palm
- As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

Dr. Muhammed Al-Mulhem

- See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
- Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A
- Twist your hand about the A-axis such that B extends perpendicularly from your palm
- As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

Dr. Muhammed Al-Mulhem

- See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
- Twist your hand about the A-axis such that B extends perpendicularly from your palm
- As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

Dr. Muhammed Al-Mulhem

- See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
- Twist your hand about the A-axis such that B extends perpendicularly from your palm
- As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

Dr. Muhammed Al-Mulhem

Other helpful formulas

- Length = sqrt (x2 - x1)2 + (y2 - y1)2
- Midpoint, p2, between p1 and p3
- p2 = ((x1 + x3) / 2, (y1 + y3) / 2))
- Two lines are perpendicular if:
- M1 = -1/M2
- cosine of the angle between them is 0
- Dot product = 0

Dr. Muhammed Al-Mulhem

3D Geometric Primitives

- More detail on 3D modeling later in course
- Point
- Line segment
- Polygon
- Polyhedron
- Curved surface
- Solid object
- etc.

Dr. Muhammed Al-Mulhem

H&B Figure 10.46

Take a breath

- We’re done with the primitives
- Now we’re moving on to study how graphics uses these primitives to make pretty pictures

Dr. Muhammed Al-Mulhem

Illuminate

Transform

Clip

Project

Rasterize

Model & CameraParameters

Rendering Pipeline

Framebuffer

Display

Rendering 3D ScenesDr. Muhammed Al-Mulhem

Camera Models

- The most common model is pin-hole camera
- All captured light rays arrive along paths toward focal point without lens distortion (everything is in focus)
- Sensor response proportional to radiance
- Other models consider ...Depth of field, Motion blur, Lens distortion

View plane

Eye position

(focal point)

Dr. Muhammed Al-Mulhem

Camera Parameters

- Position
- Eye position (px, py, pz)
- Orientation
- View direction (dx, dy, dz)
- Up direction (ux, uy, uz)
- Aperture
- Field of view (xfov, yfov)
- Film plane
- “Look at” point
- View plane normal

View

Plane

Up direction

“Look at”

Point

back

Viewdirection

Eye

Position

right

Dr. Muhammed Al-Mulhem

Illuminate

Transform

Clip

Project

Rasterize

Model & CameraParameters

Rendering Pipeline

Framebuffer

Display

The Rendering PipelineDr. Muhammed Al-Mulhem

Rendering: Transformations

- We’ve learned about transformations
- But they are used in three ways:
- Modeling transforms
- Viewing transforms (Move the camera)
- Projection transforms (Change the type of camera)

Dr. Muhammed Al-Mulhem

The Rendering Pipeline: 3-D

Scene graphObject geometry

- Result:
- All vertices of scene in shared 3-D “world” coordinate system
- Vertices shaded according to lighting model
- Scene vertices in 3-D “view” or “camera” coordinate system
- Exactly those vertices & portions of polygons in view frustum
- 2-D screen coordinates of clipped vertices

ModelingTransforms

LightingCalculations

ViewingTransform

Clipping

ProjectionTransform

Dr. Muhammed Al-Mulhem

- Result:
- All vertices of scene in shared 3-D “world” coordinate system

ModelingTransforms

LightingCalculations

ViewingTransform

Clipping

ProjectionTransform

The Rendering Pipeline: 3-D

Dr. Muhammed Al-Mulhem

X

Z

Rendering: Transformations- Modeling transforms
- Size, place, scale, and rotate objects and parts of the model w.r.t. each other
- Object coordinates -> world coordinates

Y

Z

X

Dr. Muhammed Al-Mulhem

- Result:
- All geometric primitives are illuminated

ModelingTransforms

LightingCalculations

ViewingTransform

Clipping

ProjectionTransform

The Rendering Pipeline: 3-D

Dr. Muhammed Al-Mulhem

N

Lighting SimulationLight

Source

- Lighting parameters
- Light source emission
- Surface reflectance
- Atmospheric attenuation
- Camera response

Surface

Camera

Dr. Muhammed Al-Mulhem

N

Lighting SimulationLight

Source

- Direct illumination
- Ray casting
- Polygon shading
- Global illumination
- Ray tracing
- Monte Carlo methods
- Radiosity methods

Surface

N

Camera

Dr. Muhammed Al-Mulhem

Scene graphObject geometry

- Result:
- Scene vertices in 3-D “view” or “camera” coordinate system

ModelingTransforms

LightingCalculations

ViewingTransform

Clipping

ProjectionTransform

Dr. Muhammed Al-Mulhem

X

Right-handed

coordinate

system

Z

Rendering: Transformations- Viewing transform
- Rotate & translate the world to lie directly in front of the camera
- Typically place camera at origin
- Typically looking down -Z axis
- World coordinatesaView coordinates

Dr. Muhammed Al-Mulhem

Scene graphObject geometry

- Result:
- Remove geometry that is out of view

ModelingTransforms

LightingCalculations

ViewingTransform

Clipping

ProjectionTransform

Dr. Muhammed Al-Mulhem

Scene graphObject geometry

- Result:
- 2-D screen coordinates of clipped vertices

ModelingTransforms

LightingCalculations

ViewingTransform

Clipping

ProjectionTransform

Dr. Muhammed Al-Mulhem

Rendering: Transformations

- Projection transform
- Apply perspective foreshortening
- Distant = small: the pinhole camera model
- View coordinates a Screen coordinates

Dr. Muhammed Al-Mulhem

Illuminate

Transform

Clip

Project

Rasterize

Model & CameraParameters

Rendering Pipeline

Framebuffer

Display

Rendering 3D ScenesDr. Muhammed Al-Mulhem

Summary

- Geometric primitives
- Points, vectors
- Operators on these primitives
- Dot product, cross product, norm
- The rendering pipeline
- Move models, illuminate, move camera, clip, project to display, rasterize

Dr. Muhammed Al-Mulhem

Download Presentation

Connecting to Server..