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

Similar documents
Lecture Notes, CEng 477

Introduction to Computer Graphics

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

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

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Computer Graphics Hardware An Overview

L20: GPU Architecture and Models

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

How To Teach Computer Graphics

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

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

Computer Graphics. Anders Hast

Advanced Rendering for Engineering & Styling

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Computer Graphics. Computer graphics deals with all aspects of creating images with a computer

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

Fundamentals of Computer Graphics

INTRODUCTION TO RENDERING TECHNIQUES

OpenGL & Delphi. Max Kleiner. 1/22

Canterbury Maps Quick Start - Drawing and Printing Tools

CS130 - Intro to computer graphics. Dr. Victor B. Zordan vbz@cs.ucr.edu Objectives

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

GPU Architecture. Michael Doggett ATI

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

MMGD0203 Multimedia Design MMGD0203 MULTIMEDIA DESIGN. Chapter 3 Graphics and Animations

Developer Tools. Tim Purcell NVIDIA

Introduction to GPGPU. Tiziano Diamanti

Introduction Week 1, Lecture 1

Certificate Courses in Animation

Dynamic Digital Depth (DDD) and Real-time 2D to 3D conversion on the ARM processor

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

CS 325 Computer Graphics

ACE: Illustrator CC Exam Guide

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

Adobe Illustrator CS5

Institution : Majmaah University. Academic Department : College of Science at AzZulfi. Programme : Computer Science and Information Course :

TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

OpenGL Performance Tuning

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

TEACHING GRAPHICS PROGRAMMING ON MOBILE DEVICES

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Writing Applications for the GPU Using the RapidMind Development Platform

Data Visualization in Parallel Environment Based on the OpenGL Standard

CS 378: Computer Game Technology

1. INTRODUCTION Graphics 2

Advanced Graphics and Animations for ios Apps

ACE: After Effects CC

Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint

Self-Positioning Handheld 3D Scanner

Basics of Computer 1.1 INTRODUCTION 1.2 OBJECTIVES

MassArt Studio Foundation: Visual Language Digital Media Cookbook, Fall 2013

SMART Notebook 11.3 software for Windows and Mac computers

The main imovie window is divided into six major parts.

Introduction to GPU Programming Languages

Graphics Input Primitives. 5. Input Devices Introduction to OpenGL. String Choice/Selection Valuator

The Future Of Animation Is Games

COMPUTER GRAPHICS Computer Graphics

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

Visualizing Data: Scalable Interactivity

Fundamentals of Computer Science (FCPS) CTY Course Syllabus

Intel Extreme Graphics 2 User s Guide for Version 14.x Driver Releases

Petascale Visualization: Approaches and Initial Results

ICS : 435. Computer Graphics Applications. Instructor : Da'ad Albalawneh

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER

Optimizing AAA Games for Mobile Platforms

IMGD 1001: The Game Art Pipeline

Ortelia Space Builder User Manual

Experiences with 2-D and 3-D Mathematical Plots on the Java Platform

Adobe Certified Expert Program

Adobe Illustrator CS5 Part 1: Introduction to Illustrator

How to build text and objects in the Titler

Real-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Graphical displays are generally of two types: vector displays and raster displays. Vector displays

Recipes4Success. Animate a Rocket Ship. Frames 6 - Drawing Tools

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

Intel Graphics Media Accelerator 900

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

The MaXX Desktop. Workstation Environment. Revised Road Map Version 0.7. for Graphics Professionals

Graphic Design. Background: The part of an artwork that appears to be farthest from the viewer, or in the distance of the scene.

Artificial Intelligence. Class: 3 rd

Technical Brief. Quadro FX 5600 SDI and Quadro FX 4600 SDI Graphics to SDI Video Output. April 2008 TB _v01

NVIDIA GeForce GTX 580 GPU Datasheet

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

PowerPoint: Graphics and SmartArt

Digital Video-Editing Programs

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Transcription:

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

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 picture!

Photorealistic Vs Real Time Graphics Not this Class This Class Photo realistic: E.g ray tracing slow: may take days to render Real Time graphics: Milliseconds to render (30 FPS) But lower image quality

Uses of Computer Graphics Entertainment: games Courtesy: Super Mario Galaxy 2 Courtesy: Final Fantasy XIV

Uses of Computer Graphics movies, TV, books, magazines Courtesy: Shrek Courtesy: Spiderman

Uses of Computer Graphics Image processing: alter images, remove noise, super impose images Original Image Sobel Filter

Uses of Computer Graphics Process monitoring: Layout of large systems or plants Courtesy: Dataviews.de

Uses of Computer Graphics Display simulations: flight simulators, virtual worlds Courtesy: Evans and Sutherland

Uses of Computer Graphics Computer aided design: architecture, electric circuit design Courtesy: cadalog.com

Uses of Computer Graphics Displaying Mathematical Functions E.g., Mathematica

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

2D Vs. 3D 2 Dimensional Flat Only (x,y) color values on screen Objects no notion of distance from viewer 3 Dimensional (x,y,z) values on screen Objects have distances from viewer This class covers both 2D & 3D! Also interaction: Clicking, dragging

About This Course Computer Graphics has many aspects Computer Scientists create graphics tools (e.g. Maya, photoshop) Artists use CG tools/packages to create pretty pictures

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

About This Course Class is concerned with: How to build graphics tools Underlying mathematics Underlying data structures Underlying algorithms This course is a lot of work. Requires: Lots of coding in C/C++ Shader programming Lots of math, linear algebra, matrices We shall combine: Programmer s view: Program OpenGL APIs Under the hood: Learn OpenGL internals (graphics algorithms, math, implementation)

Syllabus Summary 2 Exams (50%), 5 Projects (50%) Projects: Develop OpenGL/GLSL code on any platform, must port to Zoolab machine May discuss projects but turn in individual projects Class website: http://web.cs.wpi.edu/~emmanuel/courses/cs543/f13/ Text: Interactive Computer Graphics: A Top Down Approach with Shader based OpenGL by Angel and Shreiner (6th edition), 2012 Cheating: Immediate F in the course Advice: Come to class Read the text Understand concepts before coding

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

Elements of 2D Graphics Polyline: connected sequence of straight lines Straight lines connect vertices (corners) vertex blow-up

Polyline Attributes Color Thickness Stippling of edges (dash pattern)

Text Devices have: text mode graphics mode. Graphics mode: Text is drawn Text mode: Text not drawn uses character generator Text attributes: Font, color, size, spacing, and orientation Little Text Big Text Rotated Text Shadow Text Outlined text SMALL CAPS

Filled Regions Filled region: shape filled with some color or pattern Example: polygons A B C D

Raster Images Raster image (picture) is made up of 2D matrix of small cells (pixels, for picture elements ), in different colors or grayscale. (Right: magnified image showing pixels.)

Computer Graphics Tools Require hardware and software tools Hardware tools Output devices: Video monitors, printers Input devices: Mouse/trackball, pen/drawing tablet, keyboard Graphics cards/accelerators (GPUs) Software tools (low level) Operating system Editor Compiler Debugger Graphics Library (OpenGL)

Graphics Processing Unit (GPU) OpenGL implemented in hardware => FAST!! Programmable: as shaders Located either on PC motherboard (Intel) or Separate graphics card (Nvidia or ATI) On PC motherboard On separate PCI express card

Computer Graphics Libraries Functions to 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

OpenGL Basics OpenGL s function is Rendering (or drawing) Rendering? Convert geometric/mathematical object descriptions into images OpenGL can render: 2D and 3D Geometric primitives (lines, dots, etc) Bitmap images (pictures,.bmp,.jpg, etc) OpenGL Program OpenGL

GL Utility Toolkit (GLUT) OpenGL does NOT manage drawing window OpenGL GLUT: Window system independent Concerned only with drawing (2D, 3D, images, etc) No window management (create, resize, etc), very portable Minimal window management Interfaces with different windowing systems Easy porting between windowing systems. Fast prototyping GLUT OpenGL

GL Utility Toolkit (GLUT) No bells and whistles No sliders No dialog boxes No elaborate menus, etc To add bells and whistles, use system s API or GLUI: X window system Apple: AGL Microsoft :WGL, etc GLUT (minimal) Slider Dialog box

OpenGL Basics Low level graphics rendering API Maximal portability Display device independent (Monitor type, etc) Operating system independent (Unix, Windows, etc) Window system independent based (Windows, X, etc) OpenGL programs behave same on different devices, OS

Simplified OpenGL Pipeline Vertices 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

OpenGL Programming Interface Programmer view of OpenGL? Application Programmer Interface (API) Writes OpenGL Application programs

Framebuffer Dedicated memory location: Draw in framebuffer => shows up on screen Located either on CPU (software) 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

References Angel and Shreiner, Interactive Computer Graphics (6 th edition), Chapter 1 Hill and Kelley, Computer Graphics using OpenGL (3 rd edition), Chapter 1