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



Similar documents
Introduction to Computer Graphics

Lecture Notes, CEng 477

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

INTRODUCTION TO RENDERING TECHNIQUES

OpenGL & Delphi. Max Kleiner. 1/22

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

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

Computer Graphics Hardware An Overview

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

A Short Introduction to Computer Graphics

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

How To Teach Computer Graphics

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

Computer Graphics. Anders Hast

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

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

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

L20: GPU Architecture and Models

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

Interactive Computer Graphics

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

Touchstone -A Fresh Approach to Multimedia for the PC

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

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Introduction to Computer Graphics

An Introduction to. Graphics Programming

Computer Graphics on Mobile Devices VL SS ECTS

Optimizing AAA Games for Mobile Platforms

Introduction to Computer Graphics

CS 378: Computer Game Technology

GPU Architecture. Michael Doggett ATI

Introduction Week 1, Lecture 1

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Introduction to GPGPU. Tiziano Diamanti

Introduction to WebGL

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

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Programming 3D Applications with HTML5 and WebGL

Image Synthesis. Transparency. computer graphics & visualization

CPIT-285 Computer Graphics

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

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

Radeon HD 2900 and Geometry Generation. Michael Doggett

Web Based 3D Visualization for COMSOL Multiphysics

Graphics Pipeline in a Nutshell

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

COMPUTER GRAPHICS Computer Graphics

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

The Future Of Animation Is Games

CS 4204 Computer Graphics

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

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

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

Lecture Notes. Fundamentals of Computer Graphics. Prof. Michael Langer School of Computer Science McGill University

Plug-in Software Developer Kit (SDK)

Advanced Rendering for Engineering & Styling

Introduction to GPU Programming Languages

Equalizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH

An introduction to 3D draughting & solid modelling using AutoCAD

TEACHING GRAPHICS PROGRAMMING ON MOBILE DEVICES

Intel Graphics Media Accelerator 900

Chapter 2 - Graphics Programming with JOGL

1. INTRODUCTION Graphics 2

Geant4 Visualization. Andrea Dotti April 19th, 2015 Geant4 M&C+SNA+MC 2015

Fundamentals of Computer Graphics

Windows Phone 7 Game Development using XNA

Performance Optimization and Debug Tools for mobile games with PlayCanvas

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

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

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

Teaching Introductory Computer Graphics Via Ray Tracing

Chapter 6 - The Scene Graph

OpenGL Performance Tuning

Flash Tutorial Part I

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

JavaFX Session Agenda

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.

Last lecture... Computer Graphics:

Realtime 3D Computer Graphics Virtual Reality

Publishing Hosted 3D Feature Layers. An Esri White Paper September 2015

A JAVA-BASED MULTI-PARTICIPANT 3D GRAPHICS APPLICATION INTERFACE USING JAVAGL 1 AND JAVANL 2

SOEM 024: Computer Aided Design. E. Rozos

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

Basics of Computer 1.1 INTRODUCTION 1.2 OBJECTIVES

IT 386: 3D Modeling and Animation. Review Sheet. Notes from Professor Nersesian s IT 386: 3D Modeling and Animation course

CMSC 427 Computer Graphics 1

Java game programming. Game engines. Fayolle Pierre-Alain

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

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

Using WPF for Computer Graphics

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

VisIt Visualization Tool

NVIDIA GeForce GTX 580 GPU Datasheet

Transcription:

COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT These notes are intended to be read in conjunction with the OpenGL programming manual that s where all the detailed programming information is 2 COMP27112. Toby Howard, School of Computer Science,. 1

Raster graphics displays Raster graphics uses a 2D array of pixels (screens) or dots (printers) So images must be sampled The more samples, the better the fidelity But always an approximation 7 pixels 3 Raster graphics displays Raster graphics uses a 2D array of pixels (screens) or dots (printers) So images must be sampled The more samples, the better the fidelity But always an approximation 313 pixels 4 COMP27112. Toby Howard, School of Computer Science,. 2

Alternative: Vector Displays The first type of graphical display Cathode Ray Tube and controller Draws vectors essentially lines from point A to point B Usually monochrome (apparent colour here is done with transparent plastic overlays!) 5 Basic graphics system architecture Geometry transform Scan Conversion Shading Texture Processing Hidden Surface Removal Graphical Application Graphics Software CPU GPU Frame Buffer Memory DAC 6 COMP27112. Toby Howard, School of Computer Science,. 3

Basic graphics system architecture This is the classic producer/consumer situation producing pixels GPU Frame Buffer Memory DAC consuming pixels How do we synchronise the two activities? 7 Double buffering Geometry transform Scan Conversion Shading Texture Processing Hidden Surface Removal Graphical Application Graphics Software CPU GPU Frame Buffer A Frame Buffer B DAC 8 COMP27112. Toby Howard, School of Computer Science,. 4

Double buffering Geometry transform Scan Conversion Shading Texture Processing Hidden Surface Removal Graphical Application Graphics Software CPU GPU Frame Buffer A Frame Buffer B DAC 9 Double buffering Geometry transform Scan Conversion Shading Texture Processing Hidden Surface Removal Graphical Application Graphics Software CPU GPU Frame Buffer A Frame Buffer B DAC 10 COMP27112. Toby Howard, School of Computer Science,. 5

Double buffering The swap between the buffers takes place during the vertical retrace time of the monitor (aka VBLANK) the time between the end of drawing one frame, and beginning to draw the next. This time is a function of the refresh rate of the monitor (typically 75Hz). In OpenGL, the glutswapbuffers() command requests that a swap be scheduled for the next retrace. GPU Frame Buffer A Frame Buffer B DAC 11 OpenGL Open Graphics Library platform/language-independent origins in Silicon Graphics proprietary GL OpenGL first released 1992 Today: open standard for portable graphics programming (www.opengl.org) 12 COMP27112. Toby Howard, School of Computer Science,. 6

OpenGL vs. DirectX OpenGL Open standard, run by the Khronos Group Cross-architecture (Win/Mac/Linux ) DirectX Owned by Microsoft Functionally, the two systems are broadly similar For an in-depth comparison, see http://en.wikipedia.org/wiki/comparison_of_opengl_and_direct3d 13 Where OpenGL fits in Application model Application program Graphics system (OpenGL) Input device Display the user 14 COMP27112. Toby Howard, School of Computer Science,. 7

The OpenGL API OpenGL is a specification of an Application Programmer s Interface (API) A set of functions for doing 3D computer graphics used in industry, engineering, CAD, CGI/ SFX, research, games, education everywhere 15 OpenGL evolution OpenGL functionality has evolved over time: OpenGL v1, v2: fixed pipeline fixed functionality OpenGL v3+: programmable pipeline extensible functionality: programmers write shader microprograms OpenGL 4.5 (Aug 2014) In this introductory course we use the fixed pipeline pro: programming is simpler, more built-in support con: lack of flexibility, cannot fully exploit GPU 16 COMP27112. Toby Howard, School of Computer Science,. 8

Portability Application program API (C, C++, C#, Java, Python, Perl ) OpenGL Linux Mac Windows Mobile devices Other things not invented yet 17 OpenGL and interaction OpenGL only generates pixels it doesn t handle interaction devices for interaction, we use an additional library (called GLUT, see later) Application program GLUT OpenGL 18 COMP27112. Toby Howard, School of Computer Science,. 9

OpenGL graphics The main features of OpenGL 3D graphics (points, lines, polygons ) coordinate transformations a camera for viewing hidden surface removal lighting and shading texturing pixel (image) operations We ll take a whirlwind tour 19 Points Regular points Anti-aliased points 20 COMP27112. Toby Howard, School of Computer Science,. 10

Lines Lines, like all graphical primitives, have two kinds of property: geometry (shape) attributes (appearance) 21 Polygons Triangles Quadrilaterals Convex polygons 22 COMP27112. Toby Howard, School of Computer Science,. 11

Transformations OpenGL expresses coordinate transformations as 4x4 homogeneous matrices scaling shearing 23 Transformations rotation about x rotation about y rotation about z 24 COMP27112. Toby Howard, School of Computer Science,. 12

Transformations Transformations can be combined and nested Allowing complex objects to be assembled from simpler parts 25 The camera model Creating 2D views of 3D scenes perspective projection parallel projection 26 COMP27112. Toby Howard, School of Computer Science,. 13

The camera model 27 Hidden-surface removal 28 COMP27112. Toby Howard, School of Computer Science,. 14

Hidden-surface removal 29 Lighting and shading 30 COMP27112. Toby Howard, School of Computer Science,. 15

Lighting and shading 31 Lighting and shading 32 COMP27112. Toby Howard, School of Computer Science,. 16

Light position 33 Textures 34 COMP27112. Toby Howard, School of Computer Science,. 17

Modelling and rendering 35 Image compositing 36 COMP27112. Toby Howard, School of Computer Science,. 18

Alpha-blending for transparency 37 Support libraries OpenGL supports low-level rendering only for convenience, two support libraries were developed: GLU and GLUT they sit on top of OpenGL Application Program GLUT GLU OpenGL 38 COMP27112. Toby Howard, School of Computer Science,. 19

GLU GL Utility Library (GLU) provides functions which wrap up lowerlevel OpenGL graphics Curves, surfaces, cylinder, disc, quadrics... Utility functions Viewing Textures Tessellation Command reference: http://www.opengl.org/sdk/docs/man/ 39 OpenGL needs convex polygons Convex polygon How to decide if a polygon is convex or not? Q: Is it possible to find 2 points inside the polygon such that the line between them goes outside the polygon? A: If it IS NOT possible, the polygon is convex. Non-Convex polygon ( concave polygon) 40 COMP27112. Toby Howard, School of Computer Science,. 20

Tessellation GLU provides functions to tessellate polygons BEFORE: This concave polygon can t be rendered correctly 1 AFTER: A set of convex polygons each of which can be correctly rendered 2 3 4 41 GLUT GL Utility Toolkit (GLUT) Interaction interaction (mouse and keyboard) simple menu system Primitives Sphere, torus, cone, cube [Tetra Octo Dodeca Icosa] hedron Teapot Command reference: Link to PDF on course webpage 42 COMP27112. Toby Howard, School of Computer Science,. 21

OpenGL on Linux Application program GLUT GLU OpenGL together loosely called OpenGL X windows Linux 43 What do do next 1. OpenGL manual go through Tutorial in Chapters 1-6. 2. Do Coursework 1 44 COMP27112. Toby Howard, School of Computer Science,. 22