Ray Tracing on Programmable Graphics Hardware

Slides:



Advertisements
Similar presentations
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Advertisements

Photon Mapping on Programmable Graphics Hardware Timothy J. Purcell Mike Cammarano Pat Hanrahan Stanford University Craig Donner Henrik Wann Jensen University.
Interactive Ray Tracing: From bad joke to old news David Luebke University of Virginia.
IMGD 4000: Computer Graphics in Games Emmanuel Agu.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
CS5500 Computer Graphics © Chun-Fa Chang, Spring 2007 CS5500 Computer Graphics April 19, 2007.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
Brook for GPUs Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, Pat Hanrahan Stanford University DARPA Site Visit, UNC.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Some Things Jeremy Sugerman 22 February Jeremy Sugerman, FLASHG 22 February 2005 Topics Quick GPU Topics Conditional Execution GPU Ray Tracing.
Interactive k-D Tree GPU Raytracing Daniel Reiter Horn, Jeremy Sugerman, Mike Houston and Pat Hanrahan.
Graphics Processors CMSC 411. GPU graphics processing model Texture / Buffer Texture / Buffer Vertex Geometry Fragment CPU Displayed Pixels Displayed.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
CEG 4131-Fall Graphics Processing Unit GPU CEG4131 – Fall 2012 University of Ottawa Bardia Bandali CEG4131 – Fall 2012.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Mapping Computational Concepts to GPUs Mark Harris NVIDIA Developer Technology.
Computer Graphics Graphics Hardware
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
GPU Shading and Rendering Shading Technology 8:30 Introduction (:30–Olano) 9:00 Direct3D 10 (:45–Blythe) Languages, Systems and Demos 10:30 RapidMind.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Cg Programming Mapping Computational Concepts to GPUs.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac GPU  Precision, Power, Programmability –CPU: x60/decade, 6 GFLOPS,
Raytracing and Global Illumination Intro. to Computer Graphics, CS180, Fall 2008 UC Santa Barbara.
Photon Mapping on Programmable Graphics Hardware
Programming Concepts in GPU Computing Dušan Gajić, University of Niš Programming Concepts in GPU Computing Dušan B. Gajić CIITLab, Dept. of Computer Science.
1 Dr. Scott Schaefer Programmable Shaders. 2/30 Graphics Cards Performance Nvidia Geforce 6800 GTX 1  6.4 billion pixels/sec Nvidia Geforce 7900 GTX.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Shadow Mapping Chun-Fa Chang National Taiwan Normal University.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
1 Ray Tracing with Existing Graphics Systems Jeremy Sugerman, FLASHG 31 January 2006.
M. Jędrzejewski, K.Marasek, Warsaw ICCVG, Multimedia Chair Computation of room acoustics using programable video hardware Marcin Jędrzejewski.
May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
Ray Tracing using Programmable Graphics Hardware
Mapping Computational Concepts to GPUs Mark Harris NVIDIA.
Efficient Partitioning of Fragment Shaders for Multiple-Output Hardware Tim Foley Mike Houston Pat Hanrahan Computer Graphics Lab Stanford University.
Ray Tracing by GPU Ming Ouhyoung. Outline Introduction Graphics Hardware Streaming Ray Tracing Discussion.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
GLSL I.  Fixed vs. Programmable  HW fixed function pipeline ▪ Faster ▪ Limited  New programmable hardware ▪ Many effects become possible. ▪ Global.
Computer Engg, IIT(BHU)
Computer Graphics Graphics Hardware
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
CSE 167 [Win 17], Lecture 15: Ray Tracing Ravi Ramamoorthi
Programmable Shaders Dr. Scott Schaefer.
Week 2 - Friday CS361.
Programmable Pipelines
A Crash Course on Programmable Graphics Hardware
Graphics Processing Unit
Real-Time Ray Tracing Stefan Popov.
Chapter 6 GPU, Shaders, and Shading Languages
From Turing Machine to Global Illumination
GPU and Effects Graphics pipeline Programmable shaders Special effects.
CSC 2231: Parallel Computer Architecture and Programming GPUs
Christian Lauterbach GPGPU presentation 3/5/2007
Introduction to Computer Graphics with WebGL
Static Image Filtering on Commodity Graphics Processors
Graphics Processing Unit
Computer Graphics Graphics Hardware
CS5500 Computer Graphics April 17, 2006 CS5500 Computer Graphics
CSCE 441: Computer Graphics Ray Tracing
RADEON™ 9700 Architecture and 3D Performance
Graphics Processing Unit
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

Ray Tracing on Programmable Graphics Hardware SIGGRAPH 2002 Timothy J. Purcell Ian Buck William R. Mark Pat Hanrahan Sungbae Kim Master Student in CS

Contributions Abstract streaming graphics processor Implement ray tracing using GPU Help guide the design of future architectures

Why ray tracing? Ray tracing for the movie “Cars”

Ray tracing pros and cons Good quality Simple algorithm Expensive cost  How to accelerate ray tracing

Basic Ray tracing algorithm Shoot eye rays Find the first intersection Calculates the illumination Reflection? Calls itself Transmission? Calls itself Combines the resulting illumination

Note that each pixel is independent Basic Ray tracing ? = RayTrace( ) = Shade( ) + refl1*RayTrace( ) RayTrace( ) = Shade( ) + refl2*RayTrace( ) + refr2*RayTrace( ) … Note that each pixel is independent

Find intersection

Uniform Grid

How to accelerate Many algorithms Use parallel systems Massively parallel shared memory supercomputer : *-ray Cluster of commodity PCs : RTRT Special hardware for ray tracing Streaming Programming Model : this paper’s approach

Streaming Programming Model A stream is a set of data records Kernels operate on each element of an input stream independently Kernels can read from global memory Streams connect kernels

Streaming Ray Tracer Eye Ray Generator Traverser Intersector Shader Screen Pixels Eye Ray Generator Camera Rays Traverser Grid (Ray, Voxel) It is a result of our desire to eventually run the ray tracer on a GPU which lack branching within a fragment program Intersector Triangles Hits Materials Shader Pixel color updates

Programmable Graphics Processor Abstraction We can use GPU as Streaming Processor But limited streaming processor

GPU Ray Tracer Limited  How to map Global Memory Kernel to Kernel connection No loop, No branch It is a result of our desire to eventually run the ray tracer on a GPU which lack branching within a fragment program

Texture Memory Mapping We can use texture as global memory Store non-RGB values in textures For example, The Second triangle of the second grind Also Rays, Materials

Kernel to Kernel Copy output fragments into Texture

No loop No Branch Multipass – operate again until every is done bodyfp(); } while ( donefp() ); State : z-value, stencil bit For performance : early z-culling, stencil mask

Simulation Result SIMD vs. MIMD Horizontal line represents the performance of a graphics card when the author researched. As you see, MIMD structure is better. It means if graphics cards support MIMD structure, ray tracing will be very fast. In right charts show that in MIMD structure compute bandwidth is more important.

GPU vs. CPU Comparable to CPU Radeon 9700 Pro CPU Ray-triangle intersections/s 100M 20M in P3 800 MHz Ray/s 300K to 4.0M 800K to 7.1M 1.8M to 2.3M (With simple shading) in P4 2.5 GHz Comparable to CPU

GPU vs. CPU Graphics processor evolves faster

Demo Shadow rays 10.5 fps Eye rays, Shadow rays, Reflection rays

Appendix: General Purpose GPU(GPGPU) GPU, Shader, GLSL, HLSL, Cg, OpenGL, Direct3D…. BrookGPU (Stanford) CUDA (NVIDIA) There is a research area to use GPU in non-graphics area.

Appendix: Cell Processor IBM, SONY, TOSHIBA Interactive ray tracer : iRT More faster than GPU