An Introduction to Computer Graphics Introduction Graphics Users

  • Slides: 78
Download presentation
An Introduction to Computer Graphics

An Introduction to Computer Graphics

Introduction Graphics Users n n Group 1 - reasonable images produced quickly w flight

Introduction Graphics Users n n Group 1 - reasonable images produced quickly w flight simulation w games w Virtual Environments w CAD w data visualisation Group 2 - photorealistic images produced non-real time w advertising w Television w films

Graphics Process

Graphics Process

Graphics Pipeline 3 D DATA TRANSFORM 3 D DATA IN CAMERA COORDS PROJECT 2.

Graphics Pipeline 3 D DATA TRANSFORM 3 D DATA IN CAMERA COORDS PROJECT 2. 5 D DATA IN SCREEN COORDS Clip FINAL IMAGE HIDDEN SURFACE & RENDER DATA FULLY ON SCREEN

Scene Description WORLD n n n Objects Lights Camera OBJECTS n n n Shape

Scene Description WORLD n n n Objects Lights Camera OBJECTS n n n Shape Colour/Material Location

Cartesian Coordinates 2 Dimensions (X, Y) 3 Dimensions (X, Y, Z) Z Y Y

Cartesian Coordinates 2 Dimensions (X, Y) 3 Dimensions (X, Y, Z) Z Y Y X X

Object Representation POINTS (X, Y, Z) LINES (X 1, Y 1, Z 1), (X

Object Representation POINTS (X, Y, Z) LINES (X 1, Y 1, Z 1), (X 2, Y 2, Z 2) POLYGONS (X 1, Y 1, Z 1). . . (Xn, Yn, Zn)

Object Representation MESHES n n n Set of Vertices V 1 = (X 1,

Object Representation MESHES n n n Set of Vertices V 1 = (X 1, Y 1, Z 1). . . Vn = (Xn, Yn, Zn) Set of Polygons P 1, P 2, . . . Pm Each polygon Pi is represented as a ordered list of vertices Vi 1, Vi 2, . . . Vir EXAMPLE

Object Colour RGB SYSTEM n n n RED - GREEN - BLUE ADDITIVE LIGHT

Object Colour RGB SYSTEM n n n RED - GREEN - BLUE ADDITIVE LIGHT SYSTEM COLOUR REPRESENTED AS (R, G, B) Each primary is between 0 and 1 EXAMPLES n n n (1, 1, 1) represents White (0, 0, 0) represents Black (1, 0, 0) represents all Red

Colour Representation R G B Colour Cube B 1 1 R 1 G

Colour Representation R G B Colour Cube B 1 1 R 1 G

Building a World Built from a set of objects Objects translated into position Objects

Building a World Built from a set of objects Objects translated into position Objects rotated as appropriate Objects scaled as appropriate Include light sources: n n n Ambient Non-directional Spotlight Include camera position and view direction

Transforming Objects TRANSLATION n ADD an offset to every vertex of an object ROTATION

Transforming Objects TRANSLATION n ADD an offset to every vertex of an object ROTATION n n n Use trigonometry to calculate new position of each vertex Allow rotation around each Cartesian axis Rotation may be represented by matrices SCALE n n Multiply each vertex by a constant scale factor Always apply on an object BEFORE it is placed into the scene

Translation An object is translated by adding an offset to every vertex (x+Tx, y+Ty)

Translation An object is translated by adding an offset to every vertex (x+Tx, y+Ty) (x, y) (Tx, Ty)

Matrix Rotation (2 Dimensions) (x 1, y 1) = cos(a) -sin(a) x sin(a) y

Matrix Rotation (2 Dimensions) (x 1, y 1) = cos(a) -sin(a) x sin(a) y cos(a) (x 1, y 1) a (x, y)

Matrix Rotation (3 Dimensions) Rotation about X by angle a Z (x 1, y

Matrix Rotation (3 Dimensions) Rotation about X by angle a Z (x 1, y 1, z 1) = 1 0 0 cos(a) -sin(a) cos(a) x y z a X Y

Matrix Rotation (3 Dimensions) Rotation about Y by angle a Z (x 1, y

Matrix Rotation (3 Dimensions) Rotation about Y by angle a Z (x 1, y 1, z 1) = cos(a) 0 0 1 -sin(a) 0 cos(a) x y z a X Y

Matrix Rotation (3 Dimensions) Rotation about Z by angle a Z (x 1, y

Matrix Rotation (3 Dimensions) Rotation about Z by angle a Z (x 1, y 1, z 1) = cos(a) -sin(a) 0 sin(a) cos(a) 0 0 0 1 x y z a X Y

Projection Objects exist in 3 dimensions, final image is in 2 dimensions Projection reduces

Projection Objects exist in 3 dimensions, final image is in 2 dimensions Projection reduces the dimension by one Two common types: n n PERSPECTIVE w Mimics scaling of distance Orthographic w Objects not scaled with distance

Orthographic Objects projected with parallel lines

Orthographic Objects projected with parallel lines

Orthographic Objects of the same size give images of the same size - whatever

Orthographic Objects of the same size give images of the same size - whatever their distance projection line image objects screen

Perspective Projected Cylinder object screen eye

Perspective Projected Cylinder object screen eye

Perspective Objects further away give smaller images projection line image objects screen

Perspective Objects further away give smaller images projection line image objects screen

Clipping Projected objects may lie: n n n Totally on the screen Partially on

Clipping Projected objects may lie: n n n Totally on the screen Partially on the screen Completely off the screen Polygons need to be clipped to the sides of the screen n n Care must be taken to ensure that the new polygon is complete Remaining polygons may obscure each other

Hidden Surface Removal Aim to identify which parts of a polygon are visible Many

Hidden Surface Removal Aim to identify which parts of a polygon are visible Many solutions developed for special cases Consider two examples: n n PAINTERS ALGORITHM Z-BUFFER

Screen Picture is drawn in a frame-buffer Frame-buffer is an area of memory Think

Screen Picture is drawn in a frame-buffer Frame-buffer is an area of memory Think of the screen as a grid of squares n n n Each square represents a pixel Every pixel can hold a colour (R, G, B) value Drawing a picture is just colouring the squares

Drawing Example Partially Drawn Polygon

Drawing Example Partially Drawn Polygon

Painters Algorithm Method n n Generate all the polygons Order them with respect to

Painters Algorithm Method n n Generate all the polygons Order them with respect to their distance from the camera Draw the polygons furthest away first, move towards the viewer Visible polygons drawn over distant polygons Designed for the case when polygons are well- ordered

Painters Algorithm Impossible Example

Painters Algorithm Impossible Example

Z-Buffer Algorithm Method n n n Retain distance information for each vertex Frame-buffer extended

Z-Buffer Algorithm Method n n n Retain distance information for each vertex Frame-buffer extended to have a depth-buffer Whilst drawing the polygon, calculate the pixel depth for each pixel FOR each pixel in polygon CALCULATE depth of pixel in polygon COMPARE depth with current frame-buffer depth IF polygon pixel CLOSER than frame-buffer depth THEN save polygon colour AND depth in frame-buffer w NEXT pixel w w

Illumination Model The illumination model allows the colour to be calculated at a surface

Illumination Model The illumination model allows the colour to be calculated at a surface Approximates the behavior of light within a scene Typical example is called the ‘Phong’ Model

Phong Illumination Model Considers three types of illumination n Ambient n Diffuse n Specular

Phong Illumination Model Considers three types of illumination n Ambient n Diffuse n Specular Provides the highlight on objects Constant background illumination w same for all objects in a scene w gives constant shading Light widely scattered by a surface w depends only upon the position of the light relative to the surface w depends on both the light position and the eye position

Ambient Example

Ambient Example

Diffuse Reflection Pictorial Representation Light N L a Object Eye

Diffuse Reflection Pictorial Representation Light N L a Object Eye

Diffuse Reflection Mathematical Description n N Li Ii kd ai n Component is given

Diffuse Reflection Mathematical Description n N Li Ii kd ai n Component is given by: n n normal to object at intersection vector from intersection to light i intensity of light from light i coefficient of diffuse reflection angle between Li and N w kd(I 1(cos (a 1)) + l 2(cos(a 2)) + l 3(cos(a 3)) +. . . )

Diffuse Example

Diffuse Example

Specular Reflection Pictorial Representation L R Eye q

Specular Reflection Pictorial Representation L R Eye q

Specular Reflection Mathematical Description n n n ks Ii Li R n coefficient of

Specular Reflection Mathematical Description n n n ks Ii Li R n coefficient of specular reflection intensity of light from light i vector from intersection to light i direction of reflection of incident ray level of specularity Specular component given by w ks(I 1(L 1. R)n + I 2(L 2. R)n +. . . ) with L. R being the cosine of the angle between vectors L and R

Specular Example - 1

Specular Example - 1

Specular Example - 2

Specular Example - 2

Specular Example - 3

Specular Example - 3

Full Shading Model The colour shading model is: n Ir = Iakar + Ii(kdr(Li.

Full Shading Model The colour shading model is: n Ir = Iakar + Ii(kdr(Li. N) + ks(Li. R)n) n Ig = Ia. Kag + Ii(kdg(Li. N) + ks(Li. R)n) n Ib = Iakab + Ii(kdb(Li. N) + ks(Li. R)n) n The colour is expressed in terms of (Ir, Ig, Ib)

Object Shading Flat shading Gouraud shading Phong shading Texturing

Object Shading Flat shading Gouraud shading Phong shading Texturing

Flat Shaded Simplest way to shade a polygon Apply the Phong illumination model once

Flat Shaded Simplest way to shade a polygon Apply the Phong illumination model once All pixels in the polygon are shaded the same Quick, but limited realism for meshes

Flat Shaded Example

Flat Shaded Example

Gouraud Shaded Normal at each vertex of a polygon (r, g, b) colour computed

Gouraud Shaded Normal at each vertex of a polygon (r, g, b) colour computed for each vertex colour for pixels within the polygon are calculated by linear interpolation from the vertices Slower, smooth appearance across polygon

Gouraud Shaded Pictorial Representation N 2 N 1 (r 2, g 2, b 2)

Gouraud Shaded Pictorial Representation N 2 N 1 (r 2, g 2, b 2) (r 1, g 1, b 1) colour is linear function of (ri, gi, bi) N 3 (r 3, g 3, b 3)

Gouraud Shaded Example

Gouraud Shaded Example

Phong Shaded Normal at each vertex of a polygon Normal for pixels within the

Phong Shaded Normal at each vertex of a polygon Normal for pixels within the polygon are calculated by linear interpolation from the vertices (r, g, b) colour calculated for each pixel Much slower, smooth appearance across polygon, removes some artifacts

Phong Shaded Pictorial Representation N 2 N 1 N 3 normal N is linear

Phong Shaded Pictorial Representation N 2 N 1 N 3 normal N is linear function of Ni colour computed using N for illumination model

Phong Shaded Example

Phong Shaded Example

Texturing 2 Dimensional Textures n n n Use an image mapped onto an object

Texturing 2 Dimensional Textures n n n Use an image mapped onto an object Either scale the image to fit once on the object or tile the object with a number of copies of the image Typically use: w plane map w cylindrical map w spherical map

Texturing - Plane Map Theory n Texture defined in u-v coordinates, scaled to the

Texturing - Plane Map Theory n Texture defined in u-v coordinates, scaled to the unit square v Object 1 Image 1 u

Texturing - Plane Map

Texturing - Plane Map

Texturing - Plane Map

Texturing - Plane Map

Texturing - Cylindrical map Theory n (u, v) --- (r*cos(2*pi*u), r*sin(2*pi*u), h*v) v r

Texturing - Cylindrical map Theory n (u, v) --- (r*cos(2*pi*u), r*sin(2*pi*u), h*v) v r 1 h Image 1 u

Texturing - Cylindrical map Seam

Texturing - Cylindrical map Seam

Texturing - Spherical map Theory n (u, v) --(r*cos(2*pi*u)*cos(pi*v), r*sin(pi*v)) v 1 Image 1

Texturing - Spherical map Theory n (u, v) --(r*cos(2*pi*u)*cos(pi*v), r*sin(pi*v)) v 1 Image 1 u

Texturing - Spherical map Seam

Texturing - Spherical map Seam

Texturing 3 Dimensional Textures n n 2 Dimensional textures only cover the surface of

Texturing 3 Dimensional Textures n n 2 Dimensional textures only cover the surface of an object 3 Dimensional textures are defined for all points in space Objects are cut from the texture space - much like sculpting a statue from stone 3 Dimensional textures are often defined mathematically (r, g, b) = T(x, y, z) with T the texture function

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Texturing Example

Alternative Rendering Techniques Ray tracing n n n Aims to improve realism of image

Alternative Rendering Techniques Ray tracing n n n Aims to improve realism of image Slower than polygon rendering Suitable for producing still images and animations Radiosity n n n Further improvement of the shading model Attempts to improve the treatment of ambient light Slow, but can be pre-computed and used with polygon rendering or ray tracing

Ray Tracing What’s wrong with the Graphics Pipeline n n n difficult to achieve

Ray Tracing What’s wrong with the Graphics Pipeline n n n difficult to achieve realism reflections and transparency not accurate real shadows increase rendering time polygonal objects are not smooth ( Gouraud and Phong shading help ) difficult to render shapes defined mathematically the pipeline is not a natural approach

Ray Tracing Concept of Ray Tracing n n n draw a grid on some

Ray Tracing Concept of Ray Tracing n n n draw a grid on some paper cut a square hole in a card and connect some wires across the hole, again forming a grid hold the card in front of the scene to be painted and draw the image seen through each grid square on the corresponding square on the paper if the image seen through a grid square is too complex, increase the number of squares on paper and card When the grid is suitably fine, just paint the average colour seen through a grid hole in the corresponding position on the paper

Ray Tracing scene Paper Card with hole

Ray Tracing scene Paper Card with hole

Ray Tracing Algorithm n n n Trace a ray from the eye through a

Ray Tracing Algorithm n n n Trace a ray from the eye through a pixel, into the scene Find the nearest object intersected by the ray cast a new reflected ray and refracted ray calculate light arriving from reflected, refracted rays and direct illumination from lights in the scene apply shading model to get the colour for the object at the intersection paint the pixel with the computed colour

Ray Tracing Example of generated reflected rays Eye 1 N 2 N 3 N

Ray Tracing Example of generated reflected rays Eye 1 N 2 N 3 N 4

Ray Tracing Example

Ray Tracing Example

Ray Tracing Example

Ray Tracing Example

Radiosity is a physically based model of global diffuse illumination n n Developed at

Radiosity is a physically based model of global diffuse illumination n n Developed at Cornell University in 1994 from radiative heat transfer Assumes all surfaces are ideal Lambertian (diffuse) - ray tracing assumes ideal specular Radiosity discretises the scenes and produces data independent of the viewer In general, Radiosity takes longer than ray tracing

Radiosity is not a rendering technique n n n does not take into account

Radiosity is not a rendering technique n n n does not take into account the viewer position produces data to be rendered later needs rendering process to actually produce an image rendering can be done using a graphics pipeline or using ray tracing methods best results occur when radiosity and ray tracing are used an example of a benefit of radiosity is colour bleeding

Radiosity Example Light White floor with red reflections from the walls

Radiosity Example Light White floor with red reflections from the walls

Software Rendering Packages n n n POVRay Imagine Truespace 2 Animation Master 3 D

Software Rendering Packages n n n POVRay Imagine Truespace 2 Animation Master 3 D Studio Max free from www. povray. org Impulse Caligari, www. caligari. com Martin Hash, www. hash. com Kinetix, www. ktx. com Libraries n n Open. GL VRML 2 Silicon Graphics, www. sgi. com Silicon Graphics, vrml. sgi. com