Image Synthesis

Preview:

DESCRIPTION

Image Synthesis. Ray- Tracing – A Quick review. Colored rays. Bouncing rays. Forward or backward. Tracing photons out from each light source would lead to an excellent picture of the scene But most photons will never hit the eye - PowerPoint PPT Presentation

Citation preview

computer graphics & visualization

Image Synthesis

Ray-Tracing – A Quick review

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Colored rays• Ray is a straight path followed by a photon of light

• Multiple photons can travel along the same ray at the same time

• Need to know the color of photons hitting the eye along some path

• Photons originate at some light source and bounce around the geometry in the scene until they are either completely absorbed or hit the eye

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Bouncing rays

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Forward or backwardTracing photons out from each light source would lead to an excellent picture of the sceneBut most photons will never hit the eye

We want to know what photons certainly contribute to the imageIf we consider a pixel on the image plane, we know where photons hitting that pixel must be coming fromTherefore, we trace rays backwards from the eye into the scene

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

The ray tracing camera• Infinite viewing frustum

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray tracing• The basic ray-tracing method– Recursive search for paths to the light source

• Interaction with matter• Point-wise evaluation of an illumination model• Shadows, reflection, transparency

ViewpointPoint light

source

R2

R1

R3N2

N1

N3

T1

T2

L2 L1

L3

N: surface normals R: reflected rays L: shadow rays T: transmitted rays

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray tracing• The basic ray-tracing method

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray tracing• Recursive ray traversal results in a tree-like

computation order– Depth of recursion can be arbitrary– More work in branches but less contribution to the final

image due to absorption– I = Idirect + ks Ireflected + kt Irefracted

– Idirect = Iambiant + Idiffuse + Ispecular

Viewpoint

L1

L2

R1 T1

R2 R3 T2

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray tracing• The basic ray-tracing program– Define the camera ( Cam(o,d,f,x,y,X,Y) )

• O: point of view• D: viewing direction• f: focal distance (distance to the view plane)• x,y: size of the image plane• Up vector U (orientation of the image plane)

– Define the viewport• X,Y: resolution of the viewport (the pixel raster)

– Sampling the image plane with at least one ray per pixel

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray tracingSampling the image plane

For (each pixel ) {Define the ray from the viewpoint through that pixelTrace the ray through the scene [

compute ray-object intersectionsrecursively accumulate object colors along the ray

]Set accumulated color as the pixel color

}

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray tracing• Sampling the image plane– A continuous sphere sampling at varying viewport

resolution

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-object intersectionsImplicit surfaces

– Implicit equations implicitely define a set of points on the surface by the equation

F([x,y,z]T) = 0– For a possible intersection point it must hold:

f(o + td) = 0– Example: ray-plane(Ax+By+Cz+D = 0) intersection

A(ox+tdx)+B(oy+tdy)+C(oz+tdz)+D=0

Þ t = -(Pn o + D) / (Pn d)

Check the denominator for ray || plane

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-object intersectionsFor implicit surfaces the normal at the intersection point is given by

n = f(p) = ( f(p)/x, f(p)/y, f(p)/z )

Example: sphere

(x-cx)2 +(y-cy)2 +(z-cz)2 - R2 = 0

f(p)/x = 2(x-cx)

f(p)/y = 2(y-cy)

f(p)/z = 2(z-cz)

n = 2(p-c), the vector from the center to the point

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-object intersectionsRay-sphere(c,R) intersection

– Implicit equation of the sphere(x-cx)2 +(y-cy)2 +(z-cz)2 - R2 = 0, which is equal to (p-c)(p-c) – R2 = 0

– With the parametric ray:(o+t d – c) (o+t d – c) – R2 = 0

Þ (dd)t2 + 2d(o-c)t + (o-c)(o-c) – R2 = 0ÞQuadratic equation in tÞDiscriminant determines the number of solutions

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-object intersectionsParametric surfaces

– A mapping from R2(u,v) to R3(x,y,z) x = f(u,v), y = g(u,v), z = h(u,v)

A parametric unit sphere:

: [0:2pi] Azimuth: [0:pi] Zenith

x = cos()*sin()y = sin()*sin()z = cos()

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-object intersectionsParametric surfaces

– Intersecting the ray with a parametric surfaceox + t dx = f(u,v)oy + t dy = g(u,v)oz + t dz = h(u,v)

-> Yields 3 equations and 3 unknowns -> solve it-> Might be complicated for non-simple f,g and h

– The normal is given byN(u,v) = (f/u, g/u, h/u) X (f/v, g/v, h/v)

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-object intersectionsRay-triangle intersection– Given a triangle defined by the three points A, B and C– Any point within the triangle can be defined by means of

barycentric coordinates u,v,wP = uA+vB+wC, with u+v+w=1 and u,v,w > 0

P

B

A C

(u,v,w)Aa

Ab

Ac

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Given a Ray …• … R(t) by ist origin o and direction d

R(t)=o+td

• Intersection:

(1-u-v)V0+uV1+vV2=O+tD

-tD+ uV1-uV0+vV2-vV0=O-V0

[-D,V1-V0, V2-V0][t,u,v]T=O-V0

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Geometric Interpretation[-D,V1-V0, V2-V0][t,u,v]T=O-V0

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Solving the System of Equations

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Implementationbool IntersectTriangle( const VECTOR3& orig, const VECTOR3& dir, VECTOR3& v0, VECTOR3& v1, VECTOR3& v2, float* t, float* u, float* v ){ // Find vectors for two edges sharing vert0 VECTOR3 edge1 = v1 - v0; VECTOR3 edge2 = v2 - v0;

// Begin calculating determinant - also used to calculate U parameter VECTOR3 pvec; Cross( &pvec, &dir, &edge2 );  // If determinant is near zero, ray lies in plane of triangle float det = Dot( &edge1, &pvec );  VECTOR3 tvec; if( det > 0 ) tvec = orig - v0; else { tvec = v0 - orig; det = -det; }  if( det < 0.0001f ) return false;  // Calculate U parameter and test bounds *u = Dot( &tvec, &pvec ); if( *u < 0.0f || *u > det ) return false; // Prepare to test V parameter VECTOR3 qvec; Cross( &qvec, &tvec, &edge1 );  // Calculate V parameter and test bounds *v = Dot( &dir, &qvec ); if( *v < 0.0f || *u + *v > det ) return false; // Calculate t, scale parameters, ray intersects triangle *t = Dot( &edge2, &qvec ); float fInvDet = 1.0f / det; *t *= fInvDet; *u *= fInvDet; *v *= fInvDet;

return true;}

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-tracing shadows • Shadow rays– For each ray-object intersection cast a ray toward

the light sources– Check for intersections in-between object and light

source• Take care of finite-precision arithmetic• Shadow ray might intersect object it originates from at t

= – Acceleration by means of pre-computed shadow

maps or shadow volumes (to be discussed later)

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-tracing shadows• Soft-shadows (Penumbras)– Occur where an area light source is partially

occluded

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Ray-tracing shadows• Soft-shadows (Penumbras)– Reflected intensity is proportional to the solid angle of the

visible portion of the light• Complex computation

– Distribute multiple shadow rays across the region

– Weight shadow contributions

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Object representationPolygonal approximation of continuous objects

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Object representationPolygonal approximation of continuous objects– Approximation of shape by polygonal patches– Modelling by hand, scanning, surface evaluation

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Object representation

• For display we need:

• The objects shape• i.e. geometric representation including normal• 3D Object coordinates (vertices)• 3D normal vectors• Topology (connectivity information)

• The objects appearance • i.e. material properties like color reflection, texture etc.

Recommended