Computer Graphics Software –Fast, but Non-Portable –Difficult to Program –Prone to Errors

Total Page:16

File Type:pdf, Size:1020Kb

Computer Graphics Software –Fast, but Non-Portable –Difficult to Program –Prone to Errors Binghamton University EngiNet™ State University of New York EngiNet™ Thomas J. Watson WARNING All rights reserved. No Part of this video lecture School of Engineering series may be reproduced in any form or by any electronic or mechanical means, including the use and Applied Science of information storage and retrieval systems, without written approval from the copyright owner. ©2001 The Research Foundation of the State University of New York CS 560 Computer Graphics Professor Richard Eckert Lecture # 6 February 7, 2001 1 Lecture 5 1. Lowest Level (earliest)-- Assembly/machine Wednesday, 2-7-01 language l Programs drive hardware directly Computer Graphics Software –Fast, but non-portable –Difficult to program –Prone to errors 2. Medium Level (General Programming Packages) l B. Standard Graphics Packages –Sets of specifications l A. Extensions to high level languages-- – Supposedly language/platform graphics libraries independent – e.g., Borland's BGI, Windows' GDI, Silicon – Usually with bindings for many high level Graphics GL, Microsoft's DirectX languages – Still have platform dependencies – Syntax for accessing graphics functions – Easier to program – Examples: GKS, PHIGS, OpenGL – Usually slower, but with optimized compilers, not so bad 3. Special-purpose We'll be working at level 2 for Application packages most of this course l e.g., Corel Draw, 3D Studio, Harvard Graphics, Photoshop l Good for what they do, but specific uses 2 Describing positions of 2-D Cartesian System objects – Measure distance along two mutually perpendicular axes l Need coordinate systems – Position given by 2 numbers (x,y) l 2-D and 3-D Cartesian systems used universally 3-D Cartesian System Other commonly-used – Measure distance along three mutually systems perpendicular axes – Position given by three numbers (x,y,z) l Depend on symmetry – Spherical (rho, theta, phi) – Cylindrical (r, theta, z) l Conversion formulas used Types of coordinate 1. Modeling coordinate systems system (MCS) l System used by programmer (modeler) to describe a single object l Can be 2-D or 3-D l Depends on object being modeled l Origin, scale picked according to object l Varies from object to object 3 2. World Coordinate System 3. Device Coordinate (WCS) System (DCS) l Reference system used to position l Coordinate system used by output device objects in a scene l Units usually pixels l Can be 2-D or 3-D l Always 2-D l Origin, scale, units specific to scene l Varies according to HW platform l Coordinate transformations map from l Graphics SW maps from WCS to DCS an MCS to the WCS – Called the “Viewing Transformation” – Effectively positions objects in scene l If WCS is 3-D, a projection transformation is – Called the “Modeling Transformation” also involved 4. Normalized Device Graphics Transformation Coordinates (NDCS) Pipeline – 2-D system l MCS ------> WCS ------> NDCS ------> DCS – 0 <= x <= 1; 0<= y <= 1 modeling xform viewing xform HW-depend. xform – Intermediate between WCS and DCS l The first two transformations are device independent – Hardware-independent A Window A Viewport l A rectangular area (2-D) l A rectangular portion of the screen or Rectangular parallelepiped (3-D) l Expressed in device coordinates l Expressed in WC – e.g., xvmin, yvmin, xvmax, yvmax – e.g., l A window is mapped to a viewport xwmin,xwmax,ywmin,ywmin,zwmin,zwmax l Specifies a part of the scene of interest 4 Window to Viewport Clipping Transformation – mapping from a window to a viewport l Removal of parts of scene outside a window or viewport l Graphics system may perform clipping with respect to a window or a viewport Animation Techniques using BASIC COMPONENTS OF A windows/viewports/clipping GRAPHICS SOFTWARE l Zooming SYSTEM – Change window size from frame to frame, clip, and transform l Examples from: Windows & OpenGL • scene appears to approach or recede from viewer l Panning – Translate window from frame to frame, clip, and transform • scene appears to move across the screen 1. Output Primitives l Lines l Building blocks for drawing pictures Windows: l Plotting a pixel--most primitive MoveTo(x,y); // Set Curr. Pos. SetPixel(x,y,colref); // Windows--plots pixel colref = GetPixel(x,y); // returns pixel color LineTo(x,y); // line from CP to (x,y) glBegin (GL_POINTS); // OpenGL glBegin (GL_LINES); //OpenGL glVertex2f (x, y); // 2==>2D, f==>floating pt glVertex2f(x1,y1); //endpoint vertices glEnd(); // current drawing color used glVertex2f(x2,y2); //appear in pairs glEnd() 5 l l Polylines and Polygons Other primitives Polyline(lppts,num_pts); // Windows--use pts –Windows // array, number of points Polygon(lppts,num_pts); • Lots of other primitives • See prior notes on Windows glBegin (GL_POLYGON); // OpenGL programming glVertex2f(x1,y1); // polygon vertex … // more vertices –OpenGL glEnd(); • GL_TRIANGLES, GL_LINE_STRIP, GL_QUADS, etc. -- lots more l Text 3-D primitives Windows: l Windows has nothing TextOut(x,y,lpszStr,cStrLngth); l OpenGL – GLU graphics library OpenGL-- Use display lists and/or • sphere, cube, cone, etc. GLUT library functions 2. Attributes (State Variables) 3. Transformations l Done with matrix math l Properties of primitives – how they appear l Setting windows/viewports – e.g., color, line style, text style, fill patterns – Window-to-viewport transformation l Usually modal l Moving objects – values retained until changed – Geometric Transformations l Windows -- see prior notes – e.g., translation, rotation, scaling l Changing coordinate system l OpenGL-- glProperty(); – ‘Property’ is state variable to set l Changing viewpoint • e.g., glColor3f (R,G,B); l Different types of projections 6 4. Segmentation l Windows – window-to-viewport transformation l Dividing scene into component parts • done with Mapping Modes for (later) manipulation – programmer must implement others l Windows--strictly immediate mode l OpenGL is very rich – (DirectX has support for retained mode) – glLoadMatrix(), glRotatef(), glTranslatef(), l OpenGL has Display lists glScalef(), glViewport (), glFrustum(), – Groups of OpenGL commands that have glOrtho(), gluPerspective(), etc. been stored for later execution – Can be hierarchical l PHIGS uses hierarchical segments 5. Input/Interaction Input/Interaction in OpenGL l Obtain data from input devices or graphics system l Auxiliary libraries (aux, GLX, GLUT) – – So user can manipulate scene interactively Use underlying windowing system – Provide input-handling callback ftns l Windows: Built into event-driven, • e.g., auxMouseFunc () message-based paradigm • glutMouseFunc() – take pointer to callback function – programmer must write these 7. Storing/retrieving/ 6. Control/Housekeeping manipulating bitmapped Images l BitBlT--Bit Block Transfer l Initialize graphics system, put window up, etc. l Windows-- – Device Dependent Bitmaps l Windows--Extensive support • BitBlt(), StretchBlt(), etc. – RegisterClass(), CreateWindow(), etc. – But very slow l OpenGL – Device Independent Bitmaps--faster – Use of auxiliary libraries – DirectX-- flipping surfaces--fastest! • e.g., auxInitWindow(), auxInitDisplayMode (), auxMainLoop(ptr to ftn. that draws scene) l OpenGL-- – glReadPixels(); glDrawPixels(); glCopyPixels(); 7 8. Photorealism Intro. to OpenGL for Windows l Industry standard for high-quality 3-D l Hidden surfaces, lighting, shading, graphics applications reflection properties, etc. l Available on many HW and OS l Windows--Very little support platforms – DirectX (Direct3D)--Quite a bit of support l “Thin” software interface to underlying graphics HW l OpenGL--A lot of support! – e.g., light sources, lighting models, l Implementing on Windows brings material properties, blending, workstation-class graphics to PC antialiasing, fog, depth buffer, etc. l Real 3-D graphics to Windows Steps in using OpenGL in Rendering Context (RC) Windows Applications l OpenGL equivalent of Windows GDI DC l Get a DC for rendering location (window) l Mechanism by which OpenGL calls are l Choose & select a “pixel format” for DC rendered to the device l Create a Rendering Context (RC) for DC l Links OpenGL calls to a Windows l Associate (bind) the RC with the DC window l Draw using OpenGL function calls l Must be compatible with window’s DC l Release the RC & DC l Keeps track of current values of OpenGL state variables Pixel Format PIXELFORMATDESCRIPTOR l Data structure used to set Pixel Format l Holds attributes for device drawing surface l Some fields: – dwFlags: “OR” of properties constants, e.g. l Describes things like: • doublebuffered, stereo, window or bitmap, etc. – Using single or double buffering – iPixelType – Direct or indirect color • color type (RGBA or indexed) – Drawing to a window or a bitmap – cColorBits: # of bitplanes – Color depth (# of bit planes) – cRedBits: # of red – ZBuffer depth – cRedShift: where red bits are – Others – etc. 8 Choosing and setting the Creating and using an RC Pixel Format l Set up a PIXELFORMATDESCRIPTOR l Use “wgl” function to create an RC: variable (e.g., pfd) – wglCreateContext(hDC) l ChoosePixelFormat(hDC,&pfd) – Returns a handle to an OpenGL Rendering – gets DC’s pixel format closest to one Context (HGLRC) desired l Make the RC “Current” (bind RC to DC) – returns an integer pf_index – wglMakeCurrent(hDC, hRC) l SetPixelFormat(hDC, pf_index, &pfd) l Now we can draw with OpenGL calls – Set that pixel format in the DC Cleanup l Make RC noncurrent (Unbind RC from DC) – wglMakeCurrent(hDC, NULL) l Get rid of the DC – ReleaseDC() or EndPaint() in API app. – Done automatically in MFC when OnDraw() returns l Get rid of the RC – wglDeleteContext(hRC) Building a MINOGL Example Program Windows/OpenGL App l Displays a rectangle in different l Includes in .h file: shades of red – <gl\gl.h> // OpenGL interface l See online listing of view class of – <gl\glu.h> // OpenGL utility library interface minogl example OpenGL program l Must add opengl32.lib & glu32.lib to linker's 'Object/library modules’ – Look on CS-460/560 “Sample Programs” Page – 'Project'|'Settings'|'Link tab' – Link: • MINOGL: A Simple OpenGL Example Program for Windows MFC (minoglView.cpp) 9.
Recommended publications
  • Depth Buffer Test
    Computer Graphics – OpenGL – Philipp Slusallek History: Graphics Hardware • Graphics in the ‘80ies – Framebuffer was a designated memory in RAM – „HW“: Set individual pixels directly via memory access • Peek & poke, getpixel & putpixel, … • MDA ('81: text only but 720x350 resolution, monochrome, 4 kB of RAM!) – Character code was index into bit pattern in ROM for each character • CGA ('81: 160x200: 16 colors w/ tricks; 320x200: 4 col; 640x200: 2 col) • EGA ('85: 640x350: 16 from 64 col, CGA mode) • VGA ('90: 640x480: 16 col @ table with 2^18 col, 320x200: 256 col), with BIOS extension – Everything done on CPU • Except for driving the display output History: Graphics Hardware (II) • Today (Nvidia Ampere Flagship GA 102, RTX 3090) – Discrete graphics card via high-speed link • e.g. PCIe-4.0 x16: up to 64 GB/s transfer rate – Autonomous, high performance GPU (more powerful than CPU) • 10,496 SIMD processors • Up to 24GB of local GDDR6X RAM (A6000: 48 GB, x2 via NVLink) • 936 GB/s memory bandwidth • 35.6 TFLOPS 16bit floats • 35.6 TFLOPS single precision (SP) + ? TFLOPS doubles (DP) • 35.6/142/284/568 TFLOPS in FP32/16/Int8/4 via 328 Tensor Cores (RTX) • 20? GigaRays/s, 84 RT Cores • Dedicated ray tracing HW unit (BVH traversal & tri. interpol & intersect) • Total of 28.3 Billion transistors at 350 Watt – Performs all low-level tasks & a lot of high-level tasks • Clipping, rasterization, hidden surface removal, … + Ray Tracing • Procedural geometry, shading, texturing, animation, simulation, … • Video rendering, de- and encoding, deinterlacing, … • Full programmability at several pipeline stages • Deep Learning & Matrix-Multiply (sparse x2): Training and Inference Nvidia GA102 GPU History: Graphics APIs • Brief history of graphics APIs – Initially every company had its own 3D-graphics API – Many early standardization efforts • CORE, GKS/GKS-3D, PHIGS/PHIGS-PLUS, ..
    [Show full text]
  • Introduction to Computer Graphics with Webgl
    Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico Angel and Shreiner: Interactive Computer Graphics 7E © Addison-Wesley 2015 1 Models and Architectures Angel and Shreiner: Interactive Computer Graphics 7E © Addison-Wesley 2015 2 Objectives • Learn the basic design of a graphics system • Introduce pipeline architecture • Examine software components for an interactive graphics system Angel and Shreiner: Interactive Computer Graphics 7E © Addison-Wesley 2015 3 Image Formation Revisited • Can we mimic the synthetic camera model to design graphics hardware software? • Application Programmer Interface (API) - Need only specify • Objects • Materials • Viewer • Lights • But how is the API implemented? Angel and Shreiner: Interactive Computer Graphics 7E © Addison-Wesley 2015 4 Physical Approaches • Ray tracing: follow rays of light from center of projection until they either are absorbed by objects or go off to infinity - Can handle global effects • Multiple reflections • Translucent objects - Slow - Must have whole data base available at all times • Radiosity: Energy based approach - Very slow Angel and Shreiner: Interactive Computer Graphics 7E © Addison-Wesley 2015 5 Practical Approach • Process objects one at a time in the order they are generated by the application - Can consider only local lighting • Pipeline architecture application display program • All steps can be implemented in hardware on the graphics
    [Show full text]
  • Programming with Opengl Part 1: Background
    Programming with OpenGL Part 1: Background CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 1 Objectives • Development of the OpenGL API • OpenGL Architecture - OpenGL as a state machine - OpenGL as a data flow machine • Functions - Types - Formats • Simple program E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 2 Retained vs. Immediate Mode Graphics • Immediate - Geometry is drawn when CPU sends it to GPU - All data needs to be resent even if nothing changes - Once drawn, geometry on GPU is discarded - Requires major bandwidth between CPU and GPU - Minimizes memory requirements on GPU • Retained - Geometry is sent to GPU and stored - It is displayed when directed by CPU - CPU may send transformations to move geometry - Minimizes data transfers, but GPU now needs enough memory to store geometry 3 Early History of APIs • IFIPS (1973) formed two committees to come up with a standard graphics API - Graphical Kernel System (GKS) • 2D but contained good workstation model - Core • Both 2D and 3D - GKS adopted as IS0 and later ANSI standard (1980s) • GKS not easily extended to 3D (GKS-3D) - Far behind hardware development E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 4 PHIGS and X • Programmers Hierarchical Graphics System (PHIGS) - Arose from CAD community - Database model with retained graphics (structures) • X Window System - DEC/MIT effort - Client-server architecture with graphics • PEX combined the two - Not easy to use (all the defects of each) E. Angel and D.
    [Show full text]
  • Opengl Pipeline Architecture • Understand Immediate Mode Graphics Vs Retained Mode Graphics Opengl Primitives
    Lecture 3: Pipeline Architecture CITS 3003 Graphics & Animation Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Breakdown of Lectures 1. Introduction & Image Formation 15. Computer Viewing 2. Programming with OpenGL 16. Shading 3. OpenGL: Pipeline Architecture 17. Shading Models 4. OpenGL: An Example Program 18. Shading in OpenGL 5. Vertex and Fragment Shaders 1 19. Texture Mapping 6. Vertex and Fragment Shaders 2 20. Texture Mapping in OpenGL 7. Representation and Coordinate 21. Hierarchical Modelling Systems 22. 3D Modelling: Subdivision Surfaces 8. Coordinate Frame Transformations 23. Animation Fundamentals and 9. Transformations and Homogeneous Quaternions Coordinates 24. Skinning 10. Input, Interaction and Callbacks 11. More on Callbacks 12. Mid-semester Test Study break 13. 3D Hidden Surface Removal 14. Mid term-test solution and project discussion 2 Content • Expanding on primitives • Vertex attributes • OpenGL pipeline architecture • Understand immediate mode graphics vs retained mode graphics OpenGL Primitives Recall from a previous lecture… GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLES important GL_TRIANGLE_STRIP GL_TRIANGLE_FAN Polygon Issues • Graphics systems like triangles because triangles are: o Simple: edges cannot cross o Convex: All points on a line segment between two points in a polygon are also in that polygon o Flat: all vertices are in the same plane nonsimple polygon nonconvex polygon Polygon Issues (cont.) • If other polygons are used, they are tessellated
    [Show full text]
  • Rapidmind.Pdf
    Rapidmind Background on GPGPU GPU Tutorial • Goal: 3-D image -> 2-D image • 2 main stages: – Convert 3-D coordinates to 2-D windows • Vertex processing – Fill in 2-D windows • Fragment processing Video Video Memory Memory (Textures) (Textures) Final Pixels (Color, Depth) Render-to-texture Shade Shade Fragment Processor Fragment Processor Fragments (pre-pixels) Pipeline GPU Rasterize Rasterize Screenspace triangles Graphics State (2D) Primitives Assemble Primitives Assemble Xformed, Lit Vertices Hardware (2D) Light Light Vertex & Vertex & Transform Transform Processor Processor GPU Vertices (3D) CPU Application Application GPU Parallelism • Parallelism @ vertex and fragment calculations Vertex vp vp vp vp vp vp processors Rasterizer Fragment fp fp fp fp fp fp fp fp fp fp fp fp fp fp fp fp processors Frame buffer GPU Programmability • Vertex and fragment processors can be programmed • Shader = programs written for vertex and fragment calculations • Vertex shaders = transformation, lighting • Fragment shaders = texture, color, fog GPU SIMD • Vertex processors all run SAME shader program • Fragment processor all run SAME shader program Vertex vp vp vp vp vp vp processors Rasterizer Fragment fp fp fp fp fp fp fp fp fp fp fp fp fp fp fp fp processors Frame buffer GPU Drawbacks • No integer data operands • No integer operations – e.g. bit shift, AND, OR, XOR, NOT • No double precision arithmetic • Unusual programming model GPU Improvement • NVIDIA GeForce G80 – unified pipeline and shader • CUDA – Computer Unified Device Architecture • Unified
    [Show full text]
  • Master Thesis
    Charles University in Prague Faculty of Mathematics and Physics MASTER THESIS Petr Koupý Graphics Stack for HelenOS Department of Distributed and Dependable Systems Supervisor of the master thesis: Mgr. Martin Děcký Study programme: Informatics Specialization: Software Systems Prague 2013 I would like to thank my supervisor, Martin Děcký, not only for giving me an idea on how to approach this thesis but also for his suggestions, numerous pieces of advice and significant help with code integration. Next, I would like to express my gratitude to all members of Hele- nOS developer community for their swift feedback and for making HelenOS such a good plat- form for works like this. Finally, I am very grateful to my parents and close family members for supporting me during my studies. I declare that I carried out this master thesis independently, and only with the cited sources, literature and other professional sources. I understand that my work relates to the rights and obligations under the Act No. 121/2000 Coll., the Copyright Act, as amended, in particular the fact that the Charles University in Pra- gue has the right to conclude a license agreement on the use of this work as a school work pursuant to Section 60 paragraph 1 of the Copyright Act. In Prague, March 27, 2013 Petr Koupý Název práce: Graphics Stack for HelenOS Autor: Petr Koupý Katedra / Ústav: Katedra distribuovaných a spolehlivých systémů Vedoucí diplomové práce: Mgr. Martin Děcký Abstrakt: HelenOS je experimentální operační systém založený na mikro-jádrové a multi- serverové architektuře. Před započetím této práce již HelenOS obsahoval početnou množinu moderně navržených subsystémů zajišťujících různé úkoly v rámci systému.
    [Show full text]
  • Opengl Programming
    Computer Graphics - OpenGL- Hendrik Lensch Computer Graphics WS07/08 – Rendering with Rasterization Overview • Last lecture: – Rasterization – Clipping • Today: – OpenGL Computer Graphics WS07/08 – Rendering with Rasterization Ray Tracing vs. Rasterization • Ray tracing – For every pixel • Locate first object visible in a certain direction – Requires spatial index structure to be fast • Rasterization – For every object • Locate all covered pixels – Uses 2D image coherence but not necessarily an index structure Computer Graphics WS07/08 – Rendering with Rasterization History • Graphics in the ‘80ies – Designated memory in RAM – Set individual pixels directly via memory access • peek & poke, getpixel & putpixel, … – Everything done on CPU, except for driving the display – Dump „frame buffer“ • Today – Separate graphics card connected via high-speed link (e.g. PCIe) • Autonomous, high performance GPU (much more powerful than CPU • Up to 128 SIMD processors, >>80 GB/s memory access • Up to 1GB of local RAM plus virtual memory – Performs all low-level tasks & a lot of high-level tasks • Clipping, rasterization, hidden surface removal, … • Procedural shading, texturing, animation, simulation, … • Video rendering, de- and encoding, deinterlacing, ... • Full programmability at several pipeline stages Computer Graphics WS07/08 – Rendering with Rasterization Introduction to OpenGL • Brief history of graphics APIs – Initially every company had its own 3D-graphics API – Many early standardization efforts • CORE, GKS/GKS-3D, PHIGS/PHIGS-PLUS, ..
    [Show full text]
  • Chapter 7: Shading Through Multi-Pass Rendering
    Chapter 7 Shading Through Multi-Pass Rendering Marc Olano Interactive Multi-Pass Programmable Shading Mark S. Peercy, Marc Olano, John Airey, P. Jeffrey Ungar SGI Abstract constructs familiar from general purpose programming languages Programmable shading is a common technique for production an- such as C, including loops, conditionals, and functions. The most imation, but interactive programmable shading is not yet widely common is the RenderMan Shading Language [32]. available. We support interactive programmable shading on vir- The power of shading languages for describing intricate light- tually any 3D graphics hardware using a scene graph library on ing and shading computations been widely recognized since Cook's top of OpenGL. We treat the OpenGL architecture as a general seminal shade tree research [7]. Programmable shading has played SIMD computer, and translate the high-level shading description a fundamental role in digital content creation for motion pictures into OpenGL rendering passes. While our system uses OpenGL, and television for over a decade. The high level of abstraction in the techniques described are applicable to any retained mode in- programmable shading enables artists, storytellers, and their techni- terface with appropriate extension mechanisms and hardware API cal collaborators to translate their creative visions into images more with provisions for recirculating data through the graphics pipeline. easily. Shading languages are also used for visualization of scien- We present two demonstrations of the method. The first is tific data. Special data shaders have been developed to support the a constrained shading language that runs on graphics hardware depiction of volume data [3, 8], and a texture synthesis language has supporting OpenGL 1.2 with a subset of the ARB imaging exten- been used for visualizing data fields on surfaces [9].
    [Show full text]
  • Programming with Webgl Part 1: Background Objectives Retained Vs
    Objectives Programming with WebGL •Development of the OpenGL API Part 1: Background •OpenGL Architecture - OpenGL as a state machine CS 432 Interactive Computer Graphics - WebGL as a data flow machine Prof. David E. Breen •Functions Department of Computer Science - Types - Formats •Simple program E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 2 1 2 Retained vs. Immediate Mode Early History oF APIs Graphics • Immediate •IFIPS (1973) formed two committees to - Geometry is drawn when CPU sends it to GPU come up with a standard graphics API - All data needs to be resent even if little changes - Graphical Kernel System (GKS) - Once drawn, geometry on GPU is discarded • 2D but contained good workstation model - Requires major bandwidth between CPU and GPU - Core - Minimizes memory requirements on GPU • Both 2D and 3D • Retained - GKS adopted as IS0 and later ANSI standard - Geometry is sent to GPU and stored (1980s) - It is displayed when directed by CPU •GKS not easily extended to 3D (GKS-3D) - CPU may send transformations to move geometry - Far behind hardware development - Minimizes data transfers, but GPU now needs enough memory to store geometry 3 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 4 3 4 PHIGS and X SGI and GL •Programmers Hierarchical Graphics •Silicon Graphics (SGI) revolutionized the System (PHIGS) graphics workstation by implementing the - Arose from CAD community graphics pipeline in hardware (1982) - Database model with retained graphics (structures) •To access the system, application •X Window System programmers used a library called GL - DEC/MIT effort •With GL, it was relatively simple to - Client-server architecture with graphics program three dimensional interactive •PEX combined the two applications - Not easy to use (all the defects of each) E.
    [Show full text]
  • Designing Graphics Architectures Around Scalability and Communication
    DESIGNING GRAPHICS ARCHITECTURES AROUND SCALABILITY AND COMMUNICATION A DISSERTATION SUBMITTED TO THE DEPARTMENT OF ELECTRICAL ENGINEERING AND THE COMMITTEE ON GRADUATE STUDIES OF STANFORD UNIVERSITY IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY Matthew Eldridge June 2001 c Copyright by Matthew Eldridge 2001 All Rights Reserved ii I certify that I have read this dissertation and that in my opin- ion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Pat Hanrahan (Principal Adviser) I certify that I have read this dissertation and that in my opin- ion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. William J. Dally I certify that I have read this dissertation and that in my opin- ion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Mark Horowitz Approved for the University Committee on Graduate Stud- ies: iii Abstract Communication forms the backbone of parallel graphics, allowing multiple functional units to cooperate to render images. The cost of this communication, both in system resources and money, is the primary limit to parallelism. We examine the use of object and image parallelism and describe architectures in terms of the sorting communication that connects these forms of parallelism. We introduce an extended taxonomy of parallel graphics archi- tecture that more fully distinguishes architectures based on their sorting communication, paying particular attention to the difference between sorting fragments after rasterization, and sorting samples after fragments are merged with the framebuffer.
    [Show full text]
  • An Open Letter to Microsoft: Do the Right Thing for the 3D Game Industry
    Attention: This material is copyright 1995-1997 Chris Hecker. All rights reserved. You have permission to read this article for your own education. You do not have permission to put it on your website (but you may link to my main page, below), or to put it in a book, or hand it out to your class or your company, etc. If you have any questions about using this article, send me email. If you got this article from a web page that was not mine, please let me know about it. Thank you, and I hope you enjoy the article, Chris Hecker definition six, incorporated [email protected] http://www.d6.com/users/checker PS. The email address at the end of the article is incorrect. Please use [email protected] for any correspondence. BEHIND THE SCREEN by Chris Hecker An Open Letter to Microsoft: Do the Right Thing for the 3D Game Industry debate is raging in the game development community on an incredibly important topic: 3D APIs for the PC, and specifically, Direct3D versus OpenGL. This debate has its share of contentless flames, but at its core A is an issue that will affect the daily lives of 3D game developers for many years to come. Being one of vendors have voting seats). In the My opinion started to change last 14 these developers, I care deeply about space I have here, I’m not going to be year, after a few important events. how this issue is resolved. To put it able to describe either API, so I’m going First, a bunch of people at SGI got fed very bluntly, I believe it would be best to assume you’re familiar with both up with Microsoft’s game evangelists for the 3D game industry if Microsoft (check the references at the end of the telling developers that OpenGL was canceled Direct3D Immediate Mode article for more information on the inherently slow.
    [Show full text]
  • Introduction
    INTRODUCTION Computer Graphics 1 INTRODUCTION: THE OUTLINE I. Image Processing / Computer Graphics II. Advantages III. Representative Uses IV. Classification of Applications V. History VI. Conceptual Framework VII. Our First Assignment 2 I. IMAGE PROCESSING / COMPUTER GRAPHICS • Image Processing: • Analysis and reconstruction of existing images • Sub-Areas: • Image Enhancement • Pattern Detection and Recognition • Scene Analysis • Computer Vision 3 I. IMAGE PROCESSING 4 IMAGE ENHANCEMENT Apex Sharpening of Andromeda Galaxy Image http://math.nist.gov/mcsd/highlights/carasso-spie06.html 5 PATTERN DETECTION AND RECOGNITION Body parts detection for people tracking using trees of Histogram of Oriented Gradient descriptors, http://hal.inria.fr/INRIA/inria-00496980/en/ 6 SCENE ANALYSIS The Vision and Mobile Robotics Laboratory, http://www.cs.cmu.edu/~vmr/jobs/jobs.html 7 COMPUTER VISION Software That Evaluates Facial Expressions , http://www.sciencedaily.com/videos/computers_math/internet/5/ 8 I. IMAGE PROCESSING / COMPUTER GRAPHICS • Computer Graphics: • Synthesis of new images • Overlap between the two is growing • William Latham, Evolutionary Art 9 II. ADVANTAGES • Communication between user and computer • Interactive graphics • Creation of abstract, synthetic objects • Not confined to static images: animation • User controlled dynamics 10 III. REPRESENTATIVE USES • User Interfaces • Interactive Data Plotting • Office Automation / Electronic Publishing • Computer-Aided Drafting and Design http://www.warmelin.com/cad-cam.html 11 III. REPRESENTATIVE
    [Show full text]