10
CSCI-6962 Advanced Computer Graphics CSCI-6962 Advanced Computer Graphics Cutler 2 Luxo Jr. Pixar Animation Studios, 1986 Director: John Lasseter CSCI-6962 Advanced Computer Graphics Cutler 3 Plan • Introduction Overview of the Semester • Administrivia Iterated Function Systems (Fractals) CSCI-6962 Advanced Computer Graphics Cutler 4 Introductions Barb Cutler [email protected] http://www.cs.rpi.edu/~cutler/ http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/F05/info.html Who are you? Name, year/degree, graphics background (if any), research interests, & something fun, interesting or unusual about yourself CSCI-6962 Advanced Computer Graphics Cutler 5 Why Computer Graphics? • Movies • Games • Simulation • CAD-CAM • Architecture Virtual Reality • Visualization Medical Imaging CSCI-6962 Advanced Computer Graphics Cutler 6 Movies

Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

Embed Size (px)

Citation preview

Page 1: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

1

CSCI-6962 AdvancedComputer Graphics

CSCI-6962 Advanced Computer Graphics Cutler 2

Luxo Jr.

• Pixar Animation Studios, 1986• Director: John Lasseter

CSCI-6962 Advanced Computer Graphics Cutler 3

Plan

• Introduction

• Overview of the Semester

• Administrivia

• Iterated Function Systems (Fractals)CSCI-6962 Advanced Computer Graphics Cutler 4

Introductions

• Barb [email protected]://www.cs.rpi.edu/~cutler/

http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/F05/info.html

• Who are you?Name, year/degree, graphics background (if any),research interests, & something fun, interesting or unusual about yourself

CSCI-6962 Advanced Computer Graphics Cutler 5

Why Computer Graphics?

• Movies• Games• Simulation• CAD-CAM• Architecture• Virtual Reality• Visualization• Medical Imaging

CSCI-6962 Advanced Computer Graphics Cutler 6

Movies

Page 2: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

2

CSCI-6962 Advanced Computer Graphics Cutler 7

Games

CSCI-6962 Advanced Computer Graphics Cutler 8

Simulation

CSCI-6962 Advanced Computer Graphics Cutler 9

CAD-CAM & Design

CSCI-6962 Advanced Computer Graphics Cutler 10

Architecture

CSCI-6962 Advanced Computer Graphics Cutler 11

Virtual Reality

CSCI-6962 Advanced Computer Graphics Cutler 12

Visualization

Page 3: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

3

CSCI-6962 Advanced Computer Graphics Cutler 13

Medical Imaging

CSCI-6962 Advanced Computer Graphics Cutler 14

What we will learn in CSCI-6962

• Advanced topics computer graphics algorithms

• How to tackle the challengesin many of the applications just shown

CSCI-6962 Advanced Computer Graphics Cutler 15

What we will NOT cover

• Software packages– CAD-CAM– Photoshop and other painting tools

• Artistic skills• Game design• Graphics API

– Although you will be exposed to OpenGL

CSCI-6962 Advanced Computer Graphics Cutler 16

Questions?

CSCI-6962 Advanced Computer Graphics Cutler 17

Plan

• Introduction

• Overview of the Semester

• Administrivia

• Iterated Function Systems (Fractals)CSCI-6962 Advanced Computer Graphics Cutler 18

Overview of the Semester

• advanced ray tracing: global illumination, photon mapping, subsurface scattering

• mesh generation and simplification

• subdivision surfaces• appearance models

• volumetric modeling• procedural modeling• weathering• simulation: particle

systems, FEM, cloth• texture synthesis • & more …

Page 4: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

4

CSCI-6962 Advanced Computer Graphics Cutler 19

Mesh Simplification

Hoppe “Progressive Meshes” SIGGRAPH 1996

CSCI-6962 Advanced Computer Graphics Cutler 20

Mesh Generation & Volumetric Modeling

CSCI-6962 Advanced Computer Graphics Cutler 21

Modeling – Subdivision Surfaces

http://grail.cs.washington.edu/projects/subdivision/

CSCI-6962 Advanced Computer Graphics Cutler 22

Particle system (PDE)

CSCI-6962 Advanced Computer Graphics Cutler 23

Physical Simulation

• Rigid Body Dynamics• Collision Detection• Fracture• Deformation ( )tx

( )tv( )1

b tp

( )3b tp

( )2b tp

( )2 tf

( )3 tf

( )1 tf

CSCI-6962 Advanced Computer Graphics Cutler 24

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 5: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

5

CSCI-6962 Advanced Computer Graphics Cutler 25

Ray Tracing• Shade (interaction of

light and material)• Secondary rays

(shadows, reflection, refraction)

Original Ray-traced image by Whitted

CSCI-6962 Advanced Computer Graphics Cutler 26

Traditional Ray Tracing

CSCI-6962 Advanced Computer Graphics Cutler 27

Ray Tracing + Soft Shadows

CSCI-6962 Advanced Computer Graphics Cutler 28

Ray Tracing + Caustics

CSCI-6962 Advanced Computer Graphics Cutler 29

Global Illumination

CSCI-6962 Advanced Computer Graphics Cutler 30

Appearance Models

θiθr

φi φr

Henrik Wann Jensen

Matusik

Page 6: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

6

CSCI-6962 Advanced Computer Graphics Cutler 31

Subsurface Scattering

Surface

Jensen et.al 01

CSCI-6962 Advanced Computer Graphics Cutler 32

Questions?

CSCI-6962 Advanced Computer Graphics Cutler 33

Plan

• Introduction

• Overview of the Semester

• Administrivia

• Iterated Function Systems (Fractals)CSCI-6962 Advanced Computer Graphics Cutler 34

Prerequisites

• Not enforced• Linear Algebra

– vectors, matrices, basis, solving systems of equations• Algorithms

– Orders of growth, bounds, sorting, trees• All assignments are in C++• Previous coursework or experience in

Computer Graphics an asset

CSCI-6962 Advanced Computer Graphics Cutler 35

Grading Policy

• Assignments: 40%– 4 programming assignments– Must be completed individually

• Final Project: 30%• Quizzes: 15%

– Tuesday, Oct 18th & Tuesday, Nov 17th (in class) • Participation & Presentation: 15%

– Lead discussion of one paper during the semester– Present your final project on Friday Dec 9th (in class)

CSCI-6962 Advanced Computer Graphics Cutler 36

Assignments• Turn in code and executable (Linux or Windows… )• Coding style important

– Be concise & efficient, and comment your code• Collaboration policy:

– You can chat, but code on your own– Acknowledge your collaborators!

• Late policy:– Due Thursdays @ 11:59pm– Penalized 25% per day late– Extensions considered only if requested >1 week

before due date

Page 7: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

7

CSCI-6962 Advanced Computer Graphics Cutler 37

Final Project

• ~ 1 month effort• Significant extension of previous assignment OR

Exploration of other topic discussed in class• Can be a component of a research project

outside of class• Suggestions throughout the semester• I'll review your proposal to make sure

the scope is appropriate

CSCI-6962 Advanced Computer Graphics Cutler 38

Office Hours

• Tuesdays & Fridays @ 1:30 (after lecture)• Send email to make an appointment

for some other time

CSCI-6962 Advanced Computer Graphics Cutler 39

Questions

CSCI-6962 Advanced Computer Graphics Cutler 40

Plan

• Introduction

• Overview of the Semester

• Administrivia

• Iterated Function Systems (Fractals)

CSCI-6962 Advanced Computer Graphics Cutler 41

Iterated Function Systems (IFS)

• Capture self-similarity• Contraction

(reduce distances)• An attractor is a

fixed point

Υ )(AfA i=

CSCI-6962 Advanced Computer Graphics Cutler 42

Example: Sierpinski Triangle• Described by a set of n affine transformations • In this case, n = 3

– translate & scale by 0.5

Page 8: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

8

CSCI-6962 Advanced Computer Graphics Cutler 43

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

CSCI-6962 Advanced Computer Graphics Cutler 44

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

CSCI-6962 Advanced Computer Graphics Cutler 45

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

CSCI-6962 Advanced Computer Graphics Cutler 46

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

CSCI-6962 Advanced Computer Graphics Cutler 47

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

CSCI-6962 Advanced Computer Graphics Cutler 48

for “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

Example: Sierpinski Triangle

Page 9: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

9

CSCI-6962 Advanced Computer Graphics Cutler 49

for “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

Example: Sierpinski Triangle

CSCI-6962 Advanced Computer Graphics Cutler 50

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

CSCI-6962 Advanced Computer Graphics Cutler 51

Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)

for j=0 to num_iters

randomly pick transformation i

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

display (xk, yk)

Increasing the number of iterations

CSCI-6962 Advanced Computer Graphics Cutler 52

Another IFS: The Dragon

CSCI-6962 Advanced Computer Graphics Cutler 53

3D IFS in OpenGL

GL_QUADS

GL_POINTS

CSCI-6962 Advanced Computer Graphics Cutler 54

Application: Fractal Compression

• Exploit the self-similarity in an image

Compressed using Fractal Photo Lab

Page 10: Director: John Lasseter CSCI-6962 Advanced Computer Graphicscutler/classes/advancedgraphics/F05/lectures/01... · • Director: John Lasseter CSCI-6962 Advanced Computer Graphics

10

CSCI-6962 Advanced Computer Graphics Cutler 55

Assignment 1: OpenGL Warmup

• Get familiar with:– C++ environment– OpenGL– Transformations– simple Vector, Matrix

& Image classes• Have Fun!

• Due Thursday Sept 8th at 11:59pm

CSCI-6962 Advanced Computer Graphics Cutler 56

Questions?