computer graphics viewing - mycsvtu notes -...

Post on 11-May-2018

249 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Computer Graphics

Viewing

What Are Projections?

Our 3-D scenes are all specified in 3-D world

coordinates

To display these we need to generate a 2-D

image - project objects onto a picture plane

So how do we figure out these projections?

Picture Plane

Objects in

World Space

Converting From 3-D To 2-D

Projection is just one part of the process of

converting from 3-D world coordinates to a 2-

D image

Clip against

view volume

Project onto

projection

plane

Transform to

2-D device

coordinates

3-D world

coordinate

output

primitives

2-D device

coordinates

Types Of Projections

There are two broad classes of projection:

Parallel: Typically used for architectural and

engineering drawings

Perspective: Realistic looking and used in

computer graphics

Perspective Projection Parallel Projection

Types Of Projections (cont…)

For anyone who did engineering or technical

drawing

Parallel Projections

Some examples of parallel projections

Orthographic Projection

Isometric Projection

Isometric Projections

Isometric projections have been used in

computer games from the very early days of

the industry up to today

Q*Bert Sim City Virtual Magic Kingdom

Perspective Projections

Perspective projections are much more

realistic than parallel projections

Perspective Projections

There are a number of different kinds of

perspective views

The most common are one-point and two

point perspectives

One Point Perspective

Projection

Two-Point

Perspective

Projection

Elements Of A Perspective Projection

Virtual

Camera

The Up And Look Vectors

The look vector indicates the direction in which the

camera is pointing

The up vector determines how the camera is rotated

For example, is the camera held vertically or

horizontally

Up vector Look vector

Position

Projection of

up vector

Contents

In today’s lecture we are going to have a look

at:

Transformations in 3-D

How do transformations in 3-D work?

3-D homogeneous coordinates and matrix based

transformations

Projections

History

Geometrical Constructions

Types of Projection

Projection in Computer Graphics

3-D Coordinate Spaces

Remember what we mean by a 3-D

coordinate space

x axis

y axis

z axis

P

y

z

x

Right-Hand

Reference System

Translations In 3-D

To translate a point in three dimensions by

dx, dy and dz simply calculate the new points

as follows:

x’ = x + dx y’ = y + dy z’ = z + dz

(x’, y’, z’)

(x, y, z)

Translated Position

Scaling In 3-D

To sale a point in three dimensions by sx, sy

and sz simply calculate the new points as

follows:

x’ = sx*x y’ = sy*y z’ = sz*z

(x, y, z)

Scaled Position

(x’, y’, z’)

Rotations In 3-D

When we performed rotations in two

dimensions we only had the choice of rotating

about the z axis

In the case of three dimensions we have more

options

Rotate about x – pitch

Rotate about y – yaw

Rotate about z - roll

Rotations In 3-D (cont…)

x’ = x·cosθ - y·sinθ

y’ = x·sinθ + y·cosθ

z’ = z

x’ = x

y’ = y·cosθ - z·sinθ

z’ = y·sinθ + z·cosθ

x’ = z·sinθ + x·cosθ

y’ = y

z’ = z·cosθ - x·sinθ

The equations for the three kinds of rotations

in 3-D are as follows:

Homogeneous Coordinates In 3-D

Similar to the 2-D situation we can use homogeneous

coordinates for 3-D transformations - 4 coordinate

column vector

All transformations can

then be represented

as matrices

1

z

y

x

x axis

y axis

z axis

P

y

z

x

P(x, y, z) =

3D Transformation Matrices

1000

100

010

001

dz

dy

dx

1000

000

000

000

z

y

x

s

s

s

1000

0cos0sin

0010

0sin0cos

Translation by

dx, dy, dz Scaling by

sx, sy, sz

1000

0cossin0

0sincos0

0001

Rotate About X-Axis

1000

0100

00cossin

00sincos

Rotate About Y-Axis Rotate About Z-Axis

Remember The Big Idea

Summary

In today’s lecture we looked at:

Transformations in 3-D

Very similar to those in 2-D

Projections

3-D scenes must be projected onto a 2-D image

plane

Lots of ways to do this

Parallel projections

Perspective projections

The virtual camera

Who’s Choosing Graphics?

A couple of quick questions for you:

Who is choosing graphics as an option?

Are there any problems with option time-

tabling?

What do you think of the course so far?

Is it too fast/slow?

Is it too easy/hard?

Is there anything in particular you want to cover?

3D Transformations

• Same idea as 2D transformations

– Homogeneous coordinates: (x,y,z,w)

– 4x4 transformation matrices

w

z

y

x

ponm

lkji

hgfe

dcba

w

z

y

x

'

'

'

'

wz

yx

wz

yx

1000010000100001

'

''

w

z

y

x

t

t

t

w

z

y

x

z

y

x

1000

100

010

001

'

'

'

Identity

Translation

Translation

W=1

w

z

y

x

s

s

s

w

z

y

x

z

y

x

1000

000

000

000

'

'

'

Scale

Scaling

wz

yx

wz

yx

1000010000100001

'

''

Identity

Column Vector Representation

Row Vector Representation

x’ y’ z’ 1 = x , y, z ,1

Rotation

wz

yx

wz

yx

1000010000cossin00sincos

'

''

Rotate around Z axis:

Column Vector Representation

Row Vector Representation

Rotation

Rotate around Y axis:

w

z

y

x

w

z

y

x

1000

0cos0sin

0010

0sin0cos

'

'

'

Column Vector Representation

Row Vector Representation

Rotation

Rotate around X axis:

wz

yx

wz

yx

10000cossin00sincos00001

'

''

Column Vector Representation

Row Vector Representation

Projection

Representing a three-dimensional object or scene in 2-

dimensional objects onto the 2-dimensional view plane.

There are 2 types of projections.

Parallel Projection

Perspective Projection

Categories

of

Projection

Parallel Projection

Orthographic Projection

Axonometric Projection

Isometric Projection

Dimetric Projection

Trimetric Projection

Oblique Projection

Cavalier Projection

Cabinet Projection

Perspective projection

Single-Point Projection

Two-Point Projection

Three-Point Projection

Parallel Projection

Parallel Projection preserves relative proportions of objects but does not

produce the realistic views

Perspective Projection

Perspective Projection produce the realistic views but does not

preserves relative proportions of objects

View Plane

Front View

Orthographic Parallel Projection

Axonometric Ortho…

Top,

Side,

rear

(far) :

Elevati

ons

&

Top

is

called

Plan

View

Isometric Projection of an object

onto a viewing plane

Oblique Parallel Projection

Cavalier Projections of the unit cube

Cabinet Projections of the Unit Cube

Types of Perspective Projections

Logical Relationship among the various

types of projections

Transformation Matrix for general Parallel

Projection (on XY plane)

(x1,y1,

Matrix Representation

Transformation Matrix for general Oblique

Projection (on XY plane)

Transformation Matrix for Perspective

Projection (on XY plane)

3D Clipping

HiDdEn SuRfAcE rEmOvAl

Example

Original Pyramid After Hidden Surface

Removal

cAtEgOrIeS oF hIDdEn SuRfAcE rEmOvAl

• oBJECT sPACE mETHOD

• iMAGE sPACE mETHOD

Hidden Surface Removal/ Visible Surface Detection

Object Space Method

Robert’s Algorith

m

Back Face

Removal/Detecti

on Method

Painter’s Algorith

m (Depth Sort)

Image Space Method

Area Subdivisi

on Method (Warnoc

k’s)

Octree method

Depth Buffer

Method (Z-Buffer

Scan Line

Algortihm

Ray Tracing Method

oThErS

• fLOATING hORIZON aLGORITHM

• bINARY sPACE pARTITIONING

bAcK fAcE rEmOvAl mEtHoD • Back face means the surface of the polygon which in

not visible in projection. So we have to remove this surface from projection.

• It is used for identifying back faces of a polyhedron is base on the inside-outside test.

• Back face removal algorithm will be applied on plane polygons.

A point (x,y,z) is inside a polygon surface with plane parameters A, B, C and D if

Ax + By + Cz + D < 0

• Figure : Vector V in the viewing direction and a back-face normal vector N of a polyhedron

N= (A,B,C)

Camera

V

• The normal vector N to a polygon surface, which has Cartesian Components (A,B,C).

• If V is a vector in the viewing direction from the eye or camera position, then this position is a back face if

V.N > 0

• If the dot product is positive, we can say that the polygon faces towards the viewer, otherwise it faces away and should be removed.

• In case, if object description has been converted to projection coordinates and our viewing direction is parallel to the viewing Zv

axis, then V = (0,0,Zv) and V.N = Zv C

• To consider the sign of C , the z component of the normal vector N. Now if the Z component is positive, then the polygon faces towards the viewer, if negative it faces away .

Yv

Xv

Zv

N= (A,B,C)

V

Example I

EYE

EYE

FRONT

BACK

Example II Y

X

Z

C D

B A

A B

D C

A B

D C

A B

D C

A B

D C

Back-face Detection

Method Direction for

Faces

ABC BDC

ACD ADB

DePtH cOmPaRiSiOn

Z

Y

X

B(x2,y2,z2)

A(x1,y1,z1)

P Parallel Projection

If A and B are not on the same projection line then no point hide the other point.

If A and B are on the same projection line then in case of parallel projection on xy plane if x1=x2 and y1 = y2 then A and B are on same plane. If Z1<Z2 then A point hide B.

Frame Buffer

Z

Y

X

B(x2,y2,z2)

A(x1,y1,z1)

P Perspective Projection

Z-Buffer (Depth Buffer) Algorithm

Z-Buffer (Depth Buffer) Algorithm

Y

X

Z

(X , Y ) Result At view plane position (x,y),surface S1 has the smallest depth from the view plane and so is visible at that position

Z-Buffer Algorithm

• Initialize frame buffer to background colour.

• Initialize z-buffer to minimum z value.

• Scan convert each polygon in arbitrary order.

• For each(x,y) pixel, calculate depth ‘z’ at that pixel(z(x,y)).

• Compare calculated new depth z(x,y) with value previously stored in z-buffer at that location z(x,y).

• If z(x,y)>z(x,y), then write the new depth value to z-buffer and update frame buffer.

• Otherwise, no action is taken.

• The plane polygon define a surface or plane whose equation can be written as

Ax + By + Cz + D = 0 Depth value for a surface position (x.y) are calculated from the plane equation for each surface z = -Ax –By-D C

Z’ = -A (x+1) – By –D

C

From position (x,y) on a scan line, the next position across the line has coordinates (x+1,y) and the position immediately below on the next line has coordinates (x,y-1)

Top Scan Line

Y Scan Line

Bottom Scan Line

Fig: Scan Lines intersecting a polygon surface

Top Scan Line

Y Scan Line

Bottom Scan Line

Fig: Intersecting positions on successive scan line along a Left Polygon

edge

Y-1 Scan Line

X X’

Scan Line Method

Scan Line 1

Scan Line 2

S1 S2

a

b

c

d g

h

f

e

Scan Lines crossing the projection of two surface, S1 and S2 in the view plane. Dashed lines indicates the boundaries of hidden surfaces.

Scan Line1 S1: edge ab & bc , s2: eh &ef Scan Line2 S1: ad & eh , s2 :bc &fg S1 & s2 : eh & bc Depth value S1<S2 then s1 is visible

Intersecting and cyclically overlapping surfaces

that alternately obscure(Unclear) one anther

Intersecting and cyclically overlapping surfaces

that alternately obscure(Unclear) one anther

Painter Algorithm (Depth Method)

• Using both image space and object space operations, the depth-sorting method performs the following basic functions:

– Surfaces are sorted in order of decreasing depth.

– Surfaces are scan converted in order, starting with the surface of greatest depth.

Used : Oil Painting ,an artist first paints the

background color

tEST -I

A

B

Surface A and B with no overlapping in Z direction

ZAmax

ZAmin

ZBmax

ZBmin Xv

Zv Yv

First of all find the overlapping in z axis from the sorted list of polygons according to z value

tEST -II

A

B

Surface A and B with no overlapping in Y direction

YAmax

YAmin

YBmax

YBmin

Xv

Zv Yv

First of all find the overlapping in y axis from the sorted list of polygons according to y value

tEST -III

B

Surface A and B that do not overlap in x direction

XBmax XBmin XAmax XAmin

A

Xv

Zv Yv

First of all find the overlapping in x axis from the sorted list of polygons according to x value

tEST -IV

Surface A completely overlaps the background plane B

Zv

Yv

Xv

A

B

If some plane overlapping with background plane then we have test whether the plane completely hide the background plane or not.

tEST -V

Surface A does not hide B

Zv

Yv

Xv

A

B

If some plane overlapping with background plane then we have test whether the plane completely in front of background plane but not hiding the background plane.

Others

Three surfaces entered into the sorted surface list in the order A,B,C should be reordered A, C, B.

Zv

Yv

Xv

A C B

Binary Space Portitioning Tree (BSP) Method

D

C

A

B Back

Front Back

Front

P1

P2

View P1

FRONT P2 A , B

BACK P2 C, D

A region of space is

partitioned with two planes

P1 and P2.

P1

Back

Front

Front Front Back

Back

P2 P2

A C B D

BSP Tree Representation

aReA-sUbDiViSiOn MeThOd (WoRnOcK’s AlGoRiThM)

S

Initial Viewing Area Subdivision of Viewing Area

• The relationship between projection each polygon and the area of interest is checked for four possible relationships :

Surrounding Surface

Overlapping OR Intersecting Surface

Inside OR Contained Surface

Outside OR Disjoint Surface

Case I – Surrounding Surface P

S

Polygon that completely surrounds the screen area is called surrounding surface .

If polygon is surrounding the screen area , color the all pixels of screen area as color of screen.

S

Case II – Outside or Disjoint Surface

P S

Polygon that is completely outside the screen area.

If all polygon comes under the category of outside polygon, color all pixel of viewing screen as background color.

S

Case III – Contained or Inside Surface

P

S

Polygon that is completely inside the screen area.

If polygon in inside the screen area, we scan convert that area and the remaining area of screen will colored with background color.

S

Case IV – Intersecting or Overlapping Surface

P

S

Polygon that intersect the

screen area S.

Others

AREA

Inside Polygon

Intersecting

Polygon

Surrounding

Polygon

X

Y

Others

AREA

Intersecting

Polygon

Surrounding

Polygon

X

Y

top related