Introduction to Computer Graphics



Similar documents
Introduction Week 1, Lecture 1

Introduction Week 1, Lecture 1

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

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

Introduction to Computer Graphics

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Lecture Notes, CEng 477

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

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

COMPUTER GRAPHICS Computer Graphics

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

How To Teach Computer Graphics

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

Computer Graphics. Anders Hast

A Short Introduction to Computer Graphics

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

C O M P U T E R G R A P H I C S. Computer Graphics. Introduction I. Guoying Zhao 1 / 58

BUILDING TELEPRESENCE SYSTEMS: Translating Science Fiction Ideas into Reality

Fundamentals of Computer Graphics

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

Introduction to Computer Graphics

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

Adobe Illustrator CS5

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

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

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

CS 4300 Computer Graphics. Prof. Harriet Fell Fall 2012 Lecture 1 September 5, 2011

Chapter 2 - Graphics Programming with JOGL

GR Framework / MODBUS on Raspberry Pi

1. INTRODUCTION Graphics 2

Teaching Introductory Computer Graphics Via Ray Tracing

A Basic Summary of Image Formats

INTERACTIVE COMPUTER GRAPHICS Data Structures, Algorithms, Languages

GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus

Lezione 4: Grafica 3D*(II)

COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010

Input and Interaction. Project Sketchpad. Graphical Input. Physical Devices. Objectives

B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

JAVA DEVELOPER S GUIDE TO ASPRISE SCANNING & IMAGE CAPTURE SDK

Enhanced LIC Pencil Filter

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

Links. Blog. Great Images for Papers and Presentations 5/24/2011. Overview. Find help for entire process Quick link Theses and Dissertations

CPIT-285 Computer Graphics

AML710 CAD LECTURE 1. Introduction to CAD. Motivation Principles of CAD / CAM. AML710 Computer Aided Design

Digital Imaging and Image Editing

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

CAD and Creativity. Contents

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

Input and Interaction

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

Digital Video-Editing Programs

JavaFX Session Agenda

Digital Image Fundamentals. Selim Aksoy Department of Computer Engineering Bilkent University

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

Cork Education and Training Board. Programme Module for. 3 Dimensional Computer Graphics. Leading to. Level 5 FETAC

Computer Graphics Global Illumination (2): Monte-Carlo Ray Tracing and Photon Mapping. Lecture 15 Taku Komura

GR A universal framework for visualization applications

Basics of Computer 1.1 INTRODUCTION 1.2 OBJECTIVES

Self-Positioning Handheld 3D Scanner

Interactive Computer Graphics

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

ACADEMIC TECHNOLOGY SUPPORT

Computer Graphics Hardware An Overview

INTRODUCTION TO RENDERING TECHNIQUES

Haptics Don t Lose Touch with Virtual Reality. Petr Kmoch Computer Graphics Group MFF UK

Adobe Illustrator CS5 Part 1: Introduction to Illustrator

OpenGL & Delphi. Max Kleiner. 1/22

Cartoon-Looking Rendering of 3D-Scenes

Finger Paint: Cross-platform Augmented Reality

New Paltz Central School District Technology Computer Graphics 1 and 2. Time Essential Questions/Content Standards/Skills Assessments

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

Visualizing Data: Scalable Interactivity

VRSPATIAL: DESIGNING SPATIAL MECHANISMS USING VIRTUAL REALITY

CHAPTER 6: GRAPHICS, DIGITAL MEDIA, AND MULTIMEDIA

Data Storage 3.1. Foundations of Computer Science Cengage Learning

Data Storage. Chapter 3. Objectives. 3-1 Data Types. Data Inside the Computer. After studying this chapter, students should be able to:

Advanced Rendering for Engineering & Styling

TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE

Computer Graphics. Dr. S.M. Malaek. Assistant: M. Younesi

Adobe Training Services Exam Guide. ACE: Illustrator CS6

Computer Graphics. Overview. Thomas Funkhouser Princeton University C0S 426, Fall Introduction. Applications. Syllabus. Coursework.

B.A IN GRAPHIC DESIGN

GRAPHIC DESIGN BITES FOR MARKETERS

Low power GPUs a view from the industry. Edvard Sørgård

UNIVERSITY OF CALICUT

Developing Applications for ios

Introduction to GPGPU. Tiziano Diamanti

IT Fundamentals of Multimedia (Optional)

Feature Comparison of PTC Creo View MCAD. Product Suite. Topic Sheet. Page 1 of 6 Feature Comparison of PTC Creo View MCAD Product Suite

Electronic Records Management Guidelines - File Formats

Develop Computer Animation

CS 378: Computer Game Technology

TEXTURE AND BUMP MAPPING

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Transcription:

Chapter 1 Objectives Introduction to Computer Graphics To understand the basic objectives and scope of computer graphics To identify computer graphics applications To understand the basic structures of 2D and 3D graphics systems To understand evolution of graphics programming environments To identify common graphics APIs To understand the roles of Java language, Java 2D and Java 3D packages To identify computer graphics related fields Computer Graphics: A Brief History In The Beginning 1963 Ivan Sutherland s Sketchpad Modified oscilloscope for drawing The original CAD system Graphics Hardware History Display Hardware vector displays 1974 E&S Picture System raster displays 1975 E&S frame buffer 1980s cheap frame buffers bit-mapped personal computers 1990s liquid-crystal displays laptops 2000s micro-mirror projectors digital cinema Other developments stereo, head-mounted displays autostereoscopic displays tactile, haptic, sound Input Hardware 2D light pen, tablet, mouse, joystick, track ball, touch panel 1970s & 80s - CCD analog image sensor + frame grabber 1990s & 2000 s - CMOS digital sensor + in-camera processing high-x imaging (dynamic range, resolution, depth of field, ) 3D 3D trackers, 3D scanners multiple cameras active rangefinders other data gloves voice Computer Graphics from 66,000ft 2D Graphics User Interaction/GUI 2D graphics and image processing 3D graphics/modeling Animation/Simulation Photorealism Virtual Reality Graphics Hardware Graphics programming environments Raster: Pixels X11 bitmap, XBM X11 pixmap, XPM GIF TIFF PNG JPG Lossy, fuzzy when transforming, good for photos. Vector: Drawing instructions Postscript CGM Fig DWG Non-lossy, smooth when scaling, good for line art and diagrams. Example of a JPG image. 1

2D Graphics Raster: Vector: Adobe Photoshop: 2D Raster Graphics 2D Raster Graphics Adobe Illustrator: 2D Vector Graphics 2D Vector Graphics Graphics Displays Nearly all video displays today are RASTER How do we go from bits and shapes to pixels on a raster display? 2

The Frame Buffer Video memory holding pixels from which the video display is refreshed I.e. essentially a pix/bit map, a Raster image Usually implemented on hardware cards Smart frame buffers Accelerated 2D and 3D interaction Color depth (1, 8, 16, 24, 32 bit), Z-buffering Double buffering: use of a second memory space to reduce visual artifacts, i.e. swap in-andout screen buffers 3D Rendering 1960s - the visibility problem Roberts (1963), Appel (1967) - hidden-line algorithms Warnock (1969), Watkins (1970) - hidden-surface algorithms Sutherland (1974) - visibility = sorting 1970s - raster graphics Gouraud (1971) - diffuse lighting Phong (1974) - specular lighting Blinn (1974) - curved surfaces, texture Catmull (1974) - Z-buffer hiddensurface algorithm Crow (1977) - anti-aliasing 3D Rendering Present Developments Toward Reality early 1980s - global illumination Whitted (1980) - ray tracing Goral, Torrance et al. (1984), Cohen (1985) - radiosity Kajiya (1986) - the rendering equation late 1980s - photorealism Cook (1984) - shade trees Perlin (1985) - shading languages Hanrahan and Lawson (1990) - RenderMan early 1990s - nonphotorealistic rendering Drebin et al. (1988), Levoy (1988) - volume rendering Haeberli (1990) - impressionistic paint programs Salesin et al. (1994-) - automatic pen-and-ink illustration Meier (1996) - painterly rendering Lord of the Rings Troll Scientific & Medical Pixar 3

Scientific & Medical τ s = θθ& θ& M V G(θF(θ& ( ) + ( θ, ) + ) +, θ) Regli et al @ Drexel Scientific & Medical Visualization Lombeyda, Breen @ CalTech Scientific Boeing http://space.jpl.nasa.gov/ Hamburg U, Germany Telepresence Scientific UCLA Id Software Scientific Kimmel Center FakeSpace Cave 4

Computer Graphics Modeling: Creating a virtual world. Rendering: Generating a visual image of a scene. Rendering Virtual world model Image of a scene Modeler and Renderer Modeler: responsible for construction and maintenance of virtual world model Renderer: performs the rendering of a scene from a specific view on the graphics device Note: some systems don t have a clear delineation between the two World Space Transformations World Space: Either a 2D or 3D space in which objects are modeled The output of a graphics system is usually in 2D Although output in 2D form for each, 3D graphics considerably more complex Different types: Object transformations: geometric transforms applied to achieve proper placement of the objects in virtual space Viewing transformations: transforms used for viewing Transformations Affine transformations: Geometric transforms including: Translations Rotations Scalings Reflections Projective transformations: Used for 3D viewing ( projecting a 2D rep of a 3D object) Views Views are used to see the model from some specific perspective Viewing in 2D is simple Object transformations and viewing transformations are usually the same 3D Viewing is far more complex Process involving mapping a 3D model to a 2D plane 5

SE 3D Viewing Issues Depends on position of the view, orientation, field of view, etc Hidden object issues Hidden lines, hidden surfaces, etc Hidden objects should not be shown Light sources should be considered The type of material the objects are made of should be modeled and considered with lighting E.g., shiny materials, etc All of these things require computational overhead Graphics System: Components and Functions Modeler Renderer Hardware device Virtual World View Geometry Transformation Illumination Interaction Animation Graphics Programming Environment Platform Independent (Java 2D and Java 3D) Graphics Standard (GKS, PHIGS, OpenGL) OS (WIN32, X, Mac OS) Hardware (direct register/video buffer programming) Hardware Level Program the graphics hardware directly Typically written in low-level languages Manipulate the hardware registers and video buffers Highly machine-dependent Example: MS-DOS graphics program Determination of the pixels on a circle. From the current pixel, the next pixel will be either to the east or to the southeast. E Operating System Level Program through OS graphics support Do not directly manipulate graphics hardware Portable on Run the same platform Example: WIN32 hdc = BeginPaint (hwnd, &ps); GetClientRect (hwnd, &rc); cx = (rc.left + rc.right)/2; cy = (rc.top + rc.bottom)/2; if (rc.bottom - rc.top < rc.right - rc.left) r = (rc.bottom - rc.top) / 2-20; else r = (rc.right - rc.left) / 2-20; Ellipse(hdc, cx-r, cy-r, cx+r, cy+r); EndPaint (hwnd, &ps); GKS and PHIGS Graphics Kernel System International standard (ISO 7942 1985) 2D graphics Common language binding: FORTRAN Example: A FORTRAN GKS program to draw a circle Bindings in C and Pascal are also available Programmer s Hierarchical Interactive Graphics System ISO 9592 1991 3D graphics 6

OpenGL Run Popular 2D/3D graphics API over 200 functions Common language binding: C Example: An OpenGL program to draw a circle GLUT GLU GL 3D Example: A spinning sphere OpenGL Run Java Java 3D based graphics systems Graphics application Java 2D and other Java APIs Java 3D Java VM OpenGL (or DirectX) OS Display driver Graphics card Display Java Programming Language Simple Run Object Oriented (OOP) Write once, run anywhere Multithreaded Java graphics: AWT / Swing AWT Example JOGL Run OpenGL Java language binding No OOP modeler 1. Create a GLCanvas or GLJPanel object through the GLDrawableFactory class. 2. Add a GLEvent listener to the canvas object. 3. Implement the listener by implementing the four methods: init, display, reshape, and displaychanged. Java 2D Run engine Standard package of Java 2 platform Improvements over AWT Graphics2D class Java 2D s rendering 7

Java 3D Run High-level API Scene graph Modeler/Renderer Java Integration Background L Bounds L Text3D TG S Appearance Material 000000000000 000000000000 BG Rotator TG Geometry Texture coordinates Sphere Appearance Texture2 D View Branch Other Fields Related to Graphics Image processing Computer vision Mathematics Analytic geometry Linear algebra 8