The Graphics Pipeline

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

Computer Graphics Hardware An Overview

OpenGL & Delphi. Max Kleiner. 1/22

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

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

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

Introduction to Computer Graphics

The Design of the OpenGL Graphics Interface

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

A Crash Course on Programmable Graphics Hardware

OpenGL Performance Tuning

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

Lecture Notes, CEng 477

GPU Architecture. Michael Doggett ATI

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

Graphics Pipeline in a Nutshell

GPUs Under the Hood. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

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

Computer Graphics. Anders Hast

A Short Introduction to Computer Graphics

Radeon HD 2900 and Geometry Generation. Michael Doggett

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

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

GPGPU Computing. Yong Cao

Computer Graphics on Mobile Devices VL SS ECTS

Interactive Computer Graphics

Real-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university

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

DESIGNING GRAPHICS ARCHITECTURES AROUND SCALABILITY AND COMMUNICATION

Interactive visualization of multi-dimensional data in R using OpenGL

Optimizing AAA Games for Mobile Platforms

Introduction to GPGPU. Tiziano Diamanti

Advanced Visual Effects with Direct3D

INTRODUCTION TO RENDERING TECHNIQUES

How To Teach Computer Graphics

Touchstone -A Fresh Approach to Multimedia for the PC

Aston University. School of Engineering & Applied Science

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

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

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

Image Synthesis. Transparency. computer graphics & visualization

L20: GPU Architecture and Models

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

Masters of Science in Software & Information Systems

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

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

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

Realtime 3D Computer Graphics Virtual Reality

3D Computer Games History and Technology

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

Tracking Graphics State For Networked Rendering

NVIDIA GeForce GTX 580 GPU Datasheet

3D Graphics and Cameras

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

QCD as a Video Game?

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Programming 3D Applications with HTML5 and WebGL

Real-Time Graphics Architecture

Intel Graphics Media Accelerator 900

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

Dynamic Resolution Rendering

Introduction to Game Programming. Steven Osman

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

Lezione 4: Grafica 3D*(II)

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

CS 4204 Computer Graphics

GPU Christmas Tree Rendering. Evan Hart

CPIT-285 Computer Graphics

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

Vertex and fragment programs

CIS 536/636 Introduction to Computer Graphics. Kansas State University. CIS 536/636 Introduction to Computer Graphics

A Proposal for OpenEXR Color Management

Console Architecture. By: Peter Hood & Adelia Wong

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

CMSC 427 Computer Graphics 1

Interactive Level-Set Deformation On the GPU

Color correction in 3D environments Nicholas Blackhawk

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

Shadows. Shadows. Thanks to: Frédo Durand and Seth Teller MIT. Realism Depth cue

Midgard GPU Architecture. October 2014

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

3D Math Overview and 3D Graphics Foundations

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Multiresolution 3D Rendering on Mobile Devices

Examples. Pac-Man, Frogger, Tempest, Joust,

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

CS 4810 Introduction to Computer Graphics

Visualizing Data: Scalable Interactivity

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

Computer Science. Master of Science

GAME ENGINE DESIGN. A Practical Approach to Real-Time Computer Graphics. ahhb. DAVID H. EBERLY Geometrie Tools, Inc.

Advanced Rendering for Engineering & Styling

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008.

Interactive Information Visualization using Graphics Hardware Študentská vedecká konferencia 2006

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

NVIDIA workstation 3D graphics card upgrade options deliver productivity improvements and superior image quality

Transcription:

The Graphics Pipeline Topics 1. Defining graphics architectures 2. The graphics pipeline 3. Computation and bandwidth requirements 1

Papers Required 1. The design of the OpenGL graphics interface, M. Segal and K. Akeley Optional 1. The OpenGL Specification, M. Segal and K. Akeley Both papers will be available from course web site: http://www.graphics.stanford.edu/courses/cs448a-01-fall Lecture slides will also be available online Graphics Systems and Libraries Declarative (What, not How) Describe the scene For example: virtual camera Systems RenderMan scene description Inventor and Performer scene graphs Imperative (How, not What) Emit a sequence of drawing commands For example: load model-view matrix Systems OpenGL PostScript and Xlib 2

Drawing s glbegin(gl_polygon); glcolor(red); glvertex3i(0,0,0); glvertex3i(1,0,0); glvertex3i(0,1,0); glend() glbegin(gl_polygon); glcolor(red); glvertex3i(0,0,0); glcolor(blue); glvertex3i(1,0,0); glcolor(blue); glvertex3i(0,1,0); glend() OpenGL Architecture Unpack Pixels Pixel Operations Image Image Pack Pixels Memory Operations Unpack Vertexes Vertex Operations Point, Line, Polygon Frame Buffer 3

API = ISA VLIW-like instructions Specify operations Multiple functional units Orthogonal operations Specify data paths Composition of operations 4

ISA Specification Invariance Does NOT precisely define drawing commands For example: Does not specify what pixels are inside a triangle Does not specify the precision of intermediate calculations Image drawn by two systems may differ Does require invariance across modes Image drawn in two modes must be the same Modern Graphics Pipeline Forward-Algorithm A trip down the graphics pipeline 5

Simulation Input event handlers Modify data structures Database traversal Primitive generation Utility functions buffering interpretation Unpack and perform format conversion Maintain graphics state glloadidentity( ); glmultmatrix( T ); glbegin( GL_TRIANGLE_STRIP ); glcolor3f ( 0.0, 0.5, 0.0 ); glvertex3f( 0.0, 0.0, 0.0 ); glcolor3f ( 0.5, 0.0, 0.0 ); glvertex3f( 1.0, 0.0, 0.0 ); glcolor3f ( 0.0, 0.5, 0.0 ); glvertex3f( 0.0, 1.0, 0.0 ); glcolor3f ( 0.5, 0.0, 0.0 ); glvertex3f( 1.0, 1.0, 0.0 ); glend( ); IT Color Transformation matrix 6

Evaluation of polynomials for curved surfaces Transform and projection Clipping, culling and primitive assembly Evaluation of polynomials for curved surfaces Transform and projection (object -> image space) Clipping, culling and primitive assembly Lighting (light sources and surface reflection) coordinate generation T Object-space triangles Screen-space lit triangles 7

Setup (per-triangle) Sampling (triangle = {fragments}) Interpolation (interpolate colors and coordinates) Screen-space triangles s transformation and projection address calculation filtering s s 8

combiners s d s s combiners and fog Owner, scissor, depth, alpha and stencil tests Blending or compositing Dithering and logical operations d s Framebuffer Pixels 9

Gamma correction Analog to digital conversion Framebuffer Pixels Light Graphics Pipeline Object Image 10

Graphics Pipeline Vertex Functionality vs. Frequency processing = per-vertex Transformation and Lighting (T & L) Floating point; complex operations 10 million vertices processing = per-fragment Blending and texture combination Fixed point; limited operations 1 billion fragments 11

Evolution of the Graphics Pipeline History Framebuffers: display processing: transformation and lighting : hidden surface and simple shading Texturing: perspective correct texture lookup Antialiasing: multisampling Shading: multiple textures and texture combiners Where and how to insert new functionality? Inserting Functionality: Order Hidden-surface elimination painters algorithm = hide-first z-buffer = hide-last Texturing textures = texture-last Vertex textures = texture-first Shading Vertex shading = shade-first or shade-first-vertex shading = shade-last-fragment Deferred shading = shade-last-pixel 12

Reyes Architecture Tessellation Object Shade/ Sample Sample Image Computational Requirements (per-vertex) Assumptions: -1 infinite light - coordinates ADD CMP MUL DIV SPE 40 8 53 1 1 Rough estimate: 100 ops 13

Computational Requirements : per-vertex Assumptions: - 7 interpolants (z,r,g,b,s,t,q) ADD CMP MUL DIV SPE 62 22 55 4 0 Rough estimate Computational Requirements : per-fragment Assumptions: - 7 interpolants (z,r,g,b,s,t,q) ADD CMP MUL DIV SPE 16 3 6 0 0 Rough estimate 14

Computational Requirements : per-fragment Assumptions: -Projective texture mapping -Level of detail calculation -Trilinear interpolation ADD CMP MUL DIV SPE 42 5 48 1 3 Rough estimate Computational Requirements : per-fragment Assumptions: - blending -Color blending -Depth buffering ADD CMP MUL DIV SPE 8 1 16 0 0 Rough estimate 15

Computational Requirements Per-Vertex ADD CMP MUL 102 30 108 Per- DIV 5 SPE 1 ADD 66 CMP 9 MUL 70 DIV 1 SPE 3 Rough estimate Communication Requirements 20 Mvert/s 1000 Mpix/s 0.880 GB/s Rough estimate Vertex 5 Gops 150 Gops 4 GB/s Memory Framebuffer 120 Mpix/s 0.36 GB/s 16 GB/s 16

Graphics State or Context Required to minimize data transmission Resources (shared or global, persistent) Fonts lists Attributes Appearance: Lights, Materials, Colors, Transformation: camera, model, texture, Options: fb formats, constant per-frame Graphics State Ideally small and bounded e.g. maximum number of lights OpenGL: ~12kb Distributed throughout the pipeline Difficult to manage (forces major design decisions) Must often be broadcast; must be consistent Hard to switch contexts OpenGL has a single context; X has multiple contexts One drawing process; windows are difficult Difficult to query state 17