65
6.837 Introduction to Computer Graphics

6.837 Introduction to Computer Graphics

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 6.837 Introduction to Computer Graphics

6.837Introduction to Computer Graphics

Page 2: 6.837 Introduction to Computer Graphics

Overview 2

Plan• Introduction

• Overview of the semester

• Administrivia

• Iterated Function Systems (fractals)

Page 3: 6.837 Introduction to Computer Graphics

Overview 3

Team• Lecturers

– Frédo Durand– Barb Cutler

• Course secretary– Bryt Bradley

Page 4: 6.837 Introduction to Computer Graphics

Overview 4

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

Page 5: 6.837 Introduction to Computer Graphics

Overview 5

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

Page 6: 6.837 Introduction to Computer Graphics

Overview 6

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

Page 7: 6.837 Introduction to Computer Graphics

Overview 7

Plan• Introduction

• Overview of the semester

• Administrivia

• Iterated Function Systems (fractals)

Page 8: 6.837 Introduction to Computer Graphics

Overview 8

Overview of the semester• Ray Tracing

– Quiz 1• Animation, modeling, IBMR

– Choice of final project• Rendering pipeline

– Quiz 2• Advanced topics

Page 9: 6.837 Introduction to Computer Graphics

Overview 9

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

Page 10: 6.837 Introduction to Computer Graphics

Overview 10

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

Page 11: 6.837 Introduction to Computer Graphics

Overview 11

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

Page 12: 6.837 Introduction to Computer Graphics

Overview 12

Ray Tracing• Original Ray-traced

image by Whitted

• Image computed using the Dali ray tracer by Henrik Wann Jensen

• Environment map by Paul Debevec

Image removed due to copyright

considerations.

Image removed due to copyright considerations.

Page 13: 6.837 Introduction to Computer Graphics

Overview 13

Overview of the semester• Ray Tracing

– Quiz 1• Animation, modeling, IBMR

– Choice of final project• Rendering pipeline

– Quiz 2• Advanced topics

Page 14: 6.837 Introduction to Computer Graphics

Animation: Keyframing

Overview 14

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.

Page 15: 6.837 Introduction to Computer Graphics

Overview 15

Particle system (PDE)• Animation

– Keyframing and interpolation– Simulation

Images removed due to copyright considerations.

Page 16: 6.837 Introduction to Computer Graphics

Overview 16

Rigid body dynamics• Simulate all external forces and torques

( )tx

( )tv( )1

b tp

( )3b tp

( )2b tp

( )2 tf

( )3 tf

( )1 tf

Page 17: 6.837 Introduction to Computer Graphics

Overview 17

Modeling• Curved surfaces• Subdivision surfaces

Images removed due to copyright considerations.

Page 18: 6.837 Introduction to Computer Graphics

Overview 18

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 Relighting

Page 19: 6.837 Introduction to Computer Graphics

Overview 19

Overview of the semester• Ray Tracing

– Quiz 1• Animation, modeling, IBMR

– Choice of final project• Rendering pipeline

– Quiz 2• Advanced topics

Page 20: 6.837 Introduction to Computer Graphics

Overview 20

The Rendering PipelineRendering Pipeline• For each triangle

– For each projected pixel

Project scene to the pixels

Ray Casting• For each pixel

– For each object

Send pixels to the scene

Page 21: 6.837 Introduction to Computer Graphics

Overview 21

The Rendering Pipeline• Transformations

• Clipping

• Rasterization

• Visibility

NEAR

EYE

FARy

zxo

x

z o

-nz

y

xo

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

Page 22: 6.837 Introduction to Computer Graphics

Overview 22

Overview of the semester• Ray Tracing

– Quiz 1• Animation, modeling, IBMR

– Choice of final project• Rendering pipeline

– Quiz 2• Advanced topics

Page 23: 6.837 Introduction to Computer Graphics

Overview 23

Textures and shading

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

Courtesy of Jeremy Birn. Used with permission.

Page 24: 6.837 Introduction to Computer Graphics

Overview 24

shadows

Image removed due to copyright considerations.

Image removed due to copyright considerations.

Page 25: 6.837 Introduction to Computer Graphics

Overview 25

Traditional Ray Tracing

Image removed due to copyright considerations.

Page 26: 6.837 Introduction to Computer Graphics

Overview 26

Ray Tracing+soft shadows

Image removed due to copyright considerations.

Page 27: 6.837 Introduction to Computer Graphics

Overview 27

Ray Tracing+caustics

Image removed due to copyright considerations.

Page 28: 6.837 Introduction to Computer Graphics

Overview 28

Global Illumination

Image removed due to copyright considerations.

Page 29: 6.837 Introduction to Computer Graphics

Overview 29

Antialiasing

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

Page 30: 6.837 Introduction to Computer Graphics

Overview 30

Questions?

Page 31: 6.837 Introduction to Computer Graphics

Overview 31

Plan• Introduction

• Overview of the semester

• Administrivia

• Iterated Function Systems (fractals)

Page 32: 6.837 Introduction to Computer Graphics

Overview 32

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

Page 33: 6.837 Introduction to Computer Graphics

Overview 33

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

Page 34: 6.837 Introduction to Computer Graphics

Overview 34

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

Page 35: 6.837 Introduction to Computer Graphics

Overview 35

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

Page 36: 6.837 Introduction to Computer Graphics

Overview 36

Project• Groups of 3• Brainstorming

– Middle of the semester• Proposal • Weekly meeting with TAs• Report & presentation

Page 37: 6.837 Introduction to Computer Graphics

Overview 37

Plan• Introduction

• Overview of the semester

• Administrivia

• Iterated Function Systems (fractals)

Page 38: 6.837 Introduction to Computer Graphics

Overview 38

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

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

∪ )(AfA i=

Image removed due to copyright considerations.

Page 39: 6.837 Introduction to Computer Graphics

Overview 39

Example: Sierpinsky triangle• 3 transforms• Translation and scale by 0.5

Page 40: 6.837 Introduction to Computer Graphics

Overview 40

RenderingFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

• Probabilistic application of one transformation

Page 41: 6.837 Introduction to Computer Graphics

Overview 41

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 42: 6.837 Introduction to Computer Graphics

Overview 42

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 43: 6.837 Introduction to Computer Graphics

Overview 43

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 44: 6.837 Introduction to Computer Graphics

Overview 44

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 45: 6.837 Introduction to Computer Graphics

Overview 45

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 46: 6.837 Introduction to Computer Graphics

Overview 46

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 47: 6.837 Introduction to Computer Graphics

Overview 47

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 48: 6.837 Introduction to Computer Graphics

Overview 48

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 49: 6.837 Introduction to Computer Graphics

Overview 49

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 50: 6.837 Introduction to Computer Graphics

Overview 50

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 51: 6.837 Introduction to Computer Graphics

Overview 51

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 52: 6.837 Introduction to Computer Graphics

Overview 52

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 53: 6.837 Introduction to Computer Graphics

Overview 53

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 54: 6.837 Introduction to Computer Graphics

Overview 54

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 55: 6.837 Introduction to Computer Graphics

Overview 55

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 56: 6.837 Introduction to Computer Graphics

Overview 56

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 57: 6.837 Introduction to Computer Graphics

Overview 57

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 58: 6.837 Introduction to Computer Graphics

Overview 58

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 59: 6.837 Introduction to Computer Graphics

Overview 59

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 60: 6.837 Introduction to Computer Graphics

Overview 60

Example: Sierpinsky triangleFor a number of random input points (x0, y0)

For j=0 to big numberPick transformation i

(xk+1, yk+1) = fi (xk, yk)Display (xk, yk)

Page 61: 6.837 Introduction to Computer Graphics

Overview 61

Other IFS• The Dragon

Page 62: 6.837 Introduction to Computer Graphics

Overview 62

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

Page 63: 6.837 Introduction to Computer Graphics

Overview 63

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 pagehttp://graphics.lcs.mit.edu/classes/6.837/F03/

Page 64: 6.837 Introduction to Computer Graphics

Overview 64

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

Page 65: 6.837 Introduction to Computer Graphics

Overview 65

Questions?