computer graphics cs 482 – fall 2014 september 15, 2014 virtual cameras clipping perspective...

9
COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS • CLIPPING • PERSPECTIVE PROJECTION • ORTHOGRAPHIC PROJECTION

Upload: jared-west

Post on 17-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

COMPUTER GRAPHICS

CS 482 – FALL 2014

SEPTEMBER 15, 2014VIRTUAL CAMERAS

• CLIPPING• PERSPECTIVE PROJECTION• ORTHOGRAPHIC PROJECTION

Page 2: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

CLIPPING

CS 482 – FALL 2014

VIEW FRUSTUM

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 2

THE ACTUAL “VIEW VOLUME” OF A SCENE IS LIMITED BY NEAR AND FAR CLIPPING PLANES, AS WELL AS LIMITATIONS ON THE HORIZONTAL AND

VERTICAL VIEWING ANGLES.

ALL OBJECTS (OR PARTIAL OBJECTS) THAT FALL OUTSIDE OF THE “TRUNCATED PYRAMID” OF THE VIEW FRUSTUM SHOULD NOT BE

RENDERED, IF IT’S POSSIBLE TO INEXPENSIVELY “CLIP” THEM FROM THE SCENE.

Page 3: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

CLIPPING

CS 482 – FALL 2014

NEAR AND FAR CLIPPING

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 3

NEAR AND FAR CLIP PLANES MUST BE CHOSEN CAREFULLY.FAR CLIP PLANES ARE EXTREMELY

USEFUL IN REDUCING THE NUMBER OF POLYGONS THAT MUST BE PROCESSED

DURING RENDERING...

NEAR CLIP PLANES ELIMINATE OBJECTS THAT MIGHT OBSTRUCT THE VIEWER’S DESIRED VIEW...

…BUT THE IMAGE MAY BE DAMAGED IF THE FAR CLIP

PLANE IS TOO CLOSE.

…BUT UNWANTED VIEWS OF A GRAPHICAL OBJECT’S INTERNAL GEOMETRY MAY RESULT IF THE NEAR CLIP PLANE IS

PUSHED BACK TOO FAR.

Page 4: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

PERSPECTIVE PROJECTION

CS 482 – FALL 2014

CONVERTING 3D TO 2D

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 4

WHEN 3-D OBJECTS ARE RENDERED IN A 2-D ENVIRONMENT, SOME FORM OF PROJECTION IS USED TO ELIMINATE THE “EXTRA”

DIMENSION.THE TWO PRIMARY TYPES OF PROJECTIONS ARE:

• ORTHOGRAPHIC (OR PARALLEL), IN WHICH ONE DIMENSION IS MERELY DELETED

• PERSPECTIVE, IN WHICH A FORMAL MAPPING IS PERFORMED TO PROVIDE SOME DEGREE OF FORESHORTENING TO THE RENDERED IMAGE.

WHILE PARALLEL PROJECTIONS ARE COMPUTATIONALLY INEXPENSIVE AND PROVIDE A GOOD NOTION OF ACTUAL DISTANCES (AT LEAST WITH RESPECT

TO THE REMAINING DIMENSIONS), PERSPECTIVE PROJECTIONS PROVIDE BETTER REALISM.WITH EITHER TYPE OF

PROJECTION, WE REQUIRE A 4X4 MATRIX THAT WILL MAP

3-D POINTS (IN HOMOGENEOUS

COORDINATES) TO 2-D POINTS ON THE VIEWSCREEN.

'

0

'

'

w

y

x

w

z

y

x

Page 5: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

PERSPECTIVE PROJECTION

CS 482 – FALL 2014

VANISHING POINTS

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 5

TO MAKE DISTANT OBJECTS APPEAR SMALLER, PERSPECTIVE PROJECTIONS

ARE USED.

ONE VANISHING POINT, STRAIGHT AHEAD OF THE

VIEWER.

A SECOND VANISHING POINT IS ADDED, AT FAR

LEFT.

NOW THERE ARE VANISHING POINTS IN THE DISTANT LEFT AND RIGHT, AS WELL AS FAR

OVERHEAD.

zz

zyyz

zxxz

z

y

x

z

yz

xz

c

cc

cc

c

cc

cc

0

1100

0000

00

00

PERSPECTIVE PROJECTION MATRIX FOR ONE VANISHING POINT ON THE Z-AXIS, WITH A CENTER OF

PROJECTION AT (XC, YC, ZC)

(ADDITIONAL VANISHING

POINTS MAY BE PRODUCED BY THEN APPLYING

ROTATIONS AROUND THE APPROPRIATE

AXES.)

Page 6: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

PERSPECTIVE PROJECTION

CS 482 – FALL 2014

LOCATING VANISHING POINTS

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 6

WHERE ARE THE VANISHING POINTS IN THIS SCENE FROM “BIOSHOCK

INFINITE”?

Page 7: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

PERSPECTIVE PROJECTION

CS 482 – FALL 2014

PROJECTION SHADOWS

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 7

WHEN CASTING SHADOWS FROM A DIRECTIONAL LIGHT SOURCE ONTO PLANAR SURFACES, A SIMPLISTIC IMPLEMENTATION COMBINES

TRANSLATIONS AND PERSPECTIVE PROJECTIONS.

(1 00 1

0 −𝑥 𝑙

0 −𝑦 𝑙

0 00 0

1 −𝑧 𝑙

0 1) (

𝑥𝑦𝑧1)(

1 00 1

0 00 0

0 00 −1/𝑦 𝑙

1 00 0

)(1 00 1

0 𝑥 𝑙

0 𝑦 𝑙

0 00 0

1 𝑧 𝑙

0 1)

FOR EVERY VERTEX ON THE

3D OBJECT BEING “SHADOWED”

FIRST, TRANSLATE BY THE NEGATIVE OF THE LIGHT’S

POSITION

SECOND, PROJECT TO THE SHADOW PLANE (IN THIS CASE, THE X-

Z PLANE)

AND FINALLY, TRANSLATE BACK BY THE LIGHT’S

POSITION

Page 8: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

PERSPECTIVE PROJECTION

CS 482 – FALL 2014

ASPECT RATIO

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 8

IN ORDER TO PRESERVE THE RELATIVE SHAPES AND SIZES OF OBJECTS WHEN THE VIEWING WINDOW IS RESIZED, THE

PERSPECTIVE PROJECTION IS ADJUSTED TO ENSURE A CONSTANT ASPECT RATIO.void ResizeWindow(GLsizei w, GLsizei h)

{ currWindowSize[0] = w; currWindowSize[1] = h; if ( h == 0 ) h = 1;

if ( ASPECT_RATIO > w/h ) { currViewportSize[0] = w; currViewportSize[1] = int(w / ASPECT_RATIO); } else { currViewportSize[0] = int(h * ASPECT_RATIO); currViewportSize[1] = h; } // Center the image within the resized window. glViewport((w - currViewportSize[0]) / 2, 0, currViewportSize[0], currViewportSize[1]); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(FIELD_OF_VIEW_ANGLE, ASPECT_RATIO, NEAR_CLIP_DISTANCE, FAR_CLIP_DISTANCE); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); return;}

Page 9: COMPUTER GRAPHICS CS 482 – FALL 2014 SEPTEMBER 15, 2014 VIRTUAL CAMERAS CLIPPING PERSPECTIVE PROJECTION ORTHOGRAPHIC PROJECTION

ORTHOGRAPHIC PROJECTION

CS 482 – FALL 2014

PARALLEL PROJECTION

SEPTEMBER 15, 2014: VIRTUAL CAMERAS PAGE 9

w

y

x

w

z

y

x

0

1000

0000

0010

0001USEFUL FOR DRAFTING AND DESIGN SPECIFICATIONS,

PARALLEL PROJECTIONS DO NOT TEND TO PROVIDE

REALISTIC VIEWS OF 3-D OBJECTS.

ORTHOGRAPHIC PROJECTION MATRIX (TO X-Y

PLANE)