Loading in 5 sec....

CS 445 / 645 Introduction to Computer GraphicsPowerPoint Presentation

CS 445 / 645 Introduction to Computer Graphics

- By
**jela** - Follow User

- 139 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'CS 445 ' - jela

**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

Review

- We have a model for determining the brightness (radiance) of a ray rooted at a point on a surface and oriented towards the cameraDirect illumination only
- Ambient term
- Diffuse term
- Specular term

Combining Everything

- Simple analytic model:
- diffuse reflection +
- specular reflection +
- emission +
- “ambient”

Surface

What influences these terms?

- Influencing factors
- Light position
- Sample point position
- Camera position
- Surface angle with respect to light vector
- Surface angle with respect to camera vector

Direct illumination questions

- Camera moves from one position to another
- Angle between light and surface unchanged
- Angle between camera and surface changes

- A tracking camera follows object as it moves in scene
- Angle between light and surface changes
- Angle between camera and surface unchanged

- An object moves from on position to another
- Both angles have changed

Direct Illumination

- Provides a way to measure radiance at a point in a specific direction
- What points?
- Vertices
- What do you do for points between vertices?

- Vertices

- What points?

This becomes a problem of “shading”and we’ll discuss it later

Direct Illumination

- Provides a way to measure radiance at a point in a specific direction
- What points?
- Other points to sample?

- What points?

This is a form of ray casting.We’ll talk about it next

Direct Illumination

- Provides a way to measure radiance at a point in a specific direction
- What points?
- What directions?
- Towards the camera
- No secondary effects

Overview

- Direct (Local) Illumination
- Emission at light sources
- Scattering at surfaces

- Global illumination
- Shadows
- Refractions
- Inter-object reflections

Direct Illumination

Global Illumination

- We’ve glossed over how light really works
- And we will continue to do so…
- One step better
- Global Illumination
- The notion that a point is illuminated by more than light from local lights; it is illuminated by all the emitters and reflectors in the global scene

The ‘Rendering Equation’

- Jim Kajiya (Current head of Microsoft Research) developed this in 1986
- I(x, x’) = total intensity from point x’ to x
- g(x, x’) = 0 when x/x’ are occluded = 1/d2 otherwise (d = distance between x and x’)
- e(x, x’) = intensity emitted by x’ to x
- r(x, x’,x’’) = intensity of light reflected from x’’ to x through x’
- S = all points on all surfaces

The ‘Rendering Equation’

- The light that hits x from x’ is the direct illumination from x’ and all the light reflected by x’ from all x’’
- To implement:
- Must handle recursion effectively
- Must support diffuse and specular light
- Must model object shadowing

The ‘Rendering Equation’

- What’s really hard about computing this?
- The integral…
- How can one compute I(x, x') for all points x and x'?
- Approximate!!!

Approximating the Rendering Equation

- Don’t integrate over all points, just a subset
- Ray Tracing
- Considered a Monte Carlo approximation
- Monte Carlo == Random “sampling” of real answerConsider pulling colored balls from an urn to approximate the ratio of its contents

- Considered a Monte Carlo approximation

- Ray Tracing

by Gilles Tran

Approximating the Rendering Equation

- Group “all points” into sets and consider all sets
- Radiosity
- Considered a finite-element approximation
- What are the models that approximate light transfer from one finite element to another?Consider electing the President from the sum of the states rather than the sum of all people

- Considered a finite-element approximation

- Radiosity

Ray Casting

- A simple form of Ray Tracing

Rays

through

view plane

Simplest method

is ray casting

View plane

Eye position

Ray Casting

- To create each sample …
- Construct ray from eye position through view plane
- Find first surface intersected by ray through pixel
- Compute color sample based on surface radiance

Ray Casting

- For each sample …
- Construct ray from eye position through view plane
- Find first surface intersected by ray through pixel
- Compute color sample based on surface radiance

Rays

through

view plane

Samples on

view plane

Eye position

Ray Casting

- Simple implementation:

Image RayCast(Camera camera, Scene scene, int width, int height)

{

Image image = new Image(width, height);

for (int i = 0; i < width; i++) {

for (int j = 0; j < height; j++) {

Ray ray = ConstructRayThroughPixel(camera, i, j);

Intersection hit = FindIntersection(ray, scene);

image[i][j] = GetColor(hit);

}

}

return image;

}

Ray Casting

- Simple implementation:

Image RayCast(Camera camera, Scene scene, int width, int height)

{

Image image = new Image(width, height);

for (int i = 0; i < width; i++) {

for (int j = 0; j < height; j++) {

Ray ray = ConstructRayThroughPixel(camera, i, j);

Intersection hit = FindIntersection(ray, scene);

image[i][j] = GetColor(hit);

}

}

return image;

}

2*d*tan(Q)

P1 = P0 + d*towards – d*tan(Q)*right

P2 = P0 + d*towards + d*tan(Q)*right

P2

Constructing Ray Through a Pixel- 2D Example

Q = frustum half-angle

d = distance to view plane

towards

P0

Q

right = towards x up

d

V

right

P

Ray: P = P0 + tV

P = P1 + (i/width + 0.5) * (P2 - P1)

= P1 + (i/width + 0.5) * 2*d*tan (Q)*right

V = (P - P0) / ||P - P0 ||

Ray Casting

- Simple implementation:

Image RayCast(Camera camera, Scene scene, int width, int height)

{

Image image = new Image(width, height);

for (int i = 0; i < width; i++) {

for (int j = 0; j < height; j++) {

Ray ray = ConstructRayThroughPixel(camera, i, j);

Intersection hit = FindIntersection(ray, scene);

image[i][j] = GetColor(hit);

}

}

return image;

}

Ray-Scene Intersection

- Intersections with geometric primitives
- Sphere
- Triangle
- Groups of primitives (scene)

P

V

r

C

P0

Ray-Sphere IntersectionRay: P = P0 + tV

Sphere: |P - C|2 - r 2 = 0

Substituting for P, we get:

|P0 + tV - C|2 - r 2 = 0

Solve quadratic equation:

at2 + bt + c = 0

where:

a = |V|2 = 1

b = 2 V • (P0 - C)

c = |P0 - C|2 - r 2

If ray direction

is normalized!

P = P0 + tV

Ray-Sphere Intersection

- Need normal vector at intersection for lighting calculations

N = (P - C) / ||P - C||

N

r

V

P

C

P0

Ray-Scene Intersection

- Intersections with geometric primitives
- Sphere
- Triangle
- Groups of primitives (scene)

Ray-Triangle Intersection

- First, intersect ray with plane
- Then, check if point is inside triangle

P

V

P0

Ray-Plane Intersection

Ray: P = P0 + tV

Plane: P • N + d = 0

Substituting for P, we get:

(P0 + tV) • N + d = 0

Solution:

t = -(P0 • N + d) / (V • N)

P

N

P = P0 + tV

V

P0

Ray-Triangle Intersectio

- Check if point is inside triangle parametrically

T3

Compute a, b:

P = a (T2-T1) + b (T3-T1)

Check if point inside triangle.

0 a 1 and 0 b 1

a + b 1

P

b

T1

a

T2

V

P0

Other Ray-Primitive Intersections

- Cone, cylinder, ellipsoid:
- Similar to sphere

- Box
- Intersect 3 front-facing planes, return closest

- Convex polygon
- Same as triangle (check point-in-polygon algebraically)

- Concave polygon
- Same plane intersection
- More complex point-in-polygon test

Ray Casting – direct illumination

- Trace primary rays from camera
- Direct illumination from unblocked lights only

Shadows

- Shadow term tells if light sources are blocked
- Cast ray towards each light source Li
- Si = 0 if ray is blocked, Si = 1 otherwise
- 0 < Si < 1 soft shadows (hack)

Recursive Ray Tracing – second-order effects

- Also trace secondary rays from hit surfaces
- Global illumination from mirror reflection and transparency

Mirror reflections

- Trace secondary ray in mirror direction
- Evaluate radiance along secondary ray and include it into illumination model

Radiance

for mirror

reflection ray

IR

Transparency

- Trace secondary ray in direction of refraction
- Evaluate radiance along secondary ray and include it into illumination model

Radiance for

refraction ray

IT

Transparency

- Transparency coefficient is fraction transmitted
- KT = 1 for translucent object, KT = 0 for opaque
- 0 < KT < 1 for object that is semi-translucent

Transparency

Coefficient

KT

Refractive Transparency

- For thin surfaces, can ignore change in direction
- Assume light travels straight through surface

N

Qi

L

hi

hr

T

Qr

Qi

T

Summary

- Ray casting (direct Illumination)
- Usually use simple analytic approximations for light source emission and surface reflectance

- Recursive ray tracing (global illumination)
- Incorporate shadows, mirror reflections, and pure refractions

All of this is an approximation

so that it is practical to compute

More on global illumination later!

Download Presentation

Connecting to Server..