Hardware Shading: State-of-the-Art and Future Challenges

Similar documents
Complex Shading Algorithms

Shading Languages for Graphics Hardware

Chapter 1 Introduction. Marc Olano

A Real-Time Procedural Shading System for Programmable Graphics Hardware

Real-time Shading: Hardware Shading Effects

Self-shadowing Bumpmap using 3D Texture Hardware

Towards Interactive Bump Mapping with Anisotropic Shift-Variant BRDFs

Comparing Reyes and OpenGL on a Stream Architecture

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

Shaders. Slide credit to Prof. Zwicker

SGI OpenGL Shader. Marc Olano SGI

The F-Buffer: A Rasterization-Order FIFO Buffer for Multi-Pass Rendering. Bill Mark and Kekoa Proudfoot. Stanford University

CS 354R: Computer Game Technology

Outline of Lecture. Real-Time High Quality Rendering. Geometry or Vertex Pipeline. Basic Hardware Pipeline. Pixel or Fragment Pipeline

A Framework for Analyzing Real- Time Advanced Shading Techniques

Advanced Shading and Texturing

Efficient Cloth Modeling and Rendering

Illuminating Micro Geometry Based on Precomputed Visibility

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

Graphics Hardware. Instructor Stephen J. Guy

Cg: A system for programming graphics hardware in a C-like language

Practical Shadow Mapping

Siggraph Full-Day Course #26. Real-Time Shadowing Techniques

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Deferred Rendering Due: Wednesday November 15 at 10pm

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

Shaders CSCI 4239/5239 Advanced Computer Graphics Spring 2014

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

CS427 Multicore Architecture and Parallel Computing

Game Technology. Lecture Physically Based Rendering. Dipl-Inform. Robert Konrad Polona Caserman, M.Sc.

Soft Shadow Maps. Soft Shadow Maps for Linear Lights

frame buffer depth buffer stencil buffer

Efficient Rendering of Glossy Reflection Using Graphics Hardware

Primitive processing and advanced shading architecture for embedded space. Digital Media Professionals, Inc

Lecturer Athanasios Nikolaidis

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

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

x ~ Hemispheric Lighting

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

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

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

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

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

BRDF Computer Graphics (Spring 2008)

Figure 1: Page from the Munsell Book of Color displayed on a 1970's frame buffer (from [3]). possible to display a surface with an arbitrary BRDF, wil

Shadow Mapping for Hemispherical and Omnidirectional Light Sources

GeForce4. John Montrym Henry Moreton

Hardware Accelerated Per-Pixel Displacement Mapping

Shaders CSCI 4229/5229 Computer Graphics Fall 2017

Texture mapping. Computer Graphics CSE 167 Lecture 9

Technical Game Development II. Reference: Rost, OpenGL Shading Language, 2nd Ed., AW, 2006 The Orange Book Also take CS 4731 Computer Graphics

Motivation. My General Philosophy. Assumptions. Advanced Computer Graphics (Spring 2013) Precomputation-Based Relighting

AGDC Per-Pixel Shading. Sim Dietrich

OpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.

CHAPTER 1 Graphics Systems and Models 3

Radiance. Radiance properties. Radiance properties. Computer Graphics (Fall 2008)

CS GAME PROGRAMMING Question bank

Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia.

Interleaved Sampling

Dave Shreiner, ARM March 2009

NVIDIA nfinitefx Engine: Programmable Pixel Shaders

Volume Rendering with libmini Stefan Roettger, April 2007

Lecture 10: Shading Languages. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Evolution of GPUs Chris Seitz

CSE528 Computer Graphics: Theory, Algorithms, and Applications

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

Complex Multipass Shading On Programmable Graphics Hardware

Computer Science 175. Introduction to Computer Graphics lib175 time: m/w 2:30-4:00 pm place:md g125 section times: tba

Technical Game Development II. Reference: Rost, OpenGL Shading Language, 2nd Ed., AW, 2006 The Orange Book Also take CS 4731 Computer Graphics

The Terrain Rendering Pipeline. Stefan Roettger, Ingo Frick. VIS Group, University of Stuttgart. Massive Development, Mannheim

PixelFlow. Marc Olano SGI

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

Computer Graphics Shadow Algorithms

CS : Assignment 2 Real-Time / Image-Based Rendering

Interactive Multi-Pass Programmable Shading

Programming Graphics Hardware

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

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

I expect to interact in class with the students, so I expect students to be engaged. (no laptops, smartphones,...) (fig)

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

Lecture 2. Shaders, GLSL and GPGPU

Mattan Erez. The University of Texas at Austin

Technical Report. Anisotropic Lighting using HLSL

Applications of Pixel Textures in Visualization and Realistic Image Synthesis

Introduction to Shaders.

Computer Graphics and Visualization. What is computer graphics?

Procedural Shaders: A Feature Animation Perspective

Volume Graphics Introduction

Texture Mapping II. Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1. 7.

Textures. Texture coordinates. Introduce one more component to geometry

Shadow Mapping. Render Scene and Access the Depth Texture. What is Projective Texturing? About Projective Texturing (1) About Projective Texturing (3)

SMASH: A Next-Generation API for Programmable Graphics Accelerators

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Game Architecture. 2/19/16: Rasterization

Graphics and Imaging Architectures

Programmable Graphics Hardware

Rasterization Overview

The Traditional Graphics Pipeline

Computer Graphics. Bing-Yu Chen National Taiwan University

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

Transcription:

Hardware Shading: State-of-the-Art and Future Challenges Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,, Germany

Graphics Hardware Hardware is now fast enough for complex geometry for multipass rendering Multipass rendering: render objects multiple times with different shading parameters and textures to achieve complex shading hardware treated as a SIMD processor graphics pipeline becomes complex instruction set e.g. Quake 3: sometimes 5 passes and more

Graphics Hardware New hardware features speeding up rendering by reducing number of passes e.g. multitexturing reduces total bandwidth make complex algorithms feasible: e.g. extensions for bump mapping sometimes completely new possibilities e.g. dependent textures/pixel textures for environment mapped bump mapping

Applications of Complex, Interactive Shading Engineering and design light planing, interior design, luminary design Marketing and (e-)commerce product and material catalogs, online shops Entertainment movie special effects, games Visualization medical imaging, scientific visualization

Questions What features are necessary? what does it take to support the typical rendering algorithms? What features are useful? significant performance improvements for a variety of algorithms Programming support make it easy to develop for graphics hardware

Overview Hardware shading algorithms materials, shadows, bump maps, volume rendering discussion of shading algorithms Recent hardware developments increased flexibility for geometry and fragment processing Shading languages for graphics hardware motivation, required features, open problems Hardware support for shading languages

Hardware Shading Algorithms Examples for multipass rendering: realistic materials for local and global illumination shadow maps volume rendering and participating media bump mapping

Rendering of Realistic Materials Local illumination (Heidrich( 99, Kautz 99): use textures to store sampled BRDFs and reflection models break down high-dimensional tables to lower- dimensional terms (textures) make sure texture coordinates are easy to compute

Example: Torrance-Sparrow Model Torrance-Sparrow ( 67): f r =F(θ)D(δ) G(α,β)/(π cosα cosβ) Sample factors store as 2D textures Texture coordinates: reparameterize terms over cosines of angles allows for hardware-based texture coordinate generation v n δ β θ h α l

Torrance-Sparrow Model * +

Banks Model Anisotropic model (Banks 94, Heidrich 98)

Sampled BRDFs Factorization of sampled BRDFs (Kautz 99) measured/simulated BRDF data rendering similar to analytic models

Sampled BRDFs With Textures Combining BRDFs with diffuse textures

Environment Maps With Complex Materials:

Hardware Shading Algorithms Examples for multipass rendering: realistic materials for local and global illumination shadow maps volume rendering and participating media bump mapping

Shadow Maps Shadow maps using the alpha test

Shadow Maps Alpha shadow map:

Shadow Maps Shadow map applied as projective texture

Shadow Maps Light source z as 1D alpha texture

Shadow Maps Subtract projective texture image from 1D texture image

Hardware Shading Algorithms Examples for multipass rendering: realistic materials for local and global illumination shadow maps volume rendering and participating media bump mapping

Volume Rendering Texture-based volume rendering (Cabral 94, Westermann 98, Salama 00) back-to-front rendering of textured volume slices

Volume Rendering Texture-based volume rendering (Cabral 94, Westermann 98, Salama 00) Images: Hastreiter 98

Participating Media Volume rendering for streaks of light (Everitt 00, Dobashi 00) Image: Everitt 00 Image: Dobashi 00

Hardware Shading Algorithms Examples for multipass rendering: realistic materials for local and global illumination shadow maps volume rendering and participating media bump mapping

Bump Mapping Tangent space bump mapping (Peercy( 97): store normal textures use with interpolated local coordinate frame (Schilling '97) illumination is function of dot products Environment mapped bump mapping needs dependent texture lookups Space-varying BRDFs (Kautz 00)

Bump Map Shadows Horizon maps (Max 88) pre compute and store horizon for each point in a height field Hardware implementation (Sloan( 00) original horizon map data structure several rendering passes Single pass multi-texturing (Heidrich( 00) using different horizon representation (ellipse)

Bump Map Shadows center (c x,c y ) axis(a x,a y ) r x,r y Lit directions Shadowed directions

Bump Map Shadows Project light direction into tangent plane Transform projected point into new coordinate system given by center and main axes of ellipse (l x,l y ) Shadow test: ( l x ) 1 r ( l y ) 2 r 2 2 2 x y 0

Discussion Common theme: multipass rendering for texture generation e.g. generating shadow or environment maps typically: simulation of global effects for texture application combining results of different textures and shading algorithms in the frame buffer typically: complex local effects

Discussion - Implications Bandwidth multiple transmission of geometry multiple read/writes to framebuffer sometimes read back of framebuffer Geometry different passes require different per-vertex params. color, texture coordinate, normal... require flexible way of generating these parameters

Recent Hardware Development Increased flexibility of rendering pipeline mostly to reduce number of passes Rasterization stage: multi-texturing reduces total required bandwidth for most algorithms requiring multiple textures but becomes bottleneck for fragment processing stage of rendering pipeline if many textures are used texture shaders (McCool '99), register combiner (NVIDIA '99): use the available time to perform more complex operations with the looked up values

Recent Hardware Development Diagram: NVIDIA

Recent Hardware Development Geometry stage texture coordinate generation programmable geometry (DirectX 8) http://www.gamasutra.com/features/index_gdc.htm.com/features/index_gdc.htm

Dependent Texture Lookups Useful for: environment mapped bump mapping light transport for indirect illumination (Heidrich( '00) line integral convolution (LIC, Heidrich '99)...

Problems With New Hardware Features Problem: extensions hard to program for no debugging support non-standard: capabilities vary with specific hardware have to adapt algorithms to individual graphics boards Solution: high-level shading language

Shading Languages: RenderMan RenderMan shading language (Hanrahan 90) standard in offline applications e.g. Toy Story RenderMan on OpenGL (Peercy 00) RenderMan shading language with standard OpenGL+ pixel textures* floating point framebuffer Images: Peercy 00

Feasible Languages For hardware shading: use sampled representations of complex functions shading languages for combining textures Existing systems: Quake 3 shading language Stanford programmable shading project http://graphics.stanford.edu/projects/shading stanford.edu /projects/shading SGI interactive shading language (ISL) http://www.sgi.com/software/shader.com/software/shadershader

Research Issues Immediate mode vs.. scene graph problem: no widely accepted scene graphs available Compiler technology code generation for very complex instruction sets Working around the brick wall managing partial results and multiple passes

Beyond RenderMan? Management of texture generation passes language for describing generation of environment maps, shadow maps, light maps... New kinds of interesting shaders cellular automata (e.g. clouds) reaction-diffusion shaders (e.g. animal skin) require side effects (textures evolving over time) desirable: hardware convolution

Hardware Support for Procedural Shading What can hardware developers do? orthogonal feature sets cost/precision models for hardware operations avoiding the brick wall managing intermediate results micro-threading (Mark 00, McCool 00)

Summary Complex hardware shading is now possible multi-pass algorithms and new hardware features Recent hardware developments reduce number of passes, increase performance hard to program Shading languages for graphics hardware make programming easier a lot of research to be done need hardware support

Acknowledgments MPI rendering group: Stefan Brabec, Katja Daubert, Jan Kautz, Philipp Slusallek Stanford shading group: Bill Mark, Kekoa Proudfoot,, Pat Hanrahan SGI procedural shading group: Marc Olano,, Marc Peercy Images from: Michael McCool,, Mark Kilgard, Cass Everitt,, Yoshinori Dobashi