Real-Time Graphics Architecture

Similar documents
Real-Time Graphics Architecture

20 Years of OpenGL. Kurt Akeley. Copyright Khronos Group, Page 1

Real-Time Graphics Architecture

Graphics and Imaging Architectures

OpenGL Essentials Training

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

E.Order of Operations

Graphics Pipeline & APIs

Early History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives

Module 13C: Using The 3D Graphics APIs OpenGL ES

Programming with OpenGL Part 1: Background

Graphics Pipeline & APIs

Drawing Fast The Graphics Pipeline

Mention driver developers in the room. Because of time this will be fairly high level, feel free to come talk to us afterwards

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Real-Time Graphics Architecture

A Proposal for OpenGL 1.4 Matt Craighead NVIDIA Corporation

December 11, 2001 Copyright 3Dlabs, Page 1

CS 4620 Program 3: Pipeline

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

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Rasterization Overview

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

Real-Time Graphics Architecture

Current Trends in Computer Graphics Hardware

Robust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan

Drawing Fast The Graphics Pipeline

CS 428: Fall Introduction to. OpenGL primer. Andrew Nealen, Rutgers, /13/2010 1

Shading Languages for Graphics Hardware

Programmable Graphics Hardware

Introduction to the OpenGL Shading Language

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

OpenGL. Toolkits.

CGT521 Introduction to

Copyright Khronos Group Page 1. Vulkan Overview. June 2015

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.

CS130 : Computer Graphics. Tamar Shinar Computer Science & Engineering UC Riverside

Comparing Reyes and OpenGL on a Stream Architecture

Development of Computer Graphics

CS452/552; EE465/505. Clipping & Scan Conversion

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation

Superbuffers Workgroup Update. Barthold Lichtenbelt

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Advanced Shading and Texturing

The Traditional Graphics Pipeline

CIS 441/541: Introduction to Computer Graphics Lecture 14: OpenGL Basics

The Graphics Pipeline and OpenGL I: Transformations!

Shadows in the graphics pipeline

Programming shaders & GPUs Christian Miller CS Fall 2011

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL

Survey in Computer Graphics Computer Graphics and Visualization

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?

Rasterization and Graphics Hardware. Not just about fancy 3D! Rendering/Rasterization. The simplest case: Points. When do we care?

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

Development of Computer Graphics. mid 1950s SAGE air defense system command & control CRT, light pens

CSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

Real-Time Graphics Architecture

Introduction. What s New in This Edition

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary

Lecture 2. Shaders, GLSL and GPGPU

CSC Graphics Programming. Budditha Hettige Department of Statistics and Computer Science

Dave Shreiner, ARM March 2009

Performance OpenGL Programming (for whatever reason)

Why modern versions of OpenGL should be used Some useful API commands and extensions

the gamedesigninitiative at cornell university Lecture 17 Color and Textures

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

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

Today. Rendering - III. Outline. Texturing: The 10,000m View. Texture Coordinates. Specifying Texture Coordinates in GL

Lecture 4: Geometry Processing. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Rendering Objects. Need to transform all geometry then

Scanline Rendering 2 1/42

The Traditional Graphics Pipeline

Real-Time Shadows. Last Time? Schedule. Questions? Today. Why are Shadows Important?

Scheduling the Graphics Pipeline on a GPU

Drawing Fast The Graphics Pipeline

Real-Time Shadows. MIT EECS 6.837, Durand and Cutler

Announcements. Submitting Programs Upload source and executable(s) (Windows or Mac) to digital dropbox on Blackboard

The Graphics Pipeline and OpenGL I: Transformations!

What was removed? (1) OpenGL ES vs. OpenGL

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Graphics Hardware. Instructor Stephen J. Guy

National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor

Graphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

What Next? Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. * slides thanks to Kavita Bala & many others

CS452/552; EE465/505. Overview of Computer Graphics

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

LECTURE 02 OPENGL API

Introduction to the Direct Rendering Infrastructure

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Introduction to Shaders.

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

MMGD0206 Computer Graphics. Chapter 1 Development of Computer Graphics : History

CS 354R: Computer Game Technology

Transcription:

Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall The OpenGL Graphics System Outline Introduction and history Block diagrams Goals and approaches Details Successes Mistakes Lessons Future 1

The OpenGL Graphics System Web sites www.opengl.org http://oss.sgi.com/projects/ogl-sample/ www.sgi.com/software/opengl/license.html OpenGL is a registered trademark Owned by Silicon Graphics Must be used as an adjective! This is all SGI owns now OpenGL is controlled by the ARB Architecture Review Board Named by Bill Glazier after Palo Alto s board OpenGL ARB Members 1991 1994* 1995* 1996* 1998 1999 2001 Compaq (Digital Equipment Corporation) IBM Intel Microsoft Silicon Graphics Evans & Sutherland 3D Labs (Intergraph) Hewlett Packard Sun Microsystems nvidia ATI Apple CS448 Lecture 15 * Estimated Kurt Akeley, Pat Hanrahan, Fall 2001 2

Some of the 70+ OpenGL Licensees 3D Labs Apple ATI AT & T Barco Be Inc. Cirrus Logic Compaq Cray Research Daikin Digital Equipment Corp. Elsa Evans & Sutherland Fujitsu Harris Computer Hewlett Packard Hitachi Hummingbird Communications IBM Intel Intelligraphics Interdimension Intergraph Japan Radio Company Microsoft Miro Mitsubishi NEC nvidia RasterOps S3 Samsung Siemens Nixdorf Silicon Graphics Sony SPEA Sun Microsystems Template Graphics Software Univel History of OpenGL 1977* 1982 1983 1985* 1986* 1987 1988 1989 1990 1991* Jim Clark writes LDS for E&S Multi Picture System Silicon Graphics incorporated IRIS GL ships with IRIS 1000 terminal IRIS GL licensed to IBM Jim Clark and others propose SGL (Simple GL) SGI and Pixar consider joint API development IRIS GL extended with vector commands (e.g. v3f) SGI ships GTX and Personal Iris First GL 5.0 documents OpenGL development begins SGI and Microsoft graphics collaboration begins OpenGL ARB created CS448 Lecture 15 * Estimated Kurt Akeley, Pat Hanrahan, Fall 2001 3

History of OpenGL (cont.) 1992 1995 1996* 1997 1998 1999* 2000 2001 OpenGL 1.0 completed (June 30) OpenGL / PEX debate (panel) at SIGGRAPH 92 OpenGL course at SIGGRAPH 92 OpenGL 1.1 completed OpenGL specification is made public SGI ships OpenGL DLL Fahrenheit agreement between SGI and Microsoft OpenGL 1.2 completed Apple becomes an OpenGL licensee OpenGL becomes available as open source OpenGL 1.3 completed CS448 Lecture 15 * Estimated Kurt Akeley, Pat Hanrahan, Fall 2001 SGI / Pixar Collaboration It seems to me that we are trying to merge troff and Scribe into a single hodge-podge. I don't think that we'll get a good result if we continue. It seems that a key to a high-performance interface is choosing the right boundary between what and how. Even the Pixar language has this boundary in it. It still does not support a description like 'lighted like a sunday afternoon in september'. I am in touch with Pat Hanrahan. He will send me an updated copy of a document outline today. I am to be working on what I discuss in this note. What next? -- Kurt Akeley (to Forest Baskett) 4

Fahrenheit SGI promoting and supporting PC OpenGL Microsoft asserting control of their own platform Fahrenheit is the negotiated settlement Results: Broad reach of agreement failed No new low-level standard, little at scene graph level OpenGL still exists on all Windows platforms SGI learned a lot about Microsoft s business Microsoft learned a lot about graphics Seamus s presentation at Graphics Hardware 2001 Kurt got mean, stopped dealing with Microsoft Modern Graphics Pipeline Application Command Geometry Rasterization Texture Fragment Display 5

Typical OpenGL Block Diagram They match Application Command Geometry Rasterization Texture Fragment Display 6

My Favorite OpenGL Block Diagram Unpack Pixels Pixel Operations Image Rasterization Image Pack Pixels Texture Memory Fragment Operations Geometry Unpack Vertexes Vertex Operations Point, Line, Polygon Rasterization Frame Buffer My Favorite OpenGL Block Diagram Symmetry of geometry and imaging paths Circulation paths Unpack Pixels Pixel Operations Image Rasterization Image Pack Pixels Texture Memory Fragment Operations Geometry Unpack Vertexes Vertex Operations Point, Line, Polygon Rasterization Frame Buffer 7

My Favorite OpenGL Block Diagram Orthogonal operation Vertexes, pixels, fragments, texture Unpack Pixels Pixel Operations Image Rasterization Image Pack Pixels Texture Memory Fragment Operations Geometry Unpack Vertexes Vertex Operations Point, Line, Polygon Rasterization Frame Buffer Goals 8

Goals for OpenGL Industry-wide acceptance Consistent implementations Innovative implementations Innovative and differentiated applications Long life High quality Non-Goals Make graphics programming easy OpenGL is a power tool Integrate digital media and 3D graphics This is really hard 9

Goal: Industry-wide acceptance Avoid compromising performance Allow explicit application trade-offs Get it right the first time Make minimum changes from IRIS GL Collect lots of input during design Do implementation during design Create an open standard Licensing program ARB to control future evolution of specification Goal: Industry-wide acceptance (cont.) Achieve compatibility with multiple Operating systems (MS, Unix, Linux, Mac OS, OS/2, Be, ) Window systems (X, Windows) Framebuffer not part of OpenGL state Programming languages (C, FORTRAN, Java, ) No pointers, structures, function overloading No 2D arrays at interface (row-major / column-major) Target Microsoft acceptance Omit 2D, window interface, font support Allow full application compliance with Windows Issue: no driver interface specified 10

Goal: Industry-wide acceptance (cont.) Marginalize PEX API, not protocol, is the right interface But client-server matters too Defined GLX protocol Included server-side display list storage Carefully specified client-side state Match current hardware capabilities Get input from other IHVs Meet current application needs Get input from ISVs Goal: Consistent Implementations Tightly written specification Conformance tests and required verification Complete implementations No sub-setting of 1.n specification Minimum resource specifications Required runtime error semantics Check and report No other side effects Incentives to share extensions Balance desires for consistency and for innovation Result: portable applications 11

Goal: Innovative Implementations Specification not too tight Not pixel-exact Smooth antialiasing loosely defined Object storage abstracted Filter attached to texture image Extensibility Key to IHV innovation Requires IHV control of entire driver Obvious for systems companies Not at all obvious for Microsoft Extensibility SGI maintains registry Over 270 extensions so far Names, token values, GLX protocol, Careful extension documentation Extension specification template Syntax rules for names Suffix/prefix rules Clearly identify all non-core commands and tokens Extension numbers Must account for all lower-numbered extensions OpenGL is more than the sum of its parts 12

Extension Template Name Name Strings Version Number Dependencies (list) Issues Overview New Procedures and Functions New Tokens Additions to Chapter [2,3,4,5,6] Additions to the GLX Specification GLX Protocol Dependencies (details) Errors New State Get Value Get Command Type Initial Value Attribute Set New Implementation Dependent State Extension Syntax Rules Required abbreviations Abbreviations specifically not allowed Compound words Naming rules General Procedures (e.g. verb-noun or adjective-noun) Defined constants (all caps, underbars) Parameters ([0],1,2, <target>, <params>) Extensions (prefixes, suffixes) Parameter order and typing rules Suffix codes 13

Extension Categories Proprietary Use corporate prefix/suffix, e.g. SGI EXT Use EXT prefix/suffix Must be implemented by at least two licensees ARB Use ARB prefix/suffix Specification controlled by the ARB 1.n No prefix/suffix Specification controlled by the ARB Goal: Innovative Applications Consistent implementations / tight specification Design qualities Mechanism, not features Orthogonality Circulation Similarity of pixels and texels Machine Shop analogy Sufficiency of capability (e.g. stencil) Invariance specification Support multi-pass algorithms Intuitive usability 14

Goal: Long Life Extensibility Anticipate important trends Integration of image processing and 3D graphics Goal: High Quality Beauty counts SGI culture, very different from Microsoft! Avoid design-by-committee Build a horse, not a camel Correct well-known IRIS GL deficiencies No command prefixes Can t be used by libraries (incomplete save/restore) Error reporting via printf()! Provide documentation Specification Man pages Programming guide 15

Some Details Object Ids Support display list editing, scripting Evaluation parameter semantics Allow evaluation to share vertex engine(s) Direct render to texture Would constrain memory optimization Sifdv interface For application convenience and efficiency Discourage incremental matrix arithmetic No pre-multiply Stack provided for undo Some Details (cont.) Application-specified clipping done in eye coordinates Allow use of singular projection matrixes Unit area pixels and texels Matches window system notion of pixel ownership Makes frustum and viewport calculations obvious Makes texture wrapping arithmetic obvious Matched pixel and texel addressing supports circulation 16

Success With Respect to Goals Industry-wide acceptance Great for Unix, Linux, embedded systems Good as can be expected with Microsoft Poor for game consoles Consistent implementations Good for core features Marginal for new features Innovative implementations Industry and academic standard Interesting work-arounds for constraints Success With Respect to Goals (cont.) Innovative and differentiated applications Very successful Long life Almost a decade so far High quality Generally respected Story of Carmack endorsement 17

Technical Successes Procedural interface Every graphics systems aspires to have a procedural interface Generalized texture capability All primitives (with pixel texture extension) Various dimensions of texture Texel and pixel conformance Incremental in-place modification Explicit format, filter specification, MIP level, Texture matrix Formalization of fragment Mistakes Business Taking our eye off Microsoft Technical Display lists as encapsulation for objects Re-introduction of texture objects Overly-abstract storage management Proxy-priority middle ground is not tenable No fast path clues in API Too much faith in pure mechanism E.g. DL objects, window position, 2D transform, in-place framebuffer to texture memory transfer, Persistent parameter state between Begin/End But would have broken IRIS GL programs badly 18

Mistakes (cont.) Probably should have been omitted Texture borders! Edge flags Polygon antialiasing Color index features (lighting, antialiasing, ) Needlessly complex or wrong ColorMaterial() Normal transformation Texture wrap semantics Bit fields Lessons It is worthwhile to specify carefully Write the spec first, or you ll be sorry! It is critical to guide system implementers and application developers to a common understanding of how to support and achieve high performance. Beware Microsoft People make and evolve standards Invest in developing a culture Keep competitive issues out of a specification s controlling body. 19

Future of OpenGL On the rebound Low period in the late 90s Provides alternative to DirectX/Microsoft API control Apple commitment is a positive sign Programmability is an exciting development Fits well in OpenGL structure OpenGL may truly be a library some day Lots of 2.0 activity, ARB still functioning Tenth birthday next summer Real-Time Graphics Architecture Kurt Akeley Pat Hanrahan http://www.graphics.stanford.edu/courses/cs448a-01-fall 20