1 Plan n n Introduction Overview of the

  • Slides: 65
Download presentation
1

1

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 2

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 2

Team n n Lecturers –Frédo. Durand –Barb Cutler Course secretary –Bryt. Bradley 3

Team n n Lecturers –Frédo. Durand –Barb Cutler Course secretary –Bryt. Bradley 3

Why Computer Graphics? n n n n Movies Games CAD-CAM Simulation Virtual reality Visualization

Why Computer Graphics? n n n n Movies Games CAD-CAM Simulation Virtual reality Visualization Medical imaging 4

What you will learn in 6. 837 n n n Fundamentals of computer graphics

What you will learn in 6. 837 n n n Fundamentals of computer graphics algorithms Able to implement most applications just shown Understand how graphics APIs and the graphics hardware work 5

What you will NOT learn Software packages –CAD-CAM 66–Photoshop and other painting tools n

What you will NOT learn Software packages –CAD-CAM 66–Photoshop and other painting tools n Artistic skills n Game design n Graphics API –Although you will be exposed to Open. GL n 6

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 7

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 7

Overview of the semester n n Ray Tracing –Quiz 1 Animation, modeling, IBMR –Choice

Overview of the semester n n Ray Tracing –Quiz 1 Animation, modeling, IBMR –Choice of final project Rendering pipeline –Quiz 2 Advanced topics 8

Ray Casting n For every pixel construct a ray from the eye –For every

Ray Casting n For every pixel construct a ray from the eye –For every object in the scene Find intersection with the ray Keep if closest 9

Ray Casting n For every pixel construct a ray from the eye –For every

Ray Casting n For every pixel construct a ray from the eye –For every object in the scene • Find intersection with the ray • Keep if closest 10

Ray Tracing Shade (interaction of light and material) • Secondary rays (shadows, reflection, refraction

Ray Tracing Shade (interaction of light and material) • Secondary rays (shadows, reflection, refraction 11

Ray Tracing n n n Original Ray-traced image by Whitted Image computed using the

Ray Tracing n n n Original Ray-traced image by Whitted Image computed using the Dali ray tracer by Henrik. Wann Jense Environment map by Paul Debevec Image removed due to copy right considerations. Image removed due to copyright considerations. 12

Overview of the semester Ray Tracing –Quiz 1 n Animation, modeling, IBMR –Choice of

Overview of the semester Ray Tracing –Quiz 1 n Animation, modeling, IBMR –Choice of final project n Rendering pipeline –Quiz 2 n Advanced topics n 13

Animation: Keyframing 14

Animation: Keyframing 14

Particle system (PDE) Animation –Keyframingand interpolation –Simulation n Images removed due to copyright considerations.

Particle system (PDE) Animation –Keyframingand interpolation –Simulation n Images removed due to copyright considerations. 15

Rigid body dynamics n Simulate all external forces and torques 16

Rigid body dynamics n Simulate all external forces and torques 16

Modeling n n Curved surfaces Subdivision surfaces Images removed due to copyright considerations. 17

Modeling n n Curved surfaces Subdivision surfaces Images removed due to copyright considerations. 17

Image-based Rendering n n Input image Use images as inputs and representation E. g.

Image-based Rendering n n Input image Use images as inputs and representation E. g. Image-based modeling and photo editing. Boh, Chen, Dorsey and Durand 2001 New viewpoint Relighting 18

Overview of the semester Ray Tracing _Quiz 1 n Animation, modeling, IBMR –Choice of

Overview of the semester Ray Tracing _Quiz 1 n Animation, modeling, IBMR –Choice of final project n Rendering pipeline –Quiz 2 n Advanced topics n 19

The Rendering Pipeline Ray Casting n For each pixel –For each object n Send

The Rendering Pipeline Ray Casting n For each pixel –For each object n Send pixels to the scene Rendering Pipeline n For each triangle –For each projected pixel n Project scene to the pixels 20

The Rendering Pipeline n n Transformation s Clipping Courtesy of Leonard Mc. Millan, Computer

The Rendering Pipeline n n Transformation s Clipping Courtesy of Leonard Mc. Millan, Computer Science at the University of North Carolina in Chapel Hill. Used with permission n Rasterization n Visibility 21

Overview of the semester Ray Tracing –Quiz 1 n Animation, modeling, IBMR –Choice of

Overview of the semester Ray Tracing –Quiz 1 n Animation, modeling, IBMR –Choice of final project n Rendering pipeline –Quiz 2 n Advanced topics n 22

Textures and shading For more info on the computer artwork of Jeremy Birn see

Textures and shading For more info on the computer artwork of Jeremy Birn see http: //www. 3 drender. com/jbirn/productions. html Courtesy of Jeremy Birn. Used with permission. 23

Shadows Image removed due to copyright considerations. 24

Shadows Image removed due to copyright considerations. 24

Traditional Ray Tracing Image removed due to copyright considerations. 25

Traditional Ray Tracing Image removed due to copyright considerations. 25

Ray Tracing+soft shadows Image removed due to copyright considerations. 26

Ray Tracing+soft shadows Image removed due to copyright considerations. 26

Ray Tracing+caustics Image removed due to copyright considerations. 27

Ray Tracing+caustics Image removed due to copyright considerations. 27

Global Illumination Image removed due to copyright considerations. 28

Global Illumination Image removed due to copyright considerations. 28

Antialiasing 29 Courtesy of Leonard Mc. Millan, Computer Science at the University of North

Antialiasing 29 Courtesy of Leonard Mc. Millan, Computer Science at the University of North Carolina in Chapel Hill. Used with perm

Questions? 30

Questions? 30

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 31

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 31

Administrivia n n Web: http: //graphics. csail. mit. edu/classes/6. 8 37/F 03/ Lectures–Slides will

Administrivia n n Web: http: //graphics. csail. mit. edu/classes/6. 8 37/F 03/ Lectures–Slides will be online Office hours–Posted on the web Review sessions–C++, linear algebra 32

Prerequisites n n Not enforced 18. 06 Linear Algebra –Simple linear algebra, vectors, matrices,

Prerequisites n n Not enforced 18. 06 Linear Algebra –Simple linear algebra, vectors, matrices, basis, solving systems of equations, inversion 6. 046 J Algorithms –Orders of growth, bounds, sorting, trees C++ –All assignments are in C++ –Review/introductory session Monday 33

Grading policy n n n Assignments: 40% –Must be completed individually –No late policy.

Grading policy n n n Assignments: 40% –Must be completed individually –No late policy. Stamped by stellar. 2 Quizzes: 20% – 1 hour in class Final project: 40% –Groups of 3, single grade for the group –Initial proposal: 3 -5 pages –Steady weekly progress –Final report & presentation –Overall technical merit 34

Assignments n n n Turn in code AND executable We will watch code style

Assignments n n n Turn in code AND executable We will watch code style Platform –Windows –Linux Collaboration policy: –You can chat, but code on your Not late police 35

Project n n n Groups of 3 Brainstorming –Middle of the semester Proposal Weekly

Project n n n Groups of 3 Brainstorming –Middle of the semester Proposal Weekly meeting with TAs Report & presentation 36

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 37

Plan n n Introduction Overview of the semester Administrivia Iterated Function Systems (fractals) 37

IFS: self-similar fractals n n Described by a set of n transformations fi –Capture

IFS: self-similar fractals n n Described by a set of n transformations fi –Capture the self-similarity –Affine transformations –Contractions (reduce distances) An attractor is a fixed A=∪fi(A) Image removed due to copyright considerations. Image from http: //spanky. triumf. ca/www/fractal-info/ifs-type. htm 38

Example: Sierpinsky triangle n n 3 transforms Translation and scale by 0. 5 39

Example: Sierpinsky triangle n n 3 transforms Translation and scale by 0. 5 39

Rendering n For a number of random input (x 0, y 0) For j=0

Rendering n For a number of random input (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) points • Probabilistic application of one transformation 40

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 41

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 42

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 43

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 44

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 45

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 46

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 47

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 48

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 49

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 50

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 51

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 52

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yyk+1) = fi(xk, yk) Display (xk, yk) 53

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk Display (xk, yk) 54

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 55

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 56

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 57

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 58

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 59

Example: Sierpinsky triangle For a number of random input points (x 0, y 0)

Example: Sierpinsky triangle For a number of random input points (x 0, y 0) For j=0 to big number Pick transformation I (xk+1, yk+1) = fi(xk, yk) Display (xk, yk) 60

Other IFS The Dragon 61

Other IFS The Dragon 61

Application: fractal compression n n Exploit the self-similarity in an image E. g. http:

Application: fractal compression n n Exploit the self-similarity in an image E. g. http: //fractales. inria. fr/index. php? page=img_c ompression 62

Assignment: IFS n n Write a C++ IFS class Get familiar with –vector and

Assignment: IFS n n Write a C++ IFS class Get familiar with –vector and matrix library –Image library Due Wednesday at 11: 59 pm Check on the web pagehttp: //graphics. lcs. mit. edu/classes/ 6. 837/F 03/ 63

Review/introduction session: C++ n Monday 7: 30 -9 64

Review/introduction session: C++ n Monday 7: 30 -9 64

Questions? 65

Questions? 65