3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas...
Transcript of 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas...
![Page 1: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/1.jpg)
1
3D Rendering
Thomas Funkhouser
Princeton University
C0S 426, Fall 2000
Course Syllabus
I. Image processing
II. Rendering
III. Modeling
IV. AnimationImage Processing
(Rusty Coleman, CS426, Fall99)
Modeling(Dennis Zorin, CalTech) Animation
(Angel, Plate 1)
Rendering(Michael Bostock, CS426, Fall99)
![Page 2: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/2.jpg)
2
Where Are We Now?
I. Image processing
II. Rendering
III. Modeling
IV. AnimationImage Processing
(Rusty Coleman, CS426, Fall99)
Modeling(Dennis Zorin, CalTech) Animation
(Angel, Plate 1)
Rendering(Michael Bostock, CS426, Fall99)
Rendering
• Generate an image from geometric primitives
Rendering
Geometric Primitives
Raster Image
![Page 3: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/3.jpg)
3
3D Rendering Example
What issues must be addressed by a 3D rendering system?
Overview
• 3D scene representation
• 3D viewer representation
• Visible surface determination
• Lighting simulation
![Page 4: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/4.jpg)
4
Overview
» 3D scene representation
• 3D viewer representation
• Visible surface determination
• Lighting simulation
How is the 3D scenedescribed in a computer?
3D Scene Representation
• Scene is usually approximated by 3D primitives� Point� Line segment� Polygon� Polyhedron� Curved surface� Solid object� etc.
![Page 5: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/5.jpg)
5
3D Point
• Specifies a location� Represented by three coordinates� Infinitely small
typedef struct {Coordinate x;Coordinate y;Coordinate z;
} Point;(x,y,z)
3D Vector
• Specifies a direction and a magnitude Represented by three coordinates Magnitude ||V|| = sqrt(dxdx + dydy + dzdz)� Has no location
• Dot product of two 3D vectors� V1·V2 = dx1dx2 + dy1dy2 + dz1dz2 V1·V2 = ||V1 || || V2 || cos(Θ)
typedef struct {Coordinate dx;Coordinate dy;Coordinate dz;
} Vector;
(dx1,dy1,dz1)
(dx2,dy2 ,dz2)Θ
![Page 6: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/6.jpg)
6
3D Line
• Line segment with both endpoints at infinity� Parametric representation:
» P = P1 + t V, (-∞ < t < ∞)
P1
typedef struct {Point P1;Vector V;
} Line;
V
3D Ray
• Line segment with one endpoint at infinity� Parametric representation:
» P = P1 + t V, (0 <= t < ∞)
typedef struct {Point P1;Vector V;
} Ray;
P1
V
![Page 7: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/7.jpg)
7
3D Line Segment
• Specifies a linear combination of two points� Parametric representation:
» P = P1 + t (P2 - P1), (0 ≤ t ≤ 1)
typedef struct {Point P1;Point P2;
} Segment;
P1
P2
3D Plane
• Specifies a linear combination of three points� Implicit representation:
» P·N + d = 0, or» ax + by + cz + d = 0
typedef struct {Vector N;Distance d;
} Plane;P1
Origin
N = (a,b,c)
d
P3P2
![Page 8: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/8.jpg)
8
3D Polygon
• Area “inside” a sequence of coplanar points� Triangle� Quadrilateral� Convex� Star-shaped� Concave� Self-intersecting� Holes
typedef struct {Point *points;int npoints;
} Polygon;
Points are in counter-clockwise order
3D Sphere
• All points at distance “r” from point “(cx, cy, cz)”� Implicit representation:
» (x - cx)2 + (y - cy)2 + (z - cz)2 = r 2� Parametric representation:
» x = r cos(φ) cos(Θ)» y = r cos(φ) sin(Θ)» z = r sin(φ)
typedef struct {Point center;Distance radius;
} Sphere;
r
![Page 9: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/9.jpg)
9
3D Geometric Primitives
• More detail on 3D modeling later in course� Point� Line segment� Polygon� Polyhedron� Curved surface Solid object! etc.
H&B Figure 10.46
Overview
• 3D scene representation
» 3D viewer representation
• Visible surface determination
• Lighting simulation
How is the viewing devicedescribed in a computer?
![Page 10: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/10.jpg)
10
Camera Models
• The most common model is pin-hole camera" All captured light rays arrive along paths toward focal
point without lens distortion (everything is in focus)# Sensor response proportional to radiance
• Other models consider ...$ Depth of field% Motion blur& Lens distortion
View plane
Eye position(focal point)
Camera Parameters
• Position' Eye position (px, py, pz)
• Orientation( View direction (dx, dy, dz)) Up direction (ux, uy, uz)
• Aperature* Field of view (xfov, yfov)
• Film plane+ “Look at” point, View plane normal
- . /1032
4151687
9;:=< . - > 6 2 . ?1@
Eye Position
ACB D1EGF B H DJI8K B L1M
ViewPlane
“Look at”Point
![Page 11: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/11.jpg)
11
Demo
View Frustum
Right
BackTowards
Up
Overview
• 3D scene representation
• 3D viewer representation
» Visible surface determination
• Lighting simulation
How can the front-most surfacebe found with an algorithm?
![Page 12: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/12.jpg)
12
Visible Surface Determination
• The color of each pixel on the view planedepends on the radiance emanating fromvisible surfaces
View plane
Eye position
Simplest methodis ray casting
Rays through
view plane
Ray Casting
• For each sample …N Construct ray from eye position through view planeO Find first surface intersected by ray through pixelP Compute color of sample based on surface radiance
![Page 13: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/13.jpg)
13
Ray Casting
• For each sample …Q Construct ray from eye position through view planeR Find first surface intersected by ray through pixelS Compute color of sample based on surface radiance
Visible Surface Determination
• For each sample …T Construct ray from eye position through view planeU Find first surface intersected by ray through pixelV Compute color of sample based on surface radiance
More efficient algorithmsutilize spatial coherence!
![Page 14: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/14.jpg)
14
Rendering Algorithms
• Rendering is a sampling and reconstructionproblem!
Overview
• 3D scene representation
• 3D viewer representation
• Visible surface determination
» Lighting simulation
How do we compute theradiance for each sample ray?
![Page 15: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/15.jpg)
15
Lighting Simulation
• Lighting parametersW Light source emissionX Surface reflectanceY Atmospheric attenuationZ Camera response
NN
Camera
Surface
LightSource
Lighting Simulation
• Direct illumination[ Ray casting\ Polygon shading
• Global illumination] Ray tracing^ Monte Carlo methods_ Radiosity methods
More on these methods later!
NN
Camera
Surface
LightSource
N
![Page 16: 3D Rendering - Princeton University Computer Science · 2000-09-27 · 1 3D Rendering Thomas Funkhouser Princeton University C0S 426, Fall 2000 Course Syllabus I. Image processing](https://reader030.fdocuments.us/reader030/viewer/2022040914/5e8c2141ad03770f633594c3/html5/thumbnails/16.jpg)
16
Summary
• Major issues in 3D rendering` 3D scene representationa 3D viewer representationb Visible surface determinationc Lighting simulation
• Concluding noted Accurate physical simulation
is complex and intractable» Rendering algorithms apply
many approximations to simplifyrepresentations and computations
Next Week
• Ray intersections
• Light and reflectance models
• Indirect illumination
For assignment #2, you will write a ray tracer!
Render Boy(R. Kalnins & H. Oki,
Assignment 5, CS 426, Fall98, Princeton University)