introduction to computer graphics - computing science - simon

29
Introduction to Computer Graphics Torsten Möller TASC 8021 778-782-2215 [email protected] www.cs.sfu.ca/~torsten

Upload: others

Post on 12-Sep-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Introduction toComputer Graphics

Torsten MöllerTASC 8021

[email protected]

www.cs.sfu.ca/~torsten

Page 2: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Today

• What is computer graphics?• Contents of this course• Syllabus

• Overview of course topics

Page 3: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

What Is Computer Graphics?

• Using a computer as a rendering tool for the generation (from models) and manipulation of images is called computer graphics

• More precisely: image synthesis

Page 4: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Goals of Computer Graphics

• Generate synthetic images• Do it in a practical way and scientifically

sound.• In real time?• And make it look easy…

Page 5: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Cmpt 361

Page 6: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Cmpt 461/761

Page 7: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

What Is Computer Graphics?

Visibility

Computer Graphics

Animation

Hardware

and System

Architecture

Applications

Design (CAD)Virtual Reality

Human

Computer

Interaction

Visualization

for Science

and Business

Entertainment

Image

Synthesis

Modeling

Viewing

Rendering

Radiosity vs. Ray Tracing

Texture Mapping

Shading & Illumination

Models

Page 8: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Modeling

• How to represent real environments– Geometry: curves, surfaces, volumes– Photometry: light, color, reflectance

• How to build these representations– Interactive: sculpt it– Algorithmic: let it grow (fractals, extraction)– Scanning: via 3D sensing

• Generate primitives– Lines, triangles, quads, patches– Cylinder, spheres– Higher-order primitives

• See CMPT 464 / 461

Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Page 9: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Modeling: Interactive Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Page 10: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Modeling: Scanning

Hardware/Human Points Primitives

Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Page 11: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Scanned 3D Objects

• Size of data sets?• David:

– 480 individually aimed scans– 2 billion polygons– 7,000 color images– 32 gigabytes– 30 nights of scanning– 22 people

Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Page 12: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Scanned 3D Objects

• David’s left eye

Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Page 13: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Out of nowhere - fractals

Modeling: Algorithmic and Procedural

Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Page 14: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Rendering

• What is an image?– Distribution of light energy on 2D “film”

• How do we represent and store images?– Sampled array of “pixels”: p[x,y]

• How do we generate images from scenes?– Input: 3D description of scene, camera– Project to camera’s

viewpoint– Illumination

• See CMPT 461/761

Visibility

Computer Graphics

Image

Synthesis

Modeling

Viewing

Rendering

Radiosity vs. Ray Tracing

Texture Mapping

Shading & Illumination

Models

Page 15: Introduction to Computer Graphics - Computing Science - Simon

Computer Graphics

Animation

Hardware

and System

Architecture

ApplicationsImage

Synthesis

© Torsten Möller

Vertex Processing Units (6)

Fragment Shader Units (16)

Raster Operation Units (16)

Hardware

• Example: NVIDIA GeForce 6800

Page 16: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Animation

• Model how things move• Temporal change of

– Objects (position, orientation, size, shape, color, etc.)– Camera (position, direction, angle, focus, etc.)– Illumination (position, direction, color, brightness)

• Represent motion– Sequence of stills– Parameter curves

• See CMPT 466 (Animation)

Computer Graphics

Animation

Hardware

and System

Architecture

ApplicationsImage

Synthesis

Page 17: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Uses Of Graphics

• Special effects• Feature animation • Computer Games• Virtual environments• Visualization

(science, business, cartography, ...)• Design• Interaction• ...

Computer Graphics

Applications

Design (CAD)Virtual Reality

Human

Computer

Interaction

Visualization

for Science

and Business

Entertainment

Page 18: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Interaction

Page 19: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Geometric modeling in 361

• Concentrate on polygonal models for geometry– Start in 2D: points, lines, and polygons– 3D polygonal meshes and subdivision surfaces

• A little bit of parametric curves and surfaces

• OK, we have a geometric model, what now?• Have to display it on the screen – rendering

Page 20: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Rendering in CMPT 361

• Add in viewing information: – Transformation: transform our geometric model

depending on position and orientation of camera– Visibility: determine what can be seen (do not draw

what cannot been seen)• Add in light: illumination and shading• Add in texture: texture mapping• Add in color: some coverage on color models/

representations

Page 21: Introduction to Computer Graphics - Computing Science - Simon

Hardware

© Torsten Möller

Modelling Transform Visibility

Illumination +Shading

ColorPerception,Interaction

Texture/Realism

Graphics Pipeline

CMPT 361

Page 22: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Topics of CMPT 361 (1)

• Image formation and two fundamental graphics algorithm used for image formation

• Graphics architectures• Programming basics using OpenGL – the graphics

library we use• 2D raster graphics – scan conversion

(rasterization) of simple primitives (lines, circles, polygons) and clipping

• 2D and 3D geometric transformations – rotation, translation, use of homogenous coordinates, etc.

Page 23: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Topics of CMPT 361 (2)

• 3D viewing – transformations, hidden surface removal, clipping, etc.

• Illumination and shading – local models, global models, color models, texture mapping

• Curves and surfaces• Polygonal meshes and subdivision surfaces• Sampling issues and antialiasing

Page 24: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

The Quest for Visual Realism

Page 25: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Syllabus

See Web Page

Page 26: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

What Is It I Expect?

• Good programming background– C/C++– Preferably some previous OpenGL exposure

• Good Unix exposure– Make files, etc.

• Basic computer science– Data structures, algorithms

• Basic math– Numerical integration– Linear algebra, systems of linear equations– Vectors, matrices

• Keeping up with the text(s) is very important

Page 27: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

I Am Not Going To ...

• Teach C/C++• Teach data structures• Teach linear algebra and basic numerical

methods• Questions about C/C++ are low priority• Lab procedures are your responsibility

Page 28: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Other Courses at CMPT

• CMPT 461/761 – Image Synthesis• CMPT 464/764 – Geometric Modeling• CMPT 467/767 – Visualization • CMPT 466 – Animation

• CMPT 363/773 – User Interface Design• CMPT 365/820 – Multimedia Systems• CMPT 412, 414, 821, 822 – Computer/

Computational Vision• CMPT 406/813 – Computational Geometry

Page 29: Introduction to Computer Graphics - Computing Science - Simon

© Torsten Möller

Other Courses at SFU

• Cmpt 340 – Biomedical Computing• Cmpt 468/768 - Computer Music• Cmpt 419/726 - Machine Learning• Ensc 489/889 – Computer Aided Design,

3D object modeling• Ensc 424 – Multimedia Communications

Eng.; Image/Video Coding• Ensc 429 – Signal Processing