computer graphics1

Page 1

6.837 Introduction to Computer Graphics


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

2


Team • Lecturers – Frédo Durand – Barb Cutler

• Course secretary – Bryt Bradley

Overview

3


Why Computer Graphics? • • • • • • •

Movies Games CAD-CAM Simulation Virtual reality Visualization Medical imaging

Overview

4


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

5


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

6


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

8


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

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

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 )

p1b (t )

x (t )

pb2 (t )

v (t ) pb3 (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

Rendering Pipeline • For each triangle

– For each object

Send pixels to the scene

– For each projected pixel

Project scene to the pixels

Overview

20


The Rendering Pipeline • Transformations

FAR

z

z

y

• Clipping

o

y

x

NEAR

-n

o

x EYE

x

z

o

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

• 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

Overview

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

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.