# Lecture 6: Polygon rendering and OpenGL

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Lecture 6: Polygon rendering and OpenGL 3-Dimensional Objects Bounded by Planar Surfaces (Facets) Y 4 8 Z X NUMERICAL TOPOLOGICAL DATA DATA Points Lines Faces 1. [0,0,0] 1. 1>>2 1,2,4,4 2. [2,0,0] 2. 1>>4 1,4,8,5 3. [2,2,0] 3. 1>>5 &c 4. [0,2,0] 4. 3>>4 &c 5. 3>>2 &c Diagram 1: Representing 3D objects A planar facet is defined by an ordered set of 3D vertices, lying on one plane, which form a closed polygon, (straight lines are drawn from each vertex to the following one with the last vertex connected to the first). The data describing a facet are of two types. First, there is the numerical data which is a list of 3D points, (3*N numbers for N points), and secondly, there is the topological data which describes which points are connected to form edges of the facet. For the cube shown in Diagram 1 we need 24 real numbers for the numerical data, 24 integers to store the line topology, and 24 integers to store the face topology. We will also need to maintain the number of lines and faces in the figure, and the number of edges per face. All this could be done using static structures (arrays), alternatively, if we start with abstract data types that express the structure of three dimensional objects, we may define the following data types (Diagram 2): Face 1 Face 2 Face 3 Object &c. Edge 1 Edge 2 Edge 3 Edge 4 P1 P2 &c. &c. P2 P3 P3 P4 P4 P1 Diagram 2 Possible Organisation for Graphical Data ordinate=x,y,z; Point = array[ordinate] of real; Edge = record start, finish: Point; end ; Edgelist = record thisedge: Edge ; nextedge: ^Edgelist; end ; Facetlist = record thisfacet: ^Edgelist; nextfacet:^facetlist; end ; Object=^Facetlist; It should be noted that redundancy exists in this case, since edges which belong to two facets are duplicated, and vertices which belong to three edges appear three times. However, when a large number of objects are processed, redundancy of data may help the speed. Later on in this lecture we will see other examples where this is true. What is OpenGL? OpenGL is a software library which creates an interface to graphics hardware. The OpenGL library provides an interface to the graphics hardware at the lowest level. Many graphics applications or graphics packages provide an interface to the graphics hardware at a much higher level and are built on top of OpenGL. Examples are packages such as OpenInventor or VTK. OpenGL is not a

2 general purpose graphics system. Instead, OpenGL is a polygon-based rendering system which supports a small number of geometric primitives for creating models: points, lines and polygons. Application or high-level graphics library OpenGL Utility Library (GLU) OpenGL Extension (GLX, WGL) OpenGL Utility Toolkit (GLUT) OpenGL Library (GL) Graphics hardware Figure 1: Overview of the OpenGL API OpenGL is hardware and operating system independent. It is up to the underlying implementation of the OpenGL system to decide how to implement the OpenGL functionality. On some platforms, the implementation may use accelerated hardware for rendering while on other platforms the implementation may use only software for rendering. OpenGL is available for operating systems like Windows 98/NT, Linux and Unix and for a wide variety of programming languages such as C, C++, Ada, Fortran and Java. The functionality of the OpenGL library is extended by a number of related libraries: The OpenGL utility library (GLU) contains several convenience routines which are implemented in terms of lower-level OpenGL commands. These include routines for setting up viewing transformations. The OpenGL Utility Toolkit (GLUT), a window system independent toolkit for writing OpenGL programs, implements a simple windowing application programming interface for OpenGL. GLUT makes it considerably easier to learn about and to explore OpenGL programming. In addition it provides a portable application programming interface (API) which facilitates writing a single OpenGL program that works on window systems such as Microsoft Windows and X Window System environments. Finally, each window system has a specific library that extends OpenGL functionality on that platform. For the X Window System, the OpenGL extension is called GLX. For Microsoft Windows, the OpenGL extension is called WGL. OpenGL Command Syntax All OpenGL commands use the prefix gl before the command name. Similarly, the OpenGL related libraries GLU and GLUT use the prefix glu and glut before the command name. For example, to define a vertex at position (1.0, 2.0, 0) the OpenGL command is: glvertex3f(1.0, 2.0, 0.0); In addition, the suffix 3f after the command name specifies the number of arguments and their type. In the example above, the last letter indicates the data type of the arguments (float in this case), while the preceding number indicates the number of arguments expected (3 in this case). Other

3 possible data types include bytes (suffix b), short integers (suffix s), long integers (suffix i), and doubles (suffix d). Most OpenGL arguments are available for different number and types of arguments. For example, the effect of the command glvertex2i(1, 2); is equivalent to the command above, except that it expects only two arguments whose type is int. OpenGL State Machine OpenGL is a state machine. OpenGL can be put into various states (or modes) that remain in effect until they are changed. The state encapsulates control for operations like transformations, rendering, lighting, shading and texture mapping. For example color is a state variable. By setting the color to red with command glcolor3f(1.0, 0.0, 0.0); the state of the variable color is set to red and all objects are drawn in this color until the current color is set to another color. Many other state variables can be enabled with the commands glenable() and gldisable(). OpenGL Rendering Pipeline In OpenGL the different processing stages define the OpenGL rendering pipeline (shown in Figure 2). At the beginning of this pipeline are either vertex data (describing points, lines, and polygons) or pixel data (bitmaps, pixmaps). The rendering pipeline is slightly different for vertex and pixel data. In the following, the rendering pipeline for vertex data is described in more detail. All geometric data has to be represented by vertices. However, it is common in computer graphics to model curves and surfaces by representing them in a parametric form, i.e. using control points. These representations are compact and easy to modify and store. Before such curves and surfaces can be rendered, they have to be transformed to vertices. Evaluators provide ways of deriving vertex data including their spatial coordinates, texture coordinates and surface normals from these parametric representations. The vertex data is then passed to the next stage during which per-vertex operations are carried out. In this stage vertices are transformed from their world coordinates to their screen coordinates. If texture-mapping is enabled, the texture coordinates of vertices are calculated. If lighting is enabled, the lighting for each vertex is calculated using its transformed position and surface normal, the light source position, as well as other lighting information. The next stage for vertex data is the primitive assembly during which vertex data may be clipped according to the shape of the viewing volume. For point data, clipping may be achieved by accepting or rejecting vertices. For line and polygon data, clipping may introduce new vertices depending on how a line or polygon is clipped. During the rasterization stage, both geometric data and pixel data are converted to fragments where each fragment corresponds to a pixel in the framebuffer. In this step, parameters such as line pattern and width are taken into account. Furthermore, calculations necessary for antialiasing are carried out. At the end of this step each fragment has an associated value for its color and depth.

4 Vertex data Evaluators Per-vertex operations and primitive assembly Display list Rasterization Per-fragment operations Pixel data Pixel operations Texture assembly Framebuffer Figure 2: Order of operations in the OpenGL rendering pipeline In the final stage, so-called per-fragment operations are performed. Before anything is drawn into the framebuffer, series of operations are performed to modify or delete fragments. For example, fragments may be passed through a number of tests including the depth-buffer test (which eliminates hidden surfaces using a z-buffer algorithm). If a fragment fails the test, it is not processed any further. Finally, other operations such as blending or dithering may be performed. At the end of this step, the processed fragments are drawn into the framebuffer. OpenGL Drawing Primitives OpenGL supports a number geometric primitives for drawing. All geometric primitives are described in terms of vertices. Each vertex is represented as the three coordinates (x, y, z) of a 3D point and can be used to define the endpoints of line segments or the corners of polygons. Note that internally OpenGL uses homogeneous coordinates so that each vertex is actually represented by four coordinates (x, y, z, w). If w is different from zero, these coordinates correspond to the Euclidean point (x/w, y/w, z/w). Since vertices can be used to define different geometric primitives such as points, lines and polygons, the type of geometric primitive associated with the vertex data has to be defined explicitly. For example, the following two code segments can be used to draw a polygon or a set of points: glbegin(gl_polygon); glvertex3f(0.0, 0.0, 0.0); glvertex3f(0.0, 3.0, 0.0); glvertex3f(4.0, 3.0, 0.0); glvertex3f(5.0, 1.5, 0.0); glvertex3f(4.0, 0.0, 0.0);

5 glend(); glbegin(gl_points); glvertex3f(0.0, 0.0, 0.0); glvertex3f(0.0, 3.0, 0.0); glvertex3f(4.0, 3.0, 0.0); glvertex3f(5.0, 1.5, 0.0); glvertex3f(4.0, 0.0, 0.0); glend(); An example of the output of the two code segments is shown in Figure 3. In addition to these two geometric primitives, OpenGL defines eight further geometric primitives shown in Figure 4. These include unconnected line segments (GL_LINES), connected line segments (GL_LINE_STRIP), triangles (GL_TRIANGLES), triangle strips (GL_TRIANGLE_STRIP), and fans (GL_TRIANGLE_FAN) as well as quadrilaterals (GL_QUADS) and quadrilaterals strips (GL_QUAD_STRIP). Quadrilaterals are four sided polygons. In addition to defining the coordinates of each vertex (using glvertex()), one can also define additional data for each vertex such as its color (using glcolor()), its normal (using glnormal()) and its texture coordinates (using gltexcoord()). Figure 3: Drawing a polygon or a set of points

6 GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUADS GL_POLYGON Figure 4: Different geometric primitives In general, polygons can be very complicated and slow to draw so that many high performance graphics systems like OpenGL make some strong assumptions on valid polygons. First, the edges of the polygon cannot intersect (i.e. the polygon must be simple). Second, polygons cannot have indentations (i.e. the polygon must be convex). In the real-world, the surfaces of objects consist often of non-simple or non-convex polygons. However, since all non-simple or non-convex polygons can be described as unions of simple, convex polygons, the problem does not arise in practice. For example, to draw non-convex polygons, one can subdivide them into convex polygons, i.e. triangles. Finally, the polygons must be planar, i.e. the vertices of a polygon must lie in a plane. Non-planar polygons are not allowed since after various transformations they may project to non-simple or non-convex polygons. OpenGL Viewing In order to render geometric primitives, OpenGL requires the definition of a number of transformations which determine the relationship between world, model, camera and screen coordinates. In OpenGL, the viewing, modelling, and projection transformations are specified by 4 x 4 matrices. The first matrix is the modelview matrix which transforms object coordinates into eye coordinates. In the next step, OpenGL applies the projection matrix to yield clipped coordinates. At this point, normalized device coordinates are obtained by perspective division, that means coordinates in the form (x, y, z, w) are normalised to yield (x/w, y/w, z/w, 1). Finally, window coordinates are obtained by applying the viewport transformation.

7 World coordinates Window coordinates Modelview transformation Perspective transformation Clip coordinates Perspective division Camera coordinates Normalised device Viewport coordinates transformation Figure 5: Transformtions in OpenGL The easiest way to set up the viewing transformation is to use the function glulookat(): void glulookat(float eyex, float eyey, float eyez, float focalx, float focaly, float focalz, float upx, float upy, float upz); Here the desired viewpoint is specified by eyex, eyey and eyez. The focalx, focaly and focalz arguments specify the focal point along the line of sight while the upx, upy and upz arguments specify the direction which is up. OpenGL supports perspective and orthographic (parallel) projection transformations. In order to define a perspective transformation, a viewing frustum must be defined. This viewing frustum forms a truncated pyramid which encapsulates the viewing volume (the part of the world which is visible). In this truncated pyramid the base corresponds to the front clipping plane while the apex corresponds to the back clipping plane. The easiest way to set up the perspective projection transformation is to use the function gluperspective(): void gluperspective(float fovy, float aspect, float near, float far); The meaning of the parameters of the function gluperspective() is illustrated in Figure 6: The parameter fovy specifies the angle of the field of view while the aspect defines the aspect ratio of the viewing frustum, i.e. its width divided by its height. The near and far values denote the distance of the viewpoint to the front and back clipping planes. As mentioned it is also possible to set up a parallel (or orthographic) projection transformation using the function glortho: glortho(double left, double right, double bottom, double top, double near, double far); The meaning of the parameters of the function glortho() is illustrated in Figure 7.

8 y w h θ near far x aspect = w / h z Figure 6: Specifying the perspective projection transformation using gluperspective top left far right towards the viewpoint near bottom Figure 7: Specifying the parallel projection transformation using glortho

### CS312. OpenGL basics

CS312 OpenGL basics What is opengl? A low-level graphics library specification. A small set of geometric primitives: Points Lines Polygons Images Bitmaps Geometric primitives Image primitives OpenGL Libraries

OpenGL & Delphi Max Kleiner http://max.kleiner.com/download/openssl_opengl.pdf 1/22 OpenGL http://www.opengl.org Evolution of Graphics Assembler (demo pascalspeed.exe) 2D 3D Animation, Simulation (Terrain_delphi.exe)

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

Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing

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

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Questions 2007 INSTRUCTIONS: Answer all questions. Spend approximately 1 minute per mark. Question 1 30 Marks Total

### Computer Graphics. Anders Hast

Computer Graphics Anders Hast Who am I?! 5 years in Industry after graduation, 2 years as high school teacher.! 1996 Teacher, University of Gävle! 2004 PhD, Computerised Image Processing " Computer Graphics!

### Aston University. School of Engineering & Applied Science

CS2150 Aston University School of Engineering & Applied Science CS2150: Computer Graphics January Examinations 2010 Date: XXX Time: XXX Instructions to Candidates: 1. Answer Question ONE and any other

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

4ICT10 Computer Graphics and Virtual Reality 5. Input Devices Introduction to OpenGL Dr Ann McNamara String Choice/Selection Valuator Graphics Input Primitives Locator coordinate pair x,y Pick required

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

GPU Generations CSE 564: Visualization GPU Programming (First Steps) Klaus Mueller Computer Science Department Stony Brook University For the labs, 4th generation is desirable Graphics Hardware Pipeline

### CSE 167: Lecture #3: Projection. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

CSE 167: Introduction to Computer Graphics Lecture #3: Projection Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011 Announcements Project 1 due Friday September 30 th, presentation

### Intro to Polygons. Objectives

Intro to Polygons Objectives Introduce polygon and terminology Polygon data structures Filling polygons on the 2D image plane Polygons in 3D 2 1 Polygons Multi-sided planar element composed of edges and

### 14 Introduction to C++ and OpenGL

14 14.1 Some C++ Basics Here are a few tips for programming in C++, assuming you re already familiar with Java. C++ and Java have similar syntax, but there are several significant differences in how they

### Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg

Android and OpenGL Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering 16. Dezember 2013 Outline 1 OpenGL Introduction 2 Displaying Graphics 3 Interaction

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

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

### CS 4204 Computer Graphics. OpenGL and GLUT Overview. What is it for us? OpenGL Basics

CS 4204 Computer Graphics OpenGL Basics Doug Bowman (based on notes by Yong Cao) References: 2001 Siggraph, An Interactive Introduction to OpenGL Programming, Dave Shreiner,Ed Angel, Vicki Shreiner Official

### Architecture of a Graphics Pipeline. 6 February 2007 CMPT370 Dr. Sean Ho Trinity Western University

Architecture of a Graphics Pipeline 6 February 2007 CMPT370 Dr. Sean Ho Trinity Western University Review last time Visual computing: Computer graphics and image analysis Objectives of visual computing

### The OpenGL API defines an interface (to graphics hardware) that deals

An Overview of the HP OpenGL Software Architecture OpenGL is a hardware-independent specification of a 3D graphics programming interface. This specification has been implemented on many different vendors

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

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

### 52. Explain interrupt scheme for retrieving input data. Also explain any one algorithm for input device handling. 53. Explain the process of 3-D

Computer Graphics 1. Derive the equation for the intercept form of the line. 2. Explain the frame buffer, point and pixels. 3. Describe the Digital Differential Analyzer (DDA) for line drawing. 4. Explain

### Computer Graphics (CS 543) Lecture 1 (Part 2): Introduction to OpenGL/GLUT (Part 1)

Computer Graphics (CS 543) Lecture 1 (Part 2): Introduction to OpenGL/GLUT (Part 1) Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Recall: OpenGL/GLUT Basics OpenGL s function

### OpenGL Tutorial. By Jason Lawrence

OpenGL Tutorial By Jason Lawrence OpenGL ISan API OpenGL ISnothing more than a set of functions you call from your program (think of as collection of.h file(s)). Hides the details of the display adapter,

### General Information. Studentrepresentanternas ansvar. Overview of the Pipeline and OpenGL. Ulf Assarsson

1. I am located in room 4115 in EDIT-huset 2. Email: 3. Phone: 031-772 1775 (office) 4. Course assistant: Ulf Assarsson Chalmers University of Technology Tomas Akenine-Mőller 2002 General Information No

### Introduction to Computer Graphics

Introduction to Computer Graphics Torsten Möller TASC 8021 778-782-2215 torsten@sfu.ca www.cs.sfu.ca/~torsten Today What is computer graphics? Contents of this course Syllabus Overview of course topics

### (Refer Slide Time: 1:21)

Introduction to Computer Graphics Dr. Prem Kalra Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 5 Polygon Clipping and Polygon Scan Conversion We have been

### Transformations in the pipeline

Transformations in the pipeline gltranslatef() Modeling transformation ModelView Matrix OCS WCS glulookat() VCS CCS Viewing transformation Projection transformation DCS Viewport transformation (e.g. pixels)

### Programming with OpenGL Part 1: Background. Ed Angel Professor Emeritus of Computer Science University of New Mexico

Programming with OpenGL Part 1: Background Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 Objectives Development of the OpenGL API OpenGL Architecture - OpenGL as a state machine

### Topic 4 OpenGL 1: Background. CITS3003 Graphics & Animation. Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012

Programming with OpenGL Part 1: Background CITS3003 Graphics & Animation Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 1 Objectives Development of the OpenGL API

### 4BA6 - Topic 4 Dr. Steven Collins. Chap. 5 3D Viewing and Projections

4BA6 - Topic 4 Dr. Steven Collins Chap. 5 3D Viewing and Projections References Computer graphics: principles & practice, Fole, vandam, Feiner, Hughes, S-LEN 5.644 M23*;-6 (has a good appendix on linear

### Polygon Scan Conversion and Z-Buffering

Polygon Scan Conversion and Z-Buffering Rasterization Rasterization takes shapes like triangles and determines which pixels to fill. 2 Filling Polygons First approach:. Polygon Scan-Conversion Rasterize

### Introduction to Computer Graphics Techniques and Applications. Hong Qin Center for Visual Computing (CVC) Stony Brook University

Introduction to Computer Graphics Techniques and Applications Hong Qin Center for Visual Computing (CVC) Stony Brook University Presentation Outline What is computer graphics? 3D graphics pipeline Programming

### A Short Introduction to Computer Graphics

A Short Introduction to Computer Graphics Frédo Durand MIT Laboratory for Computer Science 1 Introduction Chapter I: Basics Although computer graphics is a vast field that encompasses almost any graphical

### The Design of the OpenGL Graphics Interface

The Design of the OpenGL Graphics Interface Mark Segal Kurt Akeley Silicon Graphics Computer Systems 2011 N. Shoreline Blvd., Mountain View, CA 94039 Abstract OpenGL is an emerging graphics standard that

### Realtime 3D Computer Graphics Virtual Reality

Realtime 3D Computer Graphics Virtual Realit Viewing and projection Classical and General Viewing Transformation Pipeline CPU Pol. DL Pixel Per Vertex Texture Raster Frag FB object ee clip normalized device

### 3D Viewing. Chapter 7. Projections. 3D clipping. OpenGL viewing functions and clipping planes

3D Viewing Chapter 7 Projections 3D clipping OpenGL viewing functions and clipping planes 1 Projections Parallel Perspective Coordinates are transformed along parallel lines Relative sizes are preserved

### Graphics Pipeline in a Nutshell

Graphics Pipeline in a Nutshell How do we create a rendering such as this? CS334 Spring 2008 Design the scene (technical drawing in wireframe ) Apply perspective transformations to the scene geometry for

### Shadow Algorithms. Image Processing and Computer Graphics. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics Shadow Algorithms Matthias Teschner Computer Science Department University of Freiburg University of Freiburg Computer Science Department Computer Graphics - 1 Outline

### Computer Graphics: Visualisation Lecture 3. Taku Komura Institute for Perception, Action & Behaviour

Computer Graphics: Visualisation Lecture 3 Taku Komura tkomura@inf.ed.ac.uk Institute for Perception, Action & Behaviour Taku Komura Computer Graphics & VTK 1 Last lecture... Visualisation can be greatly

### CS 543: Computer Graphics Lecture 9 (Part I): Raster Graphics: Drawing Lines. Emmanuel Agu

CS 543: Computer Graphics Lecture 9 (Part I): Raster Graphics: Drawing Lines Emmanuel Agu 2D Graphics Pipeline Clipping Object World Coordinates Applying world window Object subset window to viewport mapping

### The OpenGL R Graphics System: A Specification (Version October 22, 2004)

The OpenGL R Graphics System: A Specification () Mark Segal Kurt Akeley Editor (version 1.1): Chris Frazier Editor (versions 1.2-1.5): Jon Leech Editors (version 2.0): Jon Leech and Pat Brown Copyright

### Programmable graphics pipeline. Adapted from Suresh Venkatasubramanian UPenn

Programmable graphics pipeline Adapted from Suresh Venkatasubramanian UPenn Lecture Outline A historical perspective on the graphics pipeline Dimensions of innovation. Where we are today Fixed-function

### CS445 Exam 2 Solutions

November 20, 2014 Name CS445 Exam 2 Solutions Fall 2014 1. (max = 15) 5. (max = 21) 2. (max = 8) 6. (max = 16) 3. (max = 10) 7. (max = 16) 4. (max = 14) Final Score: (max=100) Please try to write legibly.

### Introduction to. the open graphics library for embedded systems

Introduction to the open graphics library for embedded systems PRESENTATION TOPICS Introduction to OpenGL ES Spaces and Transformations Drawing Geometry Colors Textures Android Fragmentation OpenGL ES

### OpenGL R ES Common Profile Specification Version (Full Specification) (November 2, 2010) Editors (version 2.0): Aaftab Munshi, Jon Leech

OpenGL R ES Common Profile Specification Version 2.0.25 (Full Specification) (November 2, 2010) Editors (version 2.0): Aaftab Munshi, Jon Leech Copyright c 2002-2010 The Khronos Group Inc. All Rights Reserved.

### Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,

### Lecture Notes, CEng 477

Computer Graphics Hardware and Software Lecture Notes, CEng 477 What is Computer Graphics? Different things in different contexts: pictures, scenes that are generated by a computer. tools used to make

### INTRODUCTION TO RENDERING TECHNIQUES

INTRODUCTION TO RENDERING TECHNIQUES 22 Mar. 212 Yanir Kleiman What is 3D Graphics? Why 3D? Draw one frame at a time Model only once X 24 frames per second Color / texture only once 15, frames for a feature

### Chapter 2 GRAPHICAL PROCESSING UNITS. 2.1 Overview

Chapter 2 GRAPHICAL PROCESSING UNITS 2.1 Overview Knowledge of the operations supported by GPUs and how data is processed in GPUs is necessary in order to understand how GPUs can be leveraged for cryptographic

### CMSC 427 Computer Graphics 1

CMSC 427 Computer Graphics 1 David M. Mount Department of Computer Science University of Maryland Fall 2010 1 Copyright, David M. Mount, 2010, Dept. of Computer Science, University of Maryland, College

### CS 4204 Computer Graphics

CS 4204 Computer Graphics 3D views and projection Adapted from notes by Yong Cao 1 Overview of 3D rendering Modeling: *Define object in local coordinates *Place object in world coordinates (modeling transformation)

### 3D Graphics for Embedded Systems

EuroGraphics Italian Chapter Catania, Feb 24 th 2006 3D Graphics for Embedded Systems From standards, through R&D to applicable innovations Massimiliano Barone Imaging, Rendering, Human Machine Interaction

### The OpenGL R Graphics System: A Specification (Version 3.3 (Core Profile) - March 11, 2010)

The OpenGL R Graphics System: A Specification (Version 3.3 (Core Profile) - March 11, 2010) Mark Segal Kurt Akeley Editor (version 1.1): Chris Frazier Editor (versions 1.2-3.3): Jon Leech Editor (version

### Clipping polygons the Sutherland-Hodgman algorithm

Clipping polygons would seem to be quite complex. Clipping polygons would seem to be quite complex. single Clipping polygons would seem to be quite complex. single Clipping polygons would seem to be quite

### 2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION

2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION A world-coordinate area selected for display is called a window. An area on a display device to which a window is mapped is called a viewport. The window

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

Scan-Line Fill Can also fill by maintaining a data structure of all intersections of polygons with scan lines Sort by scan line Fill each span vertex order generated by vertex list desired order Scan-Line

### THE OPENGL SHADING LANGUAGE 1

THE OPENGL SHADING LANGUAGE 1 John Kessenich Dave Baldwin Randi Rost Language Version 1.10 Document Revision 59 30-April-2004 i The OpenGL Shading Language Copyright 2002-2004 3Dlabs, Inc. Ltd. This document

### Polygon Clipping and Filling Week 3, Lecture 5

CS 430/536 Computer Graphics I Polygon Clipping and Filling Week 3, Lecture 5 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science

### Image Processing and Computer Graphics. Texture Mapping. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics Texture Mapping Matthias Teschner Computer Science Department University of Freiburg Motivation adding per-pixel surface details without raising the geometric complexity

### L20: GPU Architecture and Models

L20: GPU Architecture and Models scribe(s): Abdul Khalifa 20.1 Overview GPUs (Graphics Processing Units) are large parallel structure of processing cores capable of rendering graphics efficiently on displays.

### Realtime 3D Computer Graphics Virtual Reality. Graphics

Realtime 3D Computer Graphics Virtual Reality Graphics Computer graphics 3D-Computer graphics (3D-CG) currently used for Simulators, VR, Games (real-time) Design (CAD) Entertainment (Movies), Art Education

### Interactive Math Glossary Terms and Definitions

Terms and Definitions Absolute Value the magnitude of a number, or the distance from 0 on a real number line Additive Property of Area the process of finding an the area of a shape by totaling the areas

### Introduction to Computer Graphics 8. Buffers and Mapping techniques (A)

Introduction to Computer Graphics 8. Buffers and Mapping techniques (A) National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor Textbook: Hearn and Baker, Computer Graphics, 3rd Ed., Prentice

### Computer Graphics Hardware An Overview

Computer Graphics Hardware An Overview Graphics System Monitor Input devices CPU/Memory GPU Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and

### Pool Billiard. An OpenGL-based billiard simulation. Stefan HUBER Kamran SAFDAR Andreas SCHRÖCKER

Pool Billiard An OpenGL-based billiard simulation Stefan HUBER Kamran SAFDAR Andreas SCHRÖCKER Fachbereich Computerwissenschaften Universität Salzburg June 10, 2009 S. Huber, K. Safdar, A. Schröcker: Pool

### Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Graphics Programming December, 2005 1 Table of Contents

### Introduction to OpenGL. CS 4620 Daniel Schroeder, 2013 Pramook Khungurn, 2012

Introduction to OpenGL CS 4620 Daniel Schroeder, 2013 Pramook Khungurn, 2012 Introduction Show how to produce graphics using OpenGL Introduce our framework for OpenGL programming OpenGL Open Graphics Library

### Raycasting polygonal models

Chapter 9 Raycasting polygonal models A polygonal model is one in which the geometry is defined by a set of polygons, each specified by the D coordinates of their vertices. For example, the cube to the

### Polygon Scan Conversion & Shading

3D Rendering Pipeline (for direct illumination) Polygon Scan Conversion & Shading Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2004 3D Primitives 3D Modeling Coordinates Modeling Transformation

### Projections and Transformations in OpenGL

Image Processing and Computer Graphics Projections and Transformations in OpenGL Matthias Teschner Computer Science Department University of Freiburg Motivation for the rendering of objects in 3D space,

### lecture 20 Image Compositing - chroma keying - alpha - F over B - OpenGL blending - chroma keying revisited: "pulling a matte"

lecture 20 Image Compositing - chroma keying - alpha - F over B - OpenGL blending - chroma keying revisited: "pulling a matte" Organization of Course 1: Viewing transformations 2: Visibility, geometry

### 3 - Fundamentals of 3D Systems

CSc 65 Computer Game Architecture 3D Coordinate Systems 3 - Fundamentals of 3D Systems P (x,y,z) Right-handed Coordinate System P (x,y,z) Left-handed Coordinate System Points can be represented in homogeneous

### Visualization of 2D Domains

Visualization of 2D Domains This part of the visualization package is intended to supply a simple graphical interface for 2- dimensional finite element data structures. Furthermore, it is used as the low

### The OpenGL R Graphics System: A Specification (Version 4.0 (Core Profile) - March 11, 2010)

The OpenGL R Graphics System: A Specification (Version 4.0 (Core Profile) - March 11, 2010) Mark Segal Kurt Akeley Editor (version 1.1): Chris Frazier Editor (versions 1.2-4.0): Jon Leech Editor (version

### Chapter 3-3D Modeling

Chapter 3-3D Modeling Polygon Meshes Geometric Primitives Interpolation Curves Levels Of Detail (LOD) Constructive Solid Geometry (CSG) Extrusion & Rotation Volume- and Point-based Graphics 1 The 3D rendering

### Interaction. Triangles (Clarification) Choice of Programming Language. Display Lists. The CPU-GPU bus. CSCI 480 Computer Graphics Lecture 3

CSCI 480 Computer Graphics Lecture 3 Triangles (Clarification) Interaction January 18, 2012 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s12/ [Angel Ch. 3] 1 Can

### We have learnt that the order of how we draw objects in 3D can have an influence on how the final image looks

Review: Last Week We have learnt that the order of how we draw objects in 3D can have an influence on how the final image looks Depth-sort Z-buffer Transparency Orientation of triangle (order of vertices)

### The Graphics Pipeline and OpenGL IV: Stereo Rendering, Multi-pass Rendering!

!! The Graphics Pipeline and OpenGL IV: Stereo Rendering, Multi-pass Rendering! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 6! stanford.edu/class/ee267/! April 13, 2016! Lecture

### OpenGL Shading Language Course. Chapter 5 Appendix. By Jacobo Rodriguez Villar jacobo.rodriguez@typhoonlabs.com

OpenGL Shading Language Course Chapter 5 Appendix By Jacobo Rodriguez Villar jacobo.rodriguez@typhoonlabs.com TyphoonLabs GLSL Course 1/1 APPENDIX INDEX Using GLSL Shaders Within OpenGL Applications 2

### H.Calculating Normal Vectors

Appendix H H.Calculating Normal Vectors This appendix describes how to calculate normal vectors for surfaces. You need to define normals to use the OpenGL lighting facility, which is described in Chapter

### Computer Graphics. Course Goal. Objectives. Overview. Textbook. These lectures cover Chapters 1-6in detail and survey Chapters 7-1

Computer Graphics Course Goal Paul Farrell Professor of Computer Science, Kent State University Office 270 MSB. Tel 672-9060 farrell@cs.kent.edu. Office hours: 6:00-7:30 TH and by appointment. The goal

### 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.

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. 2. PART ONE is to be answered in the TEAR-OFF ANSWER

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

Computer Graphics CS 54 Lecture 1 (Part 1) Curves Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines and flat surfaces Real world objects include

### Computer Graphics. Preliminary Answer. Example. What is Computer Graphics? Computer graphics deals with all aspects of creating images with a computer

What is Computer Graphics? Computer Graphics Objectives - We explore what computer graphics is about and survey some application areas - We start with a historical introduction Computer graphics deals

### ISOMETRIC DRAWINGS. a) Isometric rotations b) Isometric axes in image plane Fig. 1 Isometric projection

ISOMETRIC DRAWINGS Introduction Isometric drawings are a type of pictorial drawings that show the three principal dimensions of an object in one view. The principal dimensions are the limits of size for

### CMSC 427 Computer Graphics 1

CMSC 427 Computer Graphics 1 David M. Mount Department of Computer Science University of Maryland Spring 2004 1 Copyright, David M. Mount, 2004, Dept. of Computer Science, University of Maryland, College

### MNI.obj file format. Robert D. Vincent April 4, 2005

MNI.obj file format Robert D. Vincent April 4, 2005 1 Contents 1 Introduction 3 2 Basics 3 2.1 Basic types............................... 3 2.2 Compound types............................ 3 2.3 Object classes..............................

### Collision detection between moving objects using uniform space subdivision

Collision detection between moving obects using uniform space subdivision Smilan Šinur smilan.sinur@uni-mb.si Laboratory for Geometric Modelling and Multimedia Algorithms Institute of Computer Science

### Beginning Android 4. Games Development. Mario Zechner. Robert Green

Beginning Android 4 Games Development Mario Zechner Robert Green Contents Contents at a Glance About the Authors Acknowledgments Introduction iv xii xiii xiv Chapter 1: Android, the New Kid on the Block...

### Introduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it

t.diamanti@cineca.it Agenda From GPUs to GPGPUs GPGPU architecture CUDA programming model Perspective projection Vectors that connect the vanishing point to every point of the 3D model will intersecate

### Books. CS155b Computer Graphics. Homework. Additional References. Syllabus. Goals

CS155b Computer Graphics Instructor: Giovanni Motta (gim@ieee.org) Volen, Room #255. Phone: x62718 Class: Mon. and Wed. from 5 to 6:30pm Abelson #131 Teaching Assistants: Anthony Bucci (abucci@cs) John

### Interactive visualization of multi-dimensional data in R using OpenGL

Interactive visualization of multi-dimensional data in R using OpenGL 6-Monats-Arbeit im Rahmen der Prüfung für Diplom-Wirtschaftsinformatiker an der Universität Göttingen vorgelegt am 09.10.2002 von Daniel

### Chapter 3: Implementing Modeling in OpenGL

Chapter 3: Implementing Modeling in OpenGL This chapter discusses the way OpenGL implements the general modeling discussion of the last chapter. This includes functions for specifying geometry, specifying

### ENGINEERING DRAWING. UNIT I - Part A

ENGINEERING DRAWING UNIT I - Part A 1. Solid Geometry is the study of graphic representation of solids of --------- dimensions on plane surfaces of ------- dimensions. 2. In the orthographic projection,

### LECTURE I: GRAPHICS & IMAGE DATA REPRESENTATION DR. OUIEM BCHIR

1 LECTURE I: GRAPHICS & IMAGE DATA REPRESENTATION DR. OUIEM BCHIR 2 DIGITAL IMAGE REPRESENTATION An image is a spatial representation of an object, a2d or 3D scene, etc. Abstractly, an image is a continuous

### SOEM 024: Computer Aided Design. E. Rozos

SOEM 024: Computer Aided Design E. Rozos 3D Design with AutoCAD 2002 Isometric Drawings 3D coordinates, views Wire-frame 3D modelling, extruding Primitive objects Boolean operators Terminology Boolean

### UNIT PLAN. Big Idea/Theme: Shapes can be analyzed, described, and related to our physical world.

UNIT PLAN Grade Level: 2 Unit #: 5 Unit Name: Geometry Big Idea/Theme: Shapes can be analyzed, described, and related to our physical world. Culminating Assessment: Use real world objects from home, create

### What Every CUDA Programmer Should Know About OpenGL. The Fairmont San Jose 4:00 PM Thursday, October Joe Stam

What Every CUDA Programmer Should Know About OpenGL The Fairmont San Jose 4:00 PM Thursday, October 1 2009 Joe Stam Motivation CUDA was created to expose the GPU s powerful parallel processing capabilities

### OpenGL pipeline Evolution and OpenGL Shading Language (GLSL)

OpenGL pipeline Evolution and OpenGL Shading Language (GLSL) Part 1/3 Prateek Shrivastava CS12S008 shrvstv@cse.iitm.ac.in 1 INTRODUCTION OpenGL Shading Language (GLSL) "mini-programs" written in GLSL are

### 1/25/16. Polygon Meshes and Implicit Surfaces. Shape Representations. Modeling Complex Shapes. What do we need from shapes in Computer Graphics?

CSCI 420 Computer Graphics Lecture 8 and Constructive Solid Geometry [Angel Ch. 10] Jernej Barbic University of Southern California Modeling Complex Shapes An equation for a sphere is possible, but how