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

Similar documents
EF432. Introduction to spagetti and meatballs

EF432. Introduction to spagetti and meatballs

0. Introduction: What is Computer Graphics? 1. Basics of scan conversion (line drawing) 2. Representing 2D curves

CSCD18: Computer Graphics. Instructor: Leonid Sigal

COMP371 COMPUTER GRAPHICS

From Ver(ces to Fragments: Rasteriza(on

Tópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática. Chap. 2 Rasterization.

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Lecture 6 of 41. Scan Conversion 1 of 2: Midpoint Algorithm for Lines and Ellipses

Lecture 6 of 41. Scan Conversion 1 of 2: Midpoint Algorithm for Lines and Ellipses

Rendering. A simple X program to illustrate rendering

Rendering. A simple X program to illustrate rendering

FROM VERTICES TO FRAGMENTS. Lecture 5 Comp3080 Computer Graphics HKBU

The Traditional Graphics Pipeline

From Vertices to Fragments: Rasterization. Reading Assignment: Chapter 7. Special memory where pixel colors are stored.

CS 543: Computer Graphics. Rasterization

CHAPTER 1 Graphics Systems and Models 3

Line Drawing. Foundations of Computer Graphics Torsten Möller

CS 4731: Computer Graphics Lecture 21: Raster Graphics: Drawing Lines. Emmanuel Agu

Scan Conversion. Drawing Lines Drawing Circles

Realtime 3D Computer Graphics Virtual Reality

The Traditional Graphics Pipeline

Computer Graphics Introduction. Taku Komura

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

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

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

Lecturer Athanasios Nikolaidis

Lahore University of Management Sciences. CS 452 Computer Graphics

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

CSCI 420 Computer Graphics Lecture 14. Rasterization. Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California

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

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Fall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li.

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Announcements. Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class. Computer Graphics

Computer Graphics. - Rasterization - Philipp Slusallek

Rasterization. Rasterization (scan conversion) Digital Differential Analyzer (DDA) Rasterizing a line. Digital Differential Analyzer (DDA)

The Traditional Graphics Pipeline

Computer Graphics (CS 543) Lecture 10: Rasterization and Antialiasing

Line Drawing. Introduction to Computer Graphics Torsten Möller / Mike Phillips. Machiraju/Zhang/Möller

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

History of computer graphics

Topic #1: Rasterization (Scan Conversion)

Animation & Rendering

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

Computer Graphics I Lecture 11

Course Title: Computer Graphics Course no: CSC209

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

OpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.

Raster Displays and Scan Conversion. Computer Graphics, CSCD18 Fall 2008 Instructor: Leonid Sigal

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

Lahore University of Management Sciences. CS 452 Computer Graphics

Graphics and Interaction Rendering pipeline & object modelling

CIS 581 Interactive Computer Graphics

Department of Computer Sciences Graphics Fall 2003 (Lecture 2) Pixels

CS123 INTRODUCTION TO COMPUTER GRAPHICS. Describing Shapes. Constructing Objects in Computer Graphics 1/15

Einführung in Visual Computing

CS452/552; EE465/505. Clipping & Scan Conversion

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

3D GRAPHICS. design. animate. render

Scan Conversion. CMP 477 Computer Graphics S. A. Arekete

Introduction to Visualization and Computer Graphics

Introduction to 3D Graphics

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

CS 130 Final. Fall 2015

CS451Real-time Rendering Pipeline

Lecture 0 of 41: Part A Course Organization. Introduction to Computer Graphics: Course Organization and Survey

Chapter 7 - Light, Materials, Appearance

Chapter 8: Implementation- Clipping and Rasterization

From Vertices To Fragments-1

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines

CS602 MCQ,s for midterm paper with reference solved by Shahid

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

Computer Graphics. Lecture 2. Doç. Dr. Mehmet Gokturk

COMP30019 Graphics and Interaction Rendering pipeline & object modelling

Lecture outline. COMP30019 Graphics and Interaction Rendering pipeline & object modelling. Introduction to modelling

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

Chapter - 2: Geometry and Line Generations

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

Topics and things to know about them:

CS559 Computer Graphics Fall 2015

CS2401 COMPUTER GRAPHICS ANNA UNIV QUESTION BANK

Welcome to 6.837! Welcome to all students: Plan for today: Introductions. Why study graphics? Team 18 s final project from 6.

Computer Graphics D Graphics Algorithms

Overview of Computer Graphics

Rasterization: Geometric Primitives

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

Outline. Properties of Piecewise Linear Interpolations. The de Casteljau Algorithm. Recall: Linear Interpolation

2D Image Synthesis. 2D image synthesis. Raster graphics systems. Modeling transformation. Vectorization. u x u y 0. o x o y 1

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

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Graphics (Output) Primitives. Chapters 3 & 4

R asterisation. Part I: Simple Lines. Affine transformation. Transform Render. Rasterisation Line Rasterisation 2/16

Output Primitives Lecture: 3. Lecture 3. Output Primitives. Assuming we have a raster display, a picture is completely specified by:

CS337 INTRODUCTION TO COMPUTER GRAPHICS. Describing Shapes. Constructing Objects in Computer Graphics. Bin Sheng Representing Shape 9/20/16 1/15

CS 130 Exam I. Fall 2015

Computer Graphics D Graphics Algorithms

CS 354R: Computer Game Technology

Final Exam CS 184: Foundations of Computer Graphics! page 1 of 12!

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

Transcription:

EF432 Introduction to spagetti and meatballs CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~karan/courses/418/ Instructors: L0101, W 12-2pm L0201, T 3-5pm Karan Singh Alec Jacobson BA 5258 BA 5266 978-7201 946-8630 karan@dgp.toronto.edu office hours: W 2-4pm or by appointment. jacobson@dgp.toronto.edu office hours: T 5-7pm or by appointment. Textbooks: Fundamentals of Computer Graphics OpenGL Programming Guide & Reference Tutorials: (first tutorial next week) Today s Topics 0. Introduction: What is Computer Graphics? 1. Basics of scan conversion (line drawing) 2. Representing 2D curves Topic 0. Introduction: What Is Computer Graphics? What is Computer Graphics? Computers: accept, process, transform and present information. Computer Graphics: accept, process, transform and present information in a visual form. 1

Ok but what is the course really about? The science of turning the rules of geometry, motion and physics into (digital) pictures that mean something to people Movies Movies define directions in CG Set quality standards Driving medium for CG What its not about? Photoshop, AutoCAD, Maya, Renderman, Graphics APIs. wow, heavy math and computer science!! Games Games emphasize the interactivity and AI Push CG hardware to the limits (for real time performance) Design CG for prototyping and fabrication Requires precision modeling and engineering visualization Scientific and Medical Visualization, Operation Requires handling large datasets May need device integration Real-time interactive modeling & visualization GUIs, AR/VR, scanners Interaction with software & hardware, I/O of 3D data Emphasis on usability 2

Computer Graphics: Basic Questions Form (modeling) How do we represent (2D or 3D) objects & environments? How do we build these representations? What is an Image? Image = distribution of light energy on 2D film Digital images represented as rectangular arrays of pixels Function, Behavior (animation) How do we represent the way objects move? How do we define & control their motion? Appearance (rendering) How do we represent the appearance of objects? How do we simulate the image-forming process? Form & Appearance in CG The Graphics Pipeline illumination Modeling Animation Rendering camera shape/surface geometry & reflectance Geometry: points, curves, & surfaces Scene Objects: parts, relations, & pose Texture and reflectance (e.g., color, diffusivity, opacity, refractions) Key-frame, motion capture, inverse kinematics, dynamics, behaviors, motion planning, Visibility Simulation of light (e.g., illuminants, emissive surfaces, scattering, transmission, diffraction, ) Special effects (e.g., antialiasing, motion blur, nonphotorealism) pixel array Graphics Pipeline: Modeling Graphics Pipeline: Animation How do we represent an object geometrically on a How computer? do we represent an object geometrically on a computer? Point clouds Texture maps Polygon meshes Physical simulation Smooth surface patches Parametric curves Key-Framing Behavior rules 3

Graphics Pipeline: Rendering Course Topics Principles Theoretical & practical foundations of CG (core mathematics, physics, modeling methods) CG programming (assignments & tutorials) Experience with OpenGL (industry-standard CG library) Creating CG scenes Input: Scene description, lighting, camera Output: Image that the camera will observe accounting for visibility, clipping, projection, What You Will Take Away #1: yes, math IS useful in CS!! #2: how to turn math & physics into pictures. #3: basics of image synthesis #4: how to code CG tools Administrivia Grading: 50%: 3 assignments handed out in class (25% 15% 10%). 50%: 1 test in class (15%) + 1 final exam (35%). First assignment: on web in two weeks. Wooden Monkey assignment on web now! Check web for schedule, dates, more details & policy on late assignments. Tutorial sessions: Math refreshers, OpenGL tutorials, additional topics. Attendance STRONGLY encouraged since I will not be lecturing on these topics in class. Lecture slides & course notes, already on web. Topic 1. Basic Raster Operations: Line Drawing 2D Drawing Common geometric primitives: When drawing a picture, 2D geometric primitives are specified as if they are drawn on a continuous plane A simple (but inefficient) line drawing algorithm Line anti-aliasing Drawing command: Draw a line from point (10,5) to point (80,60) y (80,60) (10,5) x 4

2D Drawing In reality, computer displays are arrays of pixels, not abstract mathematical continuous planes Continuous line (80,60) Digital line Basic Raster Operations (for 2D lines) Scan conversion: Given a pair of pixels defining the line s endpoints & a color, paint all pixels that lie on the line. Clipping: If one or more endpoints is out of bounds, paint only the line segment that is within bounds. y (10,5) y Region filling: Fill in all pixels within a given closed connected boundary of pixels. x In graphics, the conversion from continuous to discrete 2D primitives is called scan conversion or rasterization x Line Scan Conversion: Key Objectives Equation of a Line Accuracy: pixels should approximate line closely. Speed: line drawing should be efficient Visual Quality: No discernable artifacts. Digital line Explicit : y = mx + b Parametric : x(t) = x0 + (x1 x0)*t y(t) = y0 + (y1 y0)*t P = P0 + (P1-P0)*t P = P0*(1-t) + P1*t (weighted sum) Implicit : (x-x0)dy - (y-y0)dx = 0 Algorithm I DDA (Digital Differential Analyzer) Explicit form: y= dy/dx * (x-x0) + y0 Algorithm I (gaps when m>1) DDA (Digital Differential Analyzer) Explicit form: y= dy/dx * (x-x0) + y0 float y; int x; dx = x1-x0; dy = y1 y0; m = dy/dx; y= y0; for ( x=x0; x<=x1; x++) { setpixel (x, round(y)); y= y + m; } float y; int x; dx = x1-x0; dy = y1 y0; m = dy/dx; y= y0; for ( x=x0; x<=x1; x++) { setpixel (x, round(y)); y= y + m; } 5

Aliasing Raster line drawing can produce a jaggy appearance. Anti-Aliasing How can we make a digital line appear less jaggy? Jaggy Aliased line Anti-aliased line Jaggies are an instance of a phenomenon called aliasing. Removal of these artifacts is called anti-aliasing. Intensity proportional to pixel area covered by thick line Main idea: Rather than just drawing in 0 s and 1 s, use inbetween values in neighborhood of the mathematical line. Anti-Aliasing: Example Aliased line Topic 2. Anti-aliased line 2D Curve Representations Explicit representation Parametric representation Implicit representation Tangent & normal vectors Explicit Curve Representations: Definition Curve represented by a function f such that: y=f(x) Explicit Curve Representations: Limitations Curve represented by a function f such that: y=f(x) line: y=mx+b f(a) f(a) a a 6

Parametric Curve Representation: Definition Parametric Representation of a Line Segment Curve represented by two functions f x, f y And an interval [a,b] such that: (x,y)=( f x (t), f y (t) ) are points on the curve for t in [a,b] ( f x (t), f y (t) ) p(t) = p0 + ( p0)*t, 0 t 1 0 t - t : ray from p0 through : line through p0 and p0 A curve is closed when?? In general if p(t) = a0 + a1*t, how do you solve for a0, a1? Line Segment as interpolation Curve as interpolation (Catmull-Romm) p(t) = a0 + a1*t p(t) = a0 + a1*t + a2*t 2 + a3*t 3 p3 p3 p0 p2 p0 p2 Polygons Polygon: A continuous piecewise linear closed curve. Simple polygon: non-self intersecting. Convex: all angle less than 180 degrees. Regular: simple, equilateral, equiangular. n-gon: pi = r(cos(2πi/n), sin(2πi/n)), 0 i <n Representations of a Circle Parametric: p(t) = r(cos(2πt), sin(2πt)), 0 t 1 Implicit: x 2 +y 2 -r 2 =0 r p0 p2 7

Representations of an Ellipse Curve tangent and normal Parametric: Parametric: p(t) = (a*cos(2πt), b*sin(2πt)), 0 t 1 p(t) = (x(t),y(t)). Tangent: (x (t),y (t)). Implicit: x 2 /a 2 +y 2 /b 2-1=0 b a Implicit: f(x,y) =0. Normal: gradient(f(x,y)). Tangent and normal are orthogonal. 8