0% found this document useful (0 votes)
43 views

6.837 Introduction To Computer Graphics

Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

6.837 Introduction To Computer Graphics

Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

6.

837 Introduction to Computer Graphics

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

Team
Lecturers
Frdo Durand Barb Cutler

Course secretary
Bryt Bradley

Overview

Why Computer Graphics?


Movies Games CAD-CAM Simulation Virtual reality Visualization Medical imaging

Overview

What you will learn in 6.837


Fundamentals of computer graphics algorithms Able to implement most applications just shown Understand how graphics APIs and the graphics hardware work

Overview

What you will NOT learn


Software packages
CAD-CAM Photoshop and other painting tools

Artistic skills Game design Graphics API


Although you will be exposed to OpenGL

Overview

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

Overview of the semester


Ray Tracing
Quiz 1

Animation, modeling, IBMR


Choice of final project

Rendering pipeline
Quiz 2

Advanced topics

Overview

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

Overview

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

Overview

10

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

Overview

11

Ray Tracing
Original Ray-traced image by Whitted
Image removed due to copyright considerations.

Image computed using the Dali ray tracer by Henrik Wann Jensen Environment map by Paul Debevec

Image removed due to copyright considerations.

Overview

12

Overview of the semester


Ray Tracing
Quiz 1

Animation, modeling, IBMR


Choice of final project

Rendering pipeline
Quiz 2

Advanced topics

Overview

13

Animation: Keyframing

Image adapted from: Lasseter, John. "Principles of Traditional Animation applied to 3D Computer Animation." ACM SIGGRAPH Computer Graphics 21, no. 4 (July 1987): 35-44.

Squash & Stretch in Luxo Jr.'s Hop

Image adapted from: Lasseter, John. "Principles of Traditional Animation applied to 3D Computer Animation." ACM SIGGRAPH Computer Graphics 21, no. 4 (July 1987): 35-44.

Overview

14

Particle system (PDE)


Animation
Keyframing and interpolation Simulation

Images removed due to copyright considerations.

Overview

15

Rigid body dynamics


Simulate all external forces and torques f2 (t ) f1 (t )
pb 2 (t )

b p1 (t )

x (t )

v (t )
pb 3 (t )

f3 (t )

Overview

16

Modeling
Curved surfaces Subdivision surfaces

Images removed due to copyright considerations.

Overview

17

Image-based Rendering
Use images as inputs and representation
E.g. Image-based modeling and photo editing Boh, Chen, Dorsey and Durand 2001

Input image

New viewpoint
Overview

Relighting
18

Overview of the semester


Ray Tracing
Quiz 1

Animation, modeling, IBMR


Choice of final project

Rendering pipeline
Quiz 2

Advanced topics

Overview

19

The Rendering Pipeline


Ray Casting For each pixel
For each object

Rendering Pipeline For each triangle


For each projected pixel

Send pixels to the scene

Project scene to the pixels

Overview

20

The Rendering Pipeline


Transformations Clipping Rasterization
Courtesy of Leonard McMillan, Computer Science at the University of North Carolina in Chapel Hill. Used with permission
FAR

y
NEAR

z y o x

-n

x
EYE

Visibility

Overview

21

Overview of the semester


Ray Tracing
Quiz 1

Animation, modeling, IBMR


Choice of final project

Rendering pipeline
Quiz 2

Advanced topics

Overview

22

Textures and shading

For more info on the computer artwork of Jeremy Birn see http://www.3drender.com/jbirn/productions.html

Courtesy of Jeremy Birn. Used with permission.


Overview 23

shadows

Image removed due to copyright considerations.

Image removed due to copyright considerations.

Overview

24

Traditional Ray Tracing

Image removed due to copyright considerations.

Overview

25

Ray Tracing+soft shadows

Image removed due to copyright considerations.

Overview

26

Ray Tracing+caustics

Image removed due to copyright considerations.

Overview

27

Global Illumination

Image removed due to copyright considerations.

Overview

28

Antialiasing

Courtesy of Leonard McMillan, Computer Science at the University of North Carolina in Chapel Hill. Used with permission.

Overview

29

Questions?

Overview

30

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

Administrivia
Web: http://graphics.csail.mit.edu/classes/6.837/F03/ Lectures
Slides will be online

Office hours
Posted on the web

Review sessions
C++, linear algebra

Overview

32

Prerequisites
Not enforced 18.06 Linear Algebra
Simple linear algebra, vectors, matrices, basis, solving systems of equations, inversion

6.046J Algorithms
Orders of growth, bounds, sorting, trees

C++
All assignments are in C++ Review/introductory session Monday
Overview 33

Grading policy
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
Overview 34

Assignments
Turn in code AND executable We will watch code style Platform
Windows Linux

Collaboration policy:
You can chat, but code on your own

No late policy
Overview 35

Project
Groups of 3 Brainstorming
Middle of the semester

Proposal Weekly meeting with TAs Report & presentation

Overview

36

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

IFS: self-similar fractals


Described by a set of n transformations fi
Capture the self-similarity Affine transformations Contractions (reduce distances)

An attractor is a fixed point

A = f i ( A)
Image removed due to copyright considerations.

Image from http://spanky.triumf.ca/www/fractal-info/ifs-type.htm Overview 38

Example: Sierpinsky triangle


3 transforms Translation and scale by 0.5

Overview

39

Rendering
For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Probabilistic application of one transformation

Overview

40

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

41

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

42

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

43

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

44

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

45

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

46

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

47

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

48

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

49

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

50

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

51

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

52

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

53

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

54

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

55

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

56

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

57

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

58

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

59

Example: Sierpinsky triangle


For a number of random input points (x0, y0) For j=0 to big number Pick transformation i (xk+1, yk+1) = fi (xk, yk) Display (xk, yk)

Overview

60

Other IFS
The Dragon

Overview

61

Application: fractal compression


Exploit the self-similarity in an image
E.g. http://fractales.inria.fr/index.php?page=img_compression

Overview

62

Assignment: IFS
Write a C++ IFS class Get familiar with
vector and matrix library Image library

Due Wednesday at 11:59pm Check on the web page http://graphics.lcs.mit.edu/classes/6.837/F03/


Overview 63

Review/introduction session: C++


Monday 7:30-9

Overview

64

Questions?

Overview

65

You might also like