CS 543: Computer Graphics. Introduction

Similar documents
Computer Graphics (CS 543) Lecture 1 (Part 1): Introduction to Computer Graphics

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

Mathematics in Computer Graphics and Games. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

CSE4030 Introduction to Computer Graphics

Graphics Hardware. Instructor Stephen J. Guy

The Application Stage. The Game Loop, Resource Management and Renderer Design

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

3D GRAPHICS. design. animate. render

Introduction to Computer Graphics. Overview. What is Computer Graphics?

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

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

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

MMGD0206 Computer Graphics. Chapter 1 Development of Computer Graphics : History

CS451Real-time Rendering Pipeline

Introduction to Computer Graphics

CS130 : Computer Graphics. Tamar Shinar Computer Science & Engineering UC Riverside

Spring 2011 Prof. Hyesoon Kim

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

3D Production Pipeline

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University

Spring 2009 Prof. Hyesoon Kim

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

COMP Preliminaries Jan. 6, 2015

Binghamton University. EngiNet. Thomas J. Watson. School of Engineering and Applied Science. State University of New York. EngiNet WARNING CS 560

CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside

Computer Graphics 1 Instructor Information. Books. Graphics? Course Goals and Outcomes. Where are computer graphics? Where are computer graphics?

CS452/552; EE465/505. Finale!

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

Computer Graphics Introduction. Taku Komura

Computer Graphics Fundamentals. Jon Macey

National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor

Computer Science 175. Introduction to Computer Graphics lib175 time: m/w 2:30-4:00 pm place:md g125 section times: tba

Recall: Indexing into Cube Map

Lecture 1. Computer Graphics and Systems. Tuesday, January 15, 13

CIS 581 Interactive Computer Graphics

Overview. Computer Graphics CSE 167

Mattan Erez. The University of Texas at Austin

I expect to interact in class with the students, so I expect students to be engaged. (no laptops, smartphones,...) (fig)

EE , GPU Programming

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

Computer Graphics. Anders Hast. måndag 25 mars 13

Introduction to Computer Graphics with WebGL

CS 354R: Computer Game Technology

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

Survey in Computer Graphics Computer Graphics and Visualization

CS 418: Interactive Computer Graphics. Introduction. Eric Shaffer

CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS SPRING 2016 DR. MICHAEL J. REALE

Accelerating Realism with the (NVIDIA Scene Graph)

Introduction to Computer Graphics (CS602) Lecture No 03 Graphics Systems

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

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1

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

Lecturer Athanasios Nikolaidis

Illumination & Shading I

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

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Computer Graphics. Bing-Yu Chen National Taiwan University

Graphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal

Graphics Hardware and Display Devices

Chapter 1 Introduction

CHAPTER 1 Graphics Systems and Models 3

CS354 Computer Graphics Introduction. Qixing Huang Januray 17 8h 2017

Fractals & Iterative Function Systems

CS 179: GPU Programming

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Computer Graphics (CS 4731) Lecture 16: Lighting, Shading and Materials (Part 1)

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

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

Computer Graphics (CS 543) Lecture 7b: Intro to lighting, Shading and Materials + Phong Lighting Model

Computer Graphics (CS 4731) OpenGL/GLUT(Part 1)

Game Architecture. 2/19/16: Rasterization

Books: 1) Computer Graphics, Principles & Practice, Second Edition in C JamesD. Foley, Andriesvan Dam, StevenK. Feiner, John F.

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

Computer Graphics Lecture 2

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

TSBK03 Screen-Space Ambient Occlusion

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

Computer Graphics and Visualization. What is computer graphics?

Rendering Objects. Need to transform all geometry then

Programming Graphics Hardware

Models and Architectures

Image Formation. Introduction to Computer Graphics. Machiraju/Zhang/Möller/Klaffenböck

Shaders. Slide credit to Prof. Zwicker

Water Simulation on WebGL and Three.js

Image Formation. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Computer Graphics (CS 563) Lecture 4: Advanced Computer Graphics Image Based Effects: Part 2. Prof Emmanuel Agu

Working with Metal Overview

NVIDIA Developer Tools for Graphics and PhysX

Computer Graphics (CS 543) Lecture 10: Normal Maps, Parametrization, Tone Mapping

Manipal Institute of Technology Manipal University Manipal

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

INTRODUCTION COMPUTER GRAPHICS AND INTERACTION. Christopher Peters. CST, KTH Royal Institute of Technology, Sweden

CS Computer Graphics: Hidden Surface Removal

CS 4620 Program 3: Pipeline

Goals. Course Staff. Demo: Surreal (HW 3) Entertainment. Foundations of Computer Graphics (Spring 2012) Why Study 3D Computer Graphics?

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

Ciril Bohak. - INTRODUCTION TO WEBGL

Evolution of GPUs Chris Seitz

Transcription:

CS 543: Computer Graphics Introduction Robert W. Lindeman Associate Professor Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu (with lots of help from Prof. Emmanuel Agu :-)

What to Expect! This course is mainly about how to create pretty pictures " Algorithms, mathematics, data structures " Over 40 years of research! Today, a big chunk is available off the shelf " Just make OpenGL or DirectX library calls " Use WebGL to remove platform dependencies! We want to learn what is inside these libraries " We use WebGL as one example of how things could be done " At work, you may only use OpenGL, or a Game Engine " The really interesting jobs will ask you to go further! 2

Summary of Syllabus! 2 Exams (50%), 4 Projects (50%)! Projects will use WebGL! Write code on any platform (Zoo Lab - FL A21)! Must run in a Web browser! Program in JavaScript! Can discuss with others, turn in unique project! All material on class Website " www.cs.wpi.edu/~gogo/courses/cs543/! Text " Interac(ve Computer Graphics: A Top- Down Approach with WebGL (7th edi)on), by Angel and Shreiner, 2015. 3

Assignments! Many phases to homework: " Understand/design/code/debug/test/eat/test some more " Encouraged to discuss approaches " Must hand in your own work only! Cheating: " Many reasons not to do it! " Immediate 'F' in the course! Advice for doing well: 1. Do the assigned reading 2. Come to class 3. Ask questions (class, office hours, MyWPI discussions) 4. Make sure you understand before coding 5. Don't share your code with others! 4

What to Expect (cont.)! This course is about Computer Graphics, not WebGL " How would one build WebGL or OpenGL? " Focus on underlying methods " Other methods besides WebGL! This course is heavy on " Coding (JavaScript, shaders) " Efficiency (speed & space) " Pretty pictures 5

What is Computer Graphics (CG)?! Computer graphics " Algorithms, mathematics, data structures that computer uses to generate PRETTY PICTURES! Techniques (e.g., draw a line, polygon) evolved over years! Built into programmable libraries Computer Generated! Not a photo! 6

Photorealistic vs. Real-Time Graphics Not this Class This Class Photorealistic High quality Slow to render (days) Real-Time graphics Lower quality Fast to render (60 FPS) 7

Uses of Computer Graphics! Entertainment " Games Courtesy: Final Fantasy XIV Courtesy: Super Mario Galaxy 2 8

Uses of Computer Graphics! Entertainment " Movies, TV, books, magazines Courtesy: Shrek Courtesy: Spider-Man 9

Uses of Computer Graphics! Image processing " Alter images, remove noise, super- impose images Original Image Sobel Filter 10

Uses of Computer Graphics! Process monitoring " Layout of large systems or plants " Monitor manufacturing process " User control automa)c and manual control Courtesy: Dataviews.de 11

Uses of Computer Graphics! Display simulations " Flight simulators, virtual worlds Courtesy: Evans and Sutherland 12

Uses of Computer Graphics! Computer-aided design " Architecture, electric circuit design Courtesy: cadalog.com 13

Uses of Computer Graphics! Displaying Mathematical Functions " e.g., Mathema)ca 14

Uses of Computer Graphics! Scientific analysis and visualization " Molecular biology, weather, matlab, Mandelbrot set Courtesy: Human Brain Project, Denmark 15

2 Dimensional vs. 3 Dimensional! 2D! 3D " No no)on of distance " Objects have from viewer distance from viewer " Only (x, y) color values " (x, y, z) values on on screen screen This class covers both 2D & 3D! Also interaction, e.g., clicking, dragging, etc. 16

Related Areas to CG! Modeling: Shape of objects in a scene! Shading & Lighting: Surface & Environmental effects! Post Production: Tweaking the images! Computer Vision: Extracting info from images! Scientific Visualization: Making sense of data! Animation: Making things move over time and space! HCI: Incorporating user interaction 17

CG Tools! Hardware tools " Output devices! Monitors, projection systems, VR helmets, printers " Input devices! Mouse/trackball, pen/tablet, keyboard, other " Graphics accelerators! Software tools " IDEs (VS, Eclipse) " Editor (emacs, vi) " Compiler (g++) " Debugger " Graphics libraries! Your eyes 18

What is a CG Library?! Low-level routines " Points, lines, circles, text, etc.! High-level routines " Pull-down menus, window management, etc.! Some of this has traditionally been device dependent " Difficult to port, error prone! Now we have device/platform independence (almost) " WebGL, OpenGL, DirectX, etc. " XBOX, PS1/2/3/4/Vita/, Wii, DS, smartphones, etc. 19

Game Engines! Game Engines are frameworks that handle many aspects of games at a high level " Sit on top of low-level libraries (OpenGL/ DirectX) 20

What is a Game Engine?! A resource manager that supports an entertainment (usually) application! Graphical (audio, etc.) rendering! A user interface! Script handling! Event processing " Time, collisions, etc.! File I/O! Asset-creation tools " Models, graphics, sound, etc.! Optional " Networking " AI 21

About This Course! Computer Graphics has many aspects " Computer Scien.sts! Create/program CG tools/packages (e.g., Maya, photoshop) " Ar.sts! Use CG tools/packages to create prety pictures 22

About This Course! Most hobbyists follow artist path - Not much math! " This Course: Computer Graphics for computer scientists!!!! Teaches concepts, uses WebGL as a concrete example! Course is NOT " just about programming WebGL " a comprehensive course in OpenGL/WebGL. (Only covers parts) " about using packages like Maya, Photoshop 23

About This Course! Class is concerned with: " How to build/program graphics tools " Underlying mathema)cs " Underlying data structures " Underlying algorithms! This course is a lot of work. Requires: " Lots of coding in JavaScript " Shader programming " Lots of math, linear algebra, matrices! We shall combine: " Programmer s view: Program WebGL APIs " Under the hood: Learn OpenGL internals (graphics algorithms, math, implementa)on) 24

Evolution of Rendered Images! Multiple ways of representing things Wireframe Flat shading Smooth shading Environment mapping Bump mapping 25

Current State: Things are pretty good right now... 26

Elements of 2D Graphics! Polylines! Text! Filled regions! Raster images (pictures) 27

Elements of 2D Graphics! Polyline: connected sequence of straight lines! Straight lines connect ver.ces (corners) vertex 28

Polyline Attributes! Color! Thickness! S)ppling of edges (dash patern) 29

Filled Regions! Filled region: shape filled with some color or patern! Example: polygons 30

Raster Images! Raster image (picture) consists of 2D matrix of small cells (pixels, for picture elements ), in different colors or grayscale. Middle image: magnified showing pixels (squares) 31

Graphics Processing Unit (GPU)! OpenGL implemented in hardware => FAST!!! Programmable: As shaders! Located either on PC motherboard (Intel) or Separate graphics card (nvidia or AMD/ATI) GPU on PC motherboard GPU on separate PCI express card 32

Computer Graphics Libraries! Func)ons to a draw line, circle, image, etc.! Previously device- dependent " Different OS => different graphics library " Tedious! Difficult to port (e.g. move program Windows to Linux) " Error Prone! Now device- independent libraries " APIs: OpenGL, DirectX " Working OpenGL program minimal changes to move from Windows to Linux, etc.! Now even more! " Browser as app: WebGL 33

Simplified WebGL/OpenGL Pipeline! Ver)ces go in, sequence of steps (vertex processor, clipper, rasterizer, fragment processor) image rendered! This class: learn algorithms and order of these steps Vertex Shader Converts 3D to 2D Fragment (Pixel) Shader 34

OpenGL Programming Interface! Programmer view of OpenGL? " Applica)on Programmer Interface (API) " Writes OpenGL Applica)on programs Input devices Image formed in frame buffer Output device 35

Framebuffer! Dedicated memory loca)on: " Draw in framebuffer => shows up on screen " Located either on CPU (soiware) or GPU (hardware) logical address x y scan controller y x geometric position at (639, 0) 0 639 0 x pixel at address [x,y] spot at (x,y) frame buffer at (639, 479) convert pixel value to color 479 y display surface 36

References! Angel & Shreiner, Interac)ve Computer Graphics (7 th edi)on), Chapter 1 37