Computer Graphics. Overview CS 217. Introduction. Applications. Systems & software. What is computer graphics? What is it good for?

Similar documents
Geometric Modeling For Computer Graphics

Overview of 3D Object Representations

3D Modeling I. CG08b Lior Shapira Lecture 8. Based on: Thomas Funkhouser,Princeton University. Thomas Funkhouser 2000

3D Rendering. Course Syllabus. Where Are We Now? Rendering. 3D Rendering Example. Overview. Rendering. I. Image processing II. Rendering III.

Character Animation COS 426

Rendering. Generate an image from geometric primitives II. Rendering III. Modeling IV. Animation. (Michael Bostock, CS426, Fall99)

Subdivision Surfaces. Course Syllabus. Course Syllabus. Modeling. Equivalence of Representations. 3D Object Representations

Computer Animation. Courtesy of Adam Finkelstein

Keyframe Animation. Computer Animation. Outline. Computer Animation. Keyframe Animation. Keyframe Animation

3D Object Representation. Michael Kazhdan ( /657)

Implicit Surfaces & Solid Representations COS 426

Computer Graphics ( /657) Prof. Misha Kazhdan

Computer Graphics. CS52 Fall computer graphics introduction 2006 fabio pellacini 1

Introduction to Computer Graphics. Instructor: Stephen J. Guy

Computer Graphics and Visualization. What is computer graphics?

Motion for Computer Animation. Michael Gleicher Department of Computer Sciences University of Wisconsin, Madison

Lecture 0 of 41: Part B Course Content. Advanced Computer Graphics: Course Organization and Survey

Computer Graphics. CS52 Winter computer graphics introduction 2008 fabio pellacini 1. introduction

3D Rendering and Ray Casting

Computer Graphics. Instructor: Oren Kapah. Office Hours: T.B.A.

CSCD18: Computer Graphics. Instructor: Leonid Sigal

Overview. Computer Graphics CS324. OpenGL. Books. Learning Resources. CS131 Notes. 30 Lectures 3hr Exam

Illumination. Michael Kazhdan ( /657) HB Ch. 14.1, 14.2 FvDFH 16.1, 16.2

3D Object Representations. COS 526, Fall 2016 Princeton University

Ray Casting. Connelly Barnes CS 4810: Graphics

INTRODUCTION. Computer Graphics

About Computer Graphics

CIS 581 Interactive Computer Graphics

Lecture 18 of 41. Scene Graphs: Rendering Lab 3b: Shader

CSC Graphics Programming. Budditha Hettige Department of Statistics and Computer Science

CSCI-6962 Advanced Computer Graphics

COMPUTER GRAPHICS. Computer Multimedia Systems Department Prepared By Dr Jamal Zraqou

Three-Dimensional Computer Animation

Overview of 3D Object Representations

Lecturer Athanasios Nikolaidis

Some Resources. What won t I learn? What will I learn? Topics

CS148 Introduction to Computer Graphics and Imaging. Pat Hanrahan Fall cs148.stanford.edu

CS 428: Fall Introduction to. Realism (overview) Andrew Nealen, Rutgers, /11/2009 1

Approximate Catmull-Clark Patches. Scott Schaefer Charles Loop

3D Object Representation

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

Computer Graphics CS 543 Lecture 1 (Part I) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

To Do. History of Computer Animation. These Lectures. 2D and 3D Animation. Computer Animation. Foundations of Computer Graphics (Spring 2010)

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Computer Graphics

Global Illumination. Connelly Barnes CS 4810: Graphics

CIS 581 Interactive Computer Graphics (slides based on Dr. Han-Wei Shen s slides) Requirements. Reference Books. Textbook

3D Rendering and Ray Casting

Review. Stephen J. Guy

CS559: Computer Graphics. Lecture 1 Introduction Li Zhang University of Wisconsin, Madison

Three-Dimensional Computer Animation

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

3D GRAPHICS. design. animate. render

CS 354R: Computer Game Technology

Solid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects

Computer Graphics Disciplines. Grading. Textbooks. Course Overview. Assignment Policies. Computer Graphics Goals I

CS4620/5620 Introduction to Computer Graphics

Cornell CS4620 Fall 2011!Lecture Kavita Bala (with previous instructors James/Marschner) Cornell CS4620 Fall 2011!Lecture 1.

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Luxo Jr. Plan. Team. Movies. Why Computer Graphics? Introduction to Computer Graphics. Pixar Animation Studios, 1986 Director: John Lasseter

Scene Modeling for a Single View

Subdivision Surfaces

Computer Graphics Fundamentals. Jon Macey

COURSE DELIVERY PLAN - THEORY Page 1 of 6

Maths at the Movies. Chris Budd

Instructor. Goals. Image Synthesis Examples. Applications. Foundations of Computer Graphics. Why Study 3D Computer Graphics?

2D & 3D Animation NBAY Donald P. Greenberg March 21, 2016 Lecture 7

CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications

Cs602-computer graphics MCQS MIDTERM EXAMINATION SOLVED BY ~ LIBRIANSMINE ~

Graphics. Introduction to Computer Graphics. Korea University. Graphics Korea University.

13. siječnja 2017., Slavonski Brod

Processing. Data Visualization Programming Language. By Rutvi Joshi. Processing Visualization Language- By Rutvi Joshi

Input Nodes. Surface Input. Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking

The University of Calgary

Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?

Lahore University of Management Sciences. CS 452 Computer Graphics

3D Modeling techniques

OXFORD ENGINEERING COLLEGE (NAAC Accredited with B Grade) DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING LIST OF QUESTIONS

Curves and Surfaces 2

Development of Computer Graphics

Hardware Shading: State-of-the-Art and Future Challenges

CHETTINAD COLLEGE OF ENGINEERING & TECHNOLOGY CS2401 COMPUTER GRAPHICS QUESTION BANK

============================================================================

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

EF432. Introduction to spagetti and meatballs

Temporal Resolution. Flicker fusion threshold The frequency at which an intermittent light stimulus appears to be completely steady to the observer

Lecture 1: Introduction to Computer Graphics

Indirect Illumination

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Introduction to Computer Graphics. Knowledge basic concepts 2D and 3D computer graphics

EF432. Introduction to spagetti and meatballs

Graphical systems, visualization and multimedia

Efficient Image-Based Methods for Rendering Soft Shadows. Hard vs. Soft Shadows. IBR good for soft shadows. Shadow maps

CS380: Computer Graphics Introduction. Sung-Eui Yoon ( 윤성의 ) Course URL:

Object representation

,

Polygonal Meshes. 3D Object Representations. 3D Object Representations. 3D Polygonal Mesh. 3D Polygonal Mesh. Geometry background

Computer Graphics. Introduction. Prof. SHENG Bin, CS, SJTU

o Represent 3D objects in a computer? o Manipulate 3D objects with a computer? o CAD programs o Subdivision surface editors :)

CS 591B Lecture 9: The OpenGL Rendering Pipeline

CENG505 Advanced Computer Graphics Lecture 1 - Introduction. Instructor: M. Abdullah Bülbül

Transcription:

Computer Graphics CS 217 Overview Introduction What is computer graphics? Applications What is it good for? Systems & software How does it related to this course? 11

Introduction What is computer graphics? Luxo, Jr. Pixar What issues must be addressed by a computer graphics system? 22

Overview Topics in computer graphics Imaging = representing 2D images Modeling = representing 3D objects Rendering = constructing 2D images from 3D models Animation = simulating changes over time Overview Topics in computer graphics Imaging = representing 2D images Modeling = representing 3D objects Rendering = constructing 2D images from 3D models Animation = simulating changes over time 2D Image 33

What is an Image? An image is a 2D rectilinear array of pixels Continuous image Digital image What is an Image? An image is a 2D rectilinear array of pixels Continuous image Digital image A pixel is a sample, not a little square! 44

What is an Image? An image is a 2D rectilinear array of pixels Continuous image Digital image A pixel is a sample, not a little square! Representing Digital Images typedef struct pixel { float red, green, blue; } Pixel; typedef struct image { int width, height; Pixel *pixels; } Image; Digital image 55

Image Abstract Data Type /* Create and delete image */ Image *Image_new(int width, int height); void Image_free(Image *image); /* Get image properties */ int Image_getWidth(Image *image); int Image_getHeight(Image *image); /* Pixel manipulation */ Pixel *Image_getPixel(Image *image, int i, int j); void Image_setPixel(Image *image, int i, int j, Pixel *pixel); /* Image manipulation */ void Image_brighten(Image *image, float factor); void Image_blur(Image *image, float factor); void Image_swirl(Image *image, float angle); void Image_composite(Image *image, Image *image2, Image *mask); void Image_morph(Image *image1, Image *image2, Array *features); etc. Processing Digital Images Examples Filtering Warping Composition Morphing Image Warping Image Composition (Michael Bostock, CS426, Fall99) Image Morphing (All students in CS 426, Fall98) 66

Processing Digital Images Example from the movies The Matrix Reloaded (Warner) Overview Topics in computer graphics Imaging = representing 2D images Modeling = representing 3D objects Rendering = constructing 2D images from 3D models Animation = simulating changes over time 3D Model 77

Geometric Modeling How can this object be represented in a computer? Example: 3D Polygons typedef struct point { float x, y, z; } Point; typedef struct polygon { int npoints; Point *points; } Polygon; typedef struct object { int npolygons; Polygon *polygons; } Object; typedef struct scene { int nobjects; Object *objects; } Scene; 88

Example: 3D Polygons typedef struct point { float x, y, z; } Point; (x, y, z) typedef struct polygon { int npoints; Point *points; } Polygon; typedef struct object { int npolygons; Polygon *polygons; } Object; typedef struct scene { int nobjects; Object *objects; } Scene; Example: 3D Polygons typedef struct point { float x, y, z; } Point; typedef struct polygon { int npoints; Point *points; } Polygon; typedef struct object { int npolygons; Polygon *polygons; } Object; typedef struct scene { int nobjects; Object *objects; } Scene; (x1, y1, z1) (x3, y3, z3) (x2, y2, z2) 99

Example: 3D Polygons typedef struct point { float x, y, z; } Point; typedef struct polygon { int npoints; Point *points; } Polygon; typedef struct object { int npolygons; Polygon *polygons; } Object; typedef struct scene { int nobjects; Object *objects; } Scene; Example: 3D Polygons typedef struct point { float x, y, z; } Point; typedef struct polygon { int npoints; Point *points; } Polygon; typedef struct object { int npolygons; Polygon *polygons; } Object; typedef struct scene { int nobjects; Object *objects; } Scene; 10

Polygonal Meshes Can make complex objects Polygonal Meshes Can make very complex objects Stanford Graphics Laboratory 11

Polygonal Meshes Can make very complex objects Stanford Graphics Laboratory More Geometric Representations Subdivision Surfaces H&B Figure 10.46 Spline Surfaces Stanford Graphics Laboratory Solids 12

Tin Toy Pixar Overview Topics in computer graphics Imaging = representing 2D images Modeling = representing 3D objects Rendering = constructing 2D images from 3D models Animation = simulating changes over time 13

Rendering Example What issues must be addressed by a computer graphics rendering algorithm? Rendering Methods Mathematical models for: Light sources Surface reflectances Camera response Light Source Algorithms to find: Visible surfaces Indirect light paths etc. Surface Camera 14

Rendering Methods Mathematical models for: Light sources Surface reflectances Camera response Light Source Algorithms to find: Visible surfaces Indirect light paths etc. Surface Camera Simple Rendering Algorithm For each pixel Construct ray from eye position through pixel Find front-most surface intersected by ray Compute color of sample based on models of light sources and surface reflectances 15

Simple Rendering Algorithm For each pixel Construct ray from eye position through pixel Find front-most surface intersected by ray Compute color of sample based on models of light sources and surface reflectances Simple Rendering Algorithm For each pxiel Construct ray from eye position through pixel Find front-most surface intersected by ray Compute color of sample based on models of light sources and surface reflectances 16

Simple Rendering Algorithm Image *RayCast(Camera *camera, Lights *lights, Scene *scene, int width, int height) { Image *image = Image_new(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Point intersection = FindIntersection(ray, scene); Color = ComputeReflectance(lights, intersection, scene); SetPixel(image, i, j, ); } } return image; } Better Rendering Algorithms Consider indirect light paths Inter-object reflections Caustics etc. Trike (James Percy, CS 426, Fall99) Rendering Caustics (Michael Bostock, James Percy & Casey McTaggert, CS 426, Fall99) 17

Red s Dream Pixar Overview Topics in computer graphics Imaging = representing 2D images Modeling = representing 3D objects Rendering = constructing 2D images from 3D models Animation = simulating changes over time 18

Animation Describing how models move Kinematics Dynamics Planning Learning (Lasseter87) Animation Difficult combination of: Desired behavior Simulating physics Artistic control Hodgins et al. Chen, Guan, Liu, and Qie CS426, Fall98 Baraff & Witkin 19

Monsters, Inc. Pixar Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art 20

Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Geri s Game (Pixar Animation Studios) Jurasic Park (Industrial, Light, & Magic) Quake (Id Software) Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Gear Shaft Design (Intergraph Corporation) Los Angeles Airport (Bill Jepson, UCLA) Boeing 777 Airplane (Boeing Corporation) 21

Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Airflow Inside a Thunderstorm (Bob Wilhelmson, University of Illinois at Urbana-Champaign) Apo A-1 (Theoretical Biophysics Group, University of Illinois at Urbana-Champaign) Visible Human (National Library of Medicine) Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Desk Assembly (Silicon Graphics, Inc.) Driving Simulation (Evans & Sutherland) Flight Simulation (NASA) 22

Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Forum of Trajan (Bill Jepson, UCLA) Human Skeleton (SGI) Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Interactive Kitchen Planner (Matsushita) Virtual Phone Store (Lucent Technologies) 23

Computer Graphics Applications Entertainment Computer-aided design Scientific visualization Training Education E-commerce Computer art Blair Arch (Marissa Range & Adam Finkelstein, Princeton University)c How Is This Related to the Course? Computer graphics uses Parsers (lexical and syntactic analysis) Abstract data types Memory management Multiple processes Networking 24

How Is This Related to the Course? Computer graphics uses Parsers (lexical and syntactic analysis) Abstract data types Memory management Multiple processes Networking Assembly code (maybe, a little) Alone in the Dark 4 (Darkworks/Infogrames) 25