Coordinate Systems X Y Z (conventional Cartesian reference system) X Y Z.

Post on 20-Dec-2015

233 views 2 download

Transcript of Coordinate Systems X Y Z (conventional Cartesian reference system) X Y Z.

Coordinate Systems

X

Y

Z

Coordinate Systems

(conventional Cartesianreference system)

X

YZ

Transformations Transformation occurs

about the origin of the coordinate system’s axis

TranslateScale

Rotate

Order of Transformations Make a Difference

Translate along X 1;

Rotate about Z 45

Rotate about Z 45; Translate along X 1

Box centered atorigin

Hierarchy of Coordinate Systems

Also called:– Scene graphs

– Tree structures

Local coordinate system

The Camera

Projection Plane

View Volume

Near ClippingPlane Far Clipping

Plane

The CameraParallel Projection

Perspective Projection

Rendering Pipeline

Hardware

Modelling Transform Visibility

Illumination +Shading

ColorPerception,Interaction

Texture/Realism

Polygons, Meshes & Scan Conversion- In scan line rendering (the most common): Each polygon is calculated along each scan line. From the top scan line to the bottom of a frame in the 2D projection plane.

V2V3

RasterScan line

V1

Approximating Curved Surfaces with Flat Polygons

Flat Shading – each polygon face has a normal that is used to perform lighting calculations.

Gouraud Shading Compute vertex normals

by averaging face normals.

Compute intensity at each vertex.

I1

I2

I1,2 I1,3

I3

I1,2,3,4Raster

Scan line

Illumination / Shading

Distinction between illumination and shading models– illumination - calculate intensity at a

point on surface– shading - uses calculated intensities

to shade polygons (uses illumination models)

we’ll review the important models

Illumination / Shading– global illumination:

• ray tracing + radiosity

– mapping and other techniques• texture maps, bump maps, reflection maps,

transparency, anti-aliasing, shadows

ray tracing radiosity

Local Illumination

Local vs. global illumination models– local (typically) - how is one point of

the scene illuminated directly by the light source• is light source only source of illumination?• Simple models lump the rest into a single

ambient term• do not account for reflections within the

environment

Local Illumination

Local vs. global illumination models– global - illuminates the whole scene

• typically makes use of local illumination model

• incorporates inter-reflectance of objects

Lighting Types Ambient – basic, even

illumination of all objects in a scene

Directional – all light rays are in parallel in 1 direction - like the sun

Point – all light rays emanate from a central point in all directions – like a light bulb

Spot – point light with a limited cone and a fall-off in intensity – like a flashlight

Cone anglePenumbra angle

(light starts to drop offto zero here)

Light Effects Usually only considering

reflected partLight

absorbed

transmitted

reflected

Light=refl.+absorbed+trans.

Light

ambient

specular

diffuse

ssddaa IkIkIkI

Light=ambient+diffuse+specular

Ambient Light is the light in the environment evenly reaching

all surfaces from all directions light location doesn’t matter eye position doesn’t matter

aaIkI IA: ambient light

ka: material’s ambient reflection coefficient

Ambient Light

aaIkI IA: ambient light

ka: material’s ambient reflection coefficient

Models general level of brightness in the scene Accounts for light effects that are difficult to

compute (secondary diffuse reflections, etc)

Ambient Light Example

Diffuse Light Light absorbed by the surface and then reflected equally to all directions Models dullness, roughness of a surface

Light

LNIk

IkI

dd

dd

cos N

L

Id: intensity of light source

kd: material’s diffuse reflection coefficient N: normal vector (normalized) L: light source vector (normalized)

Lambert’s Law:(perfectly diffuse

surface)

Diffuse Light

Diffuse Lighting Example

Specular Light Light that is reflected from the surface

unequally to all directions Models reflections on shiny surfaces

Light

ndd

nss

REIk

IkI

cos N

LEye R

Phong’s Law:

R

n=inf.

R

n=large

R

n=small

Specular light example

Specular light calculation

The effect of ‘n’ in the phong model

n = 10

n = 30

n = 90

n = 270

Shading a Polygon

Illumination Model: determine the color of a surface (data) point by simulating some light attributes.

Local IM: deals only with isolated surface (data) point and direct light sources.

Global IM: takes into account the relationships between all surfaces (points) in the environment.

Shading Model: applies the illumination models at a set of points and colors the whole scene.

Texture Mapping: remappes and avgs. any value above (diffuse) from a 2d picture or map

Shading a Polyhedra

Flat (facet) shading:– Works well for objects really made of flat faces.– Appearance depends on number of polygons for curved surface objects.

If polyhedral model is an approximation then need to smooth.

Flat and Smooth Shading

Getting smooth Curvature : interpolation

Gouraud ShadingFlat Shading

Flat Shading Polygon meshes approximate smooth curved

surfaces with planar facets. Using the previous methods does not generate an illusion of smooth curved surface.

Reason: discontinuity of the normal vectors.

N1 N2

Gouraud Shading Assign vertex the normal of the smooth surface.

Or Average the normal of all neighboring polygons

N1 N2

N

Interpolate colors along edges and scan-lines

Gouraud shading

Phong shading

Phong Shading Gouraud Shading does not properly handle

specular highlights.

Reason: Colors are interpolated Solution:

– Compute averaged normal at vertices (Gouraud)– Interpolate normals along edges and scan lines!– Apply illumination model at every pixel

Phong ShadingGouraud Shading

Phong Shading

SpecularSmall n Large n

Surface ImageTexture

Textures Images (textures) applied to polygons (models) to enhance

the visual effect of a scene

Angel Figure 9.3

Surface Textures Add visual detail to surfaces of 3D objects

Polygonal model

With surface texture

Surface Textures Add visual detail to surfaces of 3D objects

Parameterization

geometrygeometry

++ ==

imageimage texture maptexture map

• Q: How do we decide where on the geometryeach color from the image should go?

Option: Varieties of projections

Texture Mapping Steps:

– Define texture

– Specify mapping from texture to surface

– Lookup texture values during scan conversion

(0,0)

(1,0)

(0,1)

uv

x

y

ModelingCoordinate

System

ImageCoordinate

System

s

t

TextureCoordinate

System

Texture Mapping

When scan convert, map from …– image coordinate system (x,y) to– modeling coordinate system (u,v) to– texture image (t,s)

(0,0)

(1,0)

(1,1)

(0,1)

uv

x

y

ModelingCoordinate

System

ImageCoordinate

System

s

t

TextureCoordinate

System

Texture Mapping– Interpolate texture coordinates down/across scan lines

– U,V mapping can be arbitrary and manipulated

– Distortion due to interpolation approximation

Texture Filtering

Angel Figure 9.5

Aliasing is a problem

Point sampling Area filtering

Texture Filtering

Angel Figure 9.14

Size of filter depends on projective warp– Can prefiltering images

Magnification Minification

Mip Maps Keep textures prefiltered at multiple resolutions

– For each pixel, linearly interpolate between two closest levels (e.g., trilinear filtering)

– Fast, easy for hardware

What is a Texture? MAP surface detail from a predefined (easy

table (“texture”) to a simple polygon

Color Specular ‘color’ (environment map) Normal vector deviation (bumpmap) displacement mapping transparency ...

Bump Mapping

Modifies the direction of the surface normal.

Texture and Bump Mapping Diffuse and normal remapping

Displacement Mapping

Modifies the surface position in the direction of the surface normal.

the actual geometric position of points over the textured surface are displaced along the surface normal according to the values stored into the texture.

Programmable Shaders Vertex Shader - Small Vertex program that can modify the

vertex between submission to the pipeline and rendering

Programmable Shaders

Vertex Shader - Small program that can

modify every vertex before rendering 3 examples:

– Renderman (software-based, non real-time),

– Microsoft’s DirectX (GPU real time)

– Nvidia’s Cg (GPU real time)

http://www.nzone.com/object/nzone_luna_videos.html