Advanced Computer Graphics (CS & SE ) Lecture 7

Similar documents
GPU-Based Volume Rendering of. Unstructured Grids. João L. D. Comba. Fábio F. Bernardon UFRGS

Programming Graphics Hardware

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Graphics Hardware. Instructor Stephen J. Guy

Evolution of GPUs Chris Seitz

Graphics Processing Unit Architecture (GPU Arch)

Shaders. Slide credit to Prof. Zwicker

Teaching Cg. This presentation introduces Cg ( C for graphics ) and explains why it would be useful when teaching a computer graphics course.

2.11 Particle Systems

Graphics and Imaging Architectures

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Real Time Rendering of Expensive Small Environments Colin Branch Stetson University

Computer Graphics. Shadows

GPU Architecture and Function. Michael Foster and Ian Frasch

Programmable Graphics Hardware

Computer Graphics 10 - Shadows

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

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

Mattan Erez. The University of Texas at Austin

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Spring 2009 Prof. Hyesoon Kim

NVIDIA FX Composer. Developer Presentation June 2004

Introduction. Chapter What Is Cg?

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

Computer Graphics (CS 543) Lecture 10: Normal Maps, Parametrization, Tone Mapping

Spring 2011 Prof. Hyesoon Kim

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

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

Rendering Objects. Need to transform all geometry then

Introduction to Modern GPU Hardware

Computergrafik. Matthias Zwicker. Herbst 2010

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Rendering Grass with Instancing in DirectX* 10

Interactive Cloth Simulation. Matthias Wloka NVIDIA Corporation

Models and Architectures

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008.

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

NVIDIA Tools for Artists

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes

Windowing System on a 3D Pipeline. February 2005

The Rasterization Pipeline

Cg 2.0. Mark Kilgard

GPU Architecture. Michael Doggett Department of Computer Science Lund university

Per-Pixel Lighting and Bump Mapping with the NVIDIA Shading Rasterizer

CS427 Multicore Architecture and Parallel Computing

Administrivia. Administrivia. Administrivia. CIS 565: GPU Programming and Architecture. Meeting

CS451Real-time Rendering Pipeline

GPU Computation Strategies & Tricks. Ian Buck NVIDIA

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

Hardware-Assisted Relief Texture Mapping

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

Lecture 2. Shaders, GLSL and GPGPU

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

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

Mattan Erez. The University of Texas at Austin

Real-Time Rendering of a Scene With Many Pedestrians

Optimizing Games for ATI s IMAGEON Aaftab Munshi. 3D Architect ATI Research

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

GeForce4. John Montrym Henry Moreton

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

CS 354R: Computer Game Technology

Real-World Applications of Computer Arithmetic

Consumer graphics cards for fast image processing based on the Pixel Shader 3.0 standard

Pump Up Your Pipeline

Architectures. Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1

3D Production Pipeline

ECE 571 Advanced Microprocessor-Based Design Lecture 20

Monday Morning. Graphics Hardware

by Emmanuel Agu Dr. Emmanuel Agu (professor, Emmanuel ) Research areas

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

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

Automatic Tuning Matrix Multiplication Performance on Graphics Hardware

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

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

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Advanced Deferred Rendering Techniques. NCCA, Thesis Portfolio Peter Smith

CSE4030 Introduction to Computer Graphics

Getting fancy with texture mapping (Part 2) CS559 Spring Apr 2017

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1

Lecturer Athanasios Nikolaidis

ASYNCHRONOUS SHADERS WHITE PAPER 0

Introduction to Computer Graphics with WebGL

Turn your movie file into the homework folder on the server called Lights, Camera, Action.

Scanline Rendering 2 1/42

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

developer.nvidia.com The Source for GPU Programming

The Application Stage. The Game Loop, Resource Management and Renderer Design

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

Ciril Bohak. - INTRODUCTION TO WEBGL

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Practical Performance Analysis Koji Ashida NVIDIA Developer Technology Group

CENG 477 Introduction to Computer Graphics. Graphics Hardware and OpenGL

Transcription:

Advanced Computer Graphics (CS & SE 233.420) Lecture 7

CREDITS Bill Mark, NVIDIA Programmable Graphics Technology, SIGGRAPH 2002 Course. David Kirk, GPUs and CPUs:The Uneasy Alliance, Panel Presentation, ACM Workshop on General Purpose Computing on Graphics Processors. David Kirk, The Future: Programmable GPUs and Cinematic Computing, NVidia Developer Documents, developer.nvidia.com/docs/io/4106/technology_directions.pdf -Doug James GPU History taken from CG Tutorial Book www.nvidia.com Teaching CG powerpoint presentation provided by NVIDIA ACM Workshop on General Purpose Computing on Graphics Processors presentations, http://www.cs.unc.edu/events/conferences/gp2/program.shtml

Graphics Processing Units History

Processors The processor is the heart of any normal computer. Intel Pentium, a 64-bit AMD Opteron, or any of the many other brands and types of processors Most microprocessors are central processing units (CPUs) Complete computation engines that is fabricated on a single chip General purpose and execute applications written in general purpose languages, such as C or Java Until a few years ago, graphics programmers options CPU to process all the transformation and rasterization algorithms Very expensive hardware

Technically Graphics Processing Unit (GPU) a GPU is a single chip processor with integrated transform, lighting, triangle setup/clipping, and rendering engines that is capable of processing a minimum of 10 million polygons per second NVIDIA In practice computationally intensive transform and lighting calculations are now offloaded from the CPU onto the GPU

GPUs Designed is specialized for graphics tasks Process tens of millions of vertices per second rasterize hundreds of millions of fragments per second Process certain tasks much faster than CPUs Dot Products Vector-Matrix calculations

Pre-GPU Graphics acceleration relied on Integrated graphics architectures Specialized and expensive graphics hardware pipeline Silicon Graphics Evans & Sutherland These architectures introduced concepts that are still relevant in modern graphics Vertex transformations, texture mappings

First Generation (pre-1998) NVIDIA TNT2, ATI Rage, 3dfx, Voodoo3 Capabilities Rasterizing pre-transformed triangles Applying one or two textures Implement the DirectX 6 feature set When running 2D and 3D applications Completely relieve the CPU from updating individual pixels Limitations Lack the ability to transform 3D vertices Still transformed on the CPU Limited set of math operations for combining textures

Second Generation (1999 2000) NVIDIA GeForce 256, GeForce2, ATI Radeon 7500, S3 Savage 3D Capabilites Offloaded 3d Vertex Transformation & Lighting from the CPU Fast vertex transformation now capable on a PC Can implement OpenGL and DirectX 7 feature set in Hardware Math ops for combing textures and coloring pixels expanded Cube map textures Signed math operations Limitations Architecture configurable, but not truly programmable Still have a limited set of math operations for combining textures

Third Generation (2001) NVIDIA s GeForce3 and GeForce4 Ti, Microsoft s Xbox, and ATI s Radeon 8500 Capabilities Provides vertex programmability rather than merely offering more configurability These GPUs let the application specify a sequence of instructions for processing vertices DirectX 8 pixel shaders and various vendor-specific OpenGL extensions expose this generation s fragment-level configurability Limitations Pixel-level configurability is available, but these modes are not powerful enough to be considered truly programmable. Because these GPUs support vertex programmability but lack true pixel programmability, this generation is transitional

Fourth Generation (2002-2004) GeForce FX family with the CineFX architecture and ATI s Radeon 9700 Capabilities Provide both vertex-level and pixel-level programmability. This level of programmability opens up the possibility of offloading complex vertex transformation and pixel-shading operations from the CPU to the GPU. DirectX 9 and various OpenGL extensions expose the vertex-level and pixel-level programmability of these GPUs.

Fifth Generation (2004 - ) GeForce 6 with PCI-Express bus architecture Capabilities New features include GDDR3 memory Compatibility with the new Pixel Shader 3.0 programming model Microsoft DirectX 9.0 Shader Model 3.0 features set An on-chip video processing engine Allows for high-definition video and DVD playback 8 operations per pixel at a 60th of a second Support for OpenEXR The open standard for filtering in graphics as well as support for MPEG encode and decode, as well as support for Windows Media Video 9 The GPU's loops and branches are also programmable and are able to write video code to the chip

Transistor Count of CPU & GPU Processors Year Product Name Transistors 1995 Pentium Pro Processor 5.5 Million 1997 Pentium II Processor 7.5 Million 1998 Pentium II Xeon Processor 7.5 Million 1999 Celeron Processor 7.5 Million 1999 Pentium III Processor 9.5 Million 1999 Pentium III Xeon Processor 9.5 Million 1999 Pentium III E 28.1 Million 2000 Pentium 4 42 Million 2001 GeForce 3 57 Million 2002 GeForce4 Ti 63 Million 2003 GeForceFX 125 Million 2004 GeForce6 220 Million

PCI Express Bus Architecture Interface eliminates the bottlenecks caused by previous bus architectures Allows for maximum system performance in a multi- GPU configuration Double the bandwidth of the AGP 8X graphics bus 4GB per second in both upstream and downstream data transfers Opens the door to a truly parallel graphics bus architecture

Programmable GPU Pipeline Evolution

Graphics Pipeline Vertex Connectivity Fragments Colored Fragments Pixel Updates Vertex Transformation Primitive Assembly And Rasterization Fragment Texturing and Coloring Raster Operations Vertices Transformed Vertices Pixel Positions

Framebuffer Framebuffer Operations GPU Programmable Pipeline GPU Application Fragment Processor Assembly & Rasterization Vertex Processor CPU Textures Programmable Components

Fifth Generation NVidia GeForce 6 Pipeline vertex programmable vertex processing (fp32) setup rasterizer polygon pixel texture image polygon setup, culling, rasterization programmable perpixel math (fp32) programmable per-pixel texture, and fp16 blending Z-buf, fp16 blending, anti-alias (MRT) memory

So what does this mean in terms to true graphics capability?

Nvidia Dawn Demo GeForce FX Demonstration Video Dawn.mpg Two key vertex shaders drive her motion: Branching skeletal shader the body mesh is driven by several different combinations of internal bones Blend shape shader deforms her face based on control parameters. Skin Shader A complex combination of color maps, specular maps, and blood characteristic maps to produce very realistic skin. Lighting subtleties are accomplished with a series of cube maps for diffuse specular and "highlight" skin lighting. Wing Shader A translucent shader is used for the wings. Modifies both the reflected color off the wings as well as the amount of light passing through the wings based on viewing and light angles. Video courtesy of Nvidia and CG Tutorial CD http://www.nzone.com/object/nzone_downloads_nvidia.html

Nvidia Toys GeForce FX 5800 Demonstration Video Cinematic Camera Effects Pixel shaders are used to simulate camera effects like depth of field and full-scene blurring from an auto-focus lens Realistic Material Shaders Special pixel shaders add realism to the toy models in the scene Special plastic shader for the tank, robot and other plastic models. Painted wood shader is used for the wood blocks Brushed metal shader for the flying saucer Video courtesy of Nvidia and CG Tutorial CD http://www.nzone.com/object/nzone_downloads_nvidia.html

Nvidia Time Machine GeForce FX 5800 Demonstration Video Time-based Shaders Each of the aging materials has a single pixel shader associated with it. Shaders use a variety of texture map inputs (color, bump, specular, reflection, surface reflectivity, and reveal maps) to produce a seamless transition of surface material effects over time. Video courtesy of Nvidia and CG Tutorial CD http://www.nzone.com/object/nzone_downloads_nvidia.html

NVIDIA Nalu GeForce6 Mascot Dense hair is simulated in real time and lit by a technique called "deep shadows" where the topmost hairs glow brightly from exposure to the light, while the lower hairs are darker. Her skin is lit by the light refracted through the water's surface, her body and hair casting soft shadows on her as she swims. Soft shafts of light filter down from the surface and are blocked by her silhouette using world-class, render-totexture capabilities. Her high-resolution skin transitions into a highly detailed scale shader that features the same soft shadowing as the skin, but adds a more noticeable bumpmap, iridescence, and bio-luminescence. The final render pass (19 in all) provides a soft glow that allows the bright light on her hair and skin to bloom on the screen. See GeForce 6 Series Demo Collage from web page below Video courtesy of Nvidia and CG Tutorial CD http://www.nzone.com/object/nzone_downloads_nvidia.html

How do you Program a GPU?

Need the Right Hardware Anything greater that a GeForce 4 Know what you can do with the card Make sure you have the right driver Bus architecture will affect how you data from CPU to GPU AGP 4x is more limiting that 8x PCI-Express quickly making AGP card/mother boards obsolete NVIDIA leaders in the Programmable GPU card development

Need a Programming Language or API Programming powerful hardware with assembly code is hard GeForce 6 supports programs more than 1,000 assembly instructions long Programmers need the benefits of a high-level language: Easier programming Easier code reuse Easier debugging Available APIs or Programming Languages OpenGL, OpenGL Shader Language, CG

Low-Level APIs Low-level APIs Similar to assembler language Close to hardware functionality Input: Vertex/fragment attributes Output: new vertex/fragment attributes Sequence of instructions on registers Platform dependent Current Low-level APIs OpenGL extensions (OpenGL 2.0) GL_ARB_vertex_program GL_ARB_fragment_program DirectX: Vertex Shader, Pixel Shader

CG - The High-Level Language for Graphics Cg is an open-source high-level shading language to make graphics programming faster and easier Cg replaces assembly code with a C-like language and a compiler Cg is cross-api (OpenGL & DirectX) and cross- platform (Windows, Linux, and Mac OS) Cg is a key enabler of cinematic computing http://developer.nvidia.com/cgtutorial/

OpenGL 2.0 Shading Language A high-level procedural shading language for OpenGL Part of the core OpenGL 2.0 specification Designed to allow application programmers to create shaders for programmable vertex processing and fragment processing Allows developers to take total control over the most important stages of the graphics-processing pipeline Based on ANSI C http://www.opengl.org/documentation/oglsl.html

Books OpenGL Shading Language, Randi J. Rost Cg Tutorial, The: The Definitive Guide to Programmable Real-Time Graphics, Randima Fernando, Mark J. Kilgard. GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics, Randima Fernando NVIDIA GPU Programming Guide, http://developer.nvidia.com/object/gpu_programming_guide.html

Project, Paper, and Presentation

Project Focus on the aim of your project Main point about these projects is to gain knowledge in a specific area of computer graphics that is of interest to you It is up to you to make the project interesting Be practical

Paper Conference style paper Web page provides link to the ACM/Siggraph paper submission 6-8 pages Suggested format Abstract (do this last) 1. Introduction 2. Background 3. The Model 4. Simulation Results (very dry) a. List graphics card, compilers, code (OpenGL 1.?, C/C++, CPU, glut Libs) 5. Discussion (of results) 6. Conclusion 7. Acknowledgments 8. References

Presentation 10 minutes (5 Minutes for questions) 10 slides max!!! Format Tell em what your are going to say Introduction Say it Background, Model, Simulation, Discussion Tell em what you said Conclusion Demonstration Go over to the lab and demonstrate your code

Due Date Week of 13-17 June Need 3 hours for presentations Tues - 14 Jun, 2pm-5pm Need 3 hours for demonstrations Thur - 16 Jun, 2pm-5pm Papers/Web page due at beginning of demonstrations