From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS SOFTWARE.
Advertisements

Is There a Real Difference between DSPs and GPUs?
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
IMGD 4000: Computer Graphics in Games Emmanuel Agu.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
CS6500 Adv. Computer Graphics © Chun-Fa Chang, Spring 2003 Texture Mapping II April 10, 2003.
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.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Global Illumination May 7, Global Effects translucent surface shadow multiple reflection.
Advanced Texture Mapping May 10, Today’s Topics Mip Mapping Projective Texture Shadow Map.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
CSU0021 Computer Graphics © Chun-Fa Chang CSU0021 Computer Graphics September 10, 2014.
Background image by chromosphere.deviantart.com Fella in following slides by devart.deviantart.com DM2336 Programming hardware shaders Dioselin Gonzalez.
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.
Computer Graphics Graphics Hardware
Advanced Computer Graphics March 06, Grading Programming assignments Paper study and reports (flipped classroom) Final project No written exams.
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.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
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.
Real-Time High Quality Rendering CSE 291 [Winter 2015], Lecture 2 Graphics Hardware Pipeline, Reflection and Rendering Equations, Taxonomy of Methods
Global Illumination. Local Illumination  the GPU pipeline is designed for local illumination  only the surface data at the visible point is needed to.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Havok FX Physics on NVIDIA GPUs. Copyright © NVIDIA Corporation 2004 What is Effects Physics? Physics-based effects on a massive scale 10,000s of objects.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Ray Tracing using Programmable Graphics Hardware
Ray Tracing by GPU Ming Ouhyoung. Outline Introduction Graphics Hardware Streaming Ray Tracing Discussion.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
GLSL I.  Fixed vs. Programmable  HW fixed function pipeline ▪ Faster ▪ Limited  New programmable hardware ▪ Many effects become possible. ▪ Global.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
Graphics Pipeline Bringing it all together. Implementation The goal of computer graphics is to take the data out of computer memory and put it up on the.
Computer Graphics Graphics Hardware
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Chapter 1 An overview on Computer Graphics
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
From Turing Machine to Global Illumination
The Graphics Rendering Pipeline
Understanding Theory and application of 3D
GPU and Effects Graphics pipeline Programmable shaders Special effects.
Interactive Computer Graphics
Graphics Processing Unit
Computer Graphics Graphics Hardware
CS5500 Computer Graphics April 17, 2006 CS5500 Computer Graphics
Ray Tracing on Programmable Graphics Hardware
Graphics Processing Unit
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University

Outline  My first computer (CASIO fx3600)  Turning machine and von Neumann architecture  GPU pipeline  Local and global illumination  Shadow and reflection through texture  Programmable GPUs

Calculator vs. Computer  What is the difference between a calculator and a computer?  Doesn ’ t a compute-r just “ compute ” ?  The Casio fx3600p calculated can be programmed (38 steps allowed).

Turing Machine  Can be adapted to simulates the logic of any computer that could possibly be constructed.  von Neumann architecture implements a universal Turing machine.  Look them up at Wikipedia!

Outline  My first computer (CASIO fx3600)  Turning machine and von Neumann architecture  GPU pipeline  Local and global illumination  Shadow and reflection through texture  Programmable GPUs

Simplified View  The Data Flow: 3D Polygons (+Colors, Lights, Normals, Texture Coordinates … etc.)  2D Polygons  2D Pixels (I.e., Output Images) Transform (& Lighting) Rasterization

Outline  My first computer (CASIO fx3600)  Turning machine and von Neumann architecture  GPU pipeline  Local and global illumination  Shadow and reflection through texture  Programmable GPUs

Global Effects translucent surface shadow multiple reflection

Local vs. Global

How Does GPU Draw This?

Quiz  Q1: A straightforward GPU pipeline give us local illumination only. Why?  Q2: What typical effects are missing? Hint: How is an object drawn? Do they consider the relationship with other objects? Shadow, reflection, and refraction…

 Wait but I ’ ve seen shadow and reflection in games before … With ShadowsWithout Shadows

Outline  My first computer (CASIO fx3600)  Turning machine and von Neumann architecture  GPU pipeline  Local and global illumination  Shadow and reflection through texture  Programmable GPUs

Adding “ Memory ” to the GPU Computation  Modern GPUs allow: The usage of multiple textures. Rendering algorithms that use multiple passes. Transform (& Lighting) Rasterization Textures

Faked Global Illumination  Shadow, Reflection, BRDF … etc.  In theory, real global illumination is not possible in current graphics pipeline: Conceptually a loop of individual polygons. No interaction between polygons.  Can this be changed by multi-pass rendering?

Case Study: Shadow Map  Using two textures: color and depth  Relatively straightforward design using pixel (fragment) shaders on GPUs.

Image Source: Cass Everitt et al., “Hardware Shadow Mapping” NVIDIA SDK White PaperHardware Shadow Mapping Eye’s ViewLight’s ViewDepth/Shadow Map

Basic Steps of Shadow Maps  Render the scene from the light’s point of view,  Use the light’s depth buffer as a texture (shadow map),  Projectively texture the shadow map onto the scene,  Use “texture color” (comparison result) in fragment shading.

Outline  My first computer (CASIO fx3600)  Turning machine and von Neumann architecture  GPU pipeline  Local and global illumination  Shadow and reflection through texture  Programmable GPUs

PC Graphics Architecture  Two buses on PC: System Bus (CPU-Memory) and Peripheral I/O Bus.  Before AGP: narrow path (I/O Bus) between main memory and graphics memory (for frame buffer, Z buffer, texture, vertex data … etc.)  AGP and PCI-e speed up the link between host PC and graphics processor (GPU)

Source:

New Chips Are Coming  Intel Broadwell CPU and GPU on the same die (silicon chip) Bandwidth no longer limited by chipsets.  Processors for Phones & Tablets: Qualcomm Snapdragon & Adreno Apple A8, A9, and beyond Mediatek, NVIDIA, Intel ATOM…etc.

NVIDIA Geforce 6800

NVIDIA Geforce 8800

NVIDIA Fermi (Geforce 400 and 500 Series) From NVIDIA Fermi Architecture Whitepaper

How to Program a GPU?  Writing a 3D graphics application program Typically in DirectX or OpenGL Still CPU programming in C/C++ The APIs and drivers do the dirty work for you.  Writing GPU shaders Typically in GLSL or Cg Still drawing 3D objects Working like plug-in’s to the 3D rendering pipeline

GPGPU  General-purpose GPU computing No longer restricted to graphics applications. To utilize the abundant “GFLOPs” in GPU.  Could be implemented in GPU shaders By clever transformation of problem domains. Textures to store the data structures However, shaders could not perform memory writes with calculated addresses (a.k.a. scatter operations)

GPU as a Parallel Computing Platform  Treating GPUs as parallel machinery Not quite the same as shared-memory multi- processor. A special kind of memory hierarchy.  NVIDIA CUDA Widely adopted in real-world applications  OpenCL For non-NV GPUs and multi-core CPUs

Branch Divergence on GPU Warp ½ performance for each branch! … if x 1 – x 0 > y 1 – y 0 : xMajorIteration() yMajorIteration() else: …

Examples

GPU Shading Effects  Reflection and refraction  Relief on surface  Ambient occlusion and lighting

Real-Time Rendering of Splashing Water  Particle system simulation for real-time interaction with terrains and dynamic objects.  Reconstruction of the splash surface with 2D metaballs

Ray Tracing on GPU  Using OpenCL or NVIDIA CUDA  Or use NVIDIA OptiX