IMGD 4000: Hot Topics in Graphics
Prof Emmanuel Agu
Computer Science Dept. Worcester Polytechnic Institute (WPI) Graphics Processing Unit (GPU)
Entire graphics library (OpenGL, DirectX) in hardware => FAST!! Speed: GPUs renders graphics faster CPUs Programmable: in last 8 years (Shaders) Located either on PC motherboard (Intel) or Separate graphics card (Nvidia or ATI)
On PC motherboard On separate PCI express card GPU Evolution
High throughput computation GeForce GTX 280: 933 GFLOP/s High bandwidth memory GeForce GTX 280: 140 GB/s High availability to all “Fermi” 180+ million shader‐capable GPUs in the wild 3B xtors Numbers doubling every 6 months (Moore’s law cubed) GeForce 8800 681M xtors GeForce FX 125M xtors GeForce 3 GeForce® 256 60M xtors RIVA 128 23M xtors 3M xtors
1995 2000 2005 2010 Slide from Stanford course 193G 2010 DesignTradeoff makes GPU Fast
Graphics has many calculations, few conditional (if/else, loops) Arithmetic Logic Unit (ALU) is part of GPU for calculations Tradeoff: Assign More transistors for ALU: faster rendering calculations, math Fewer transistors for control, branches, loops (graphics rarely uses them) ALU chip area: CPU (7%) vs GPU ( > 50%) Result: GPU runs graphics much faster than CPU GFLOP/sec growth
GPU!!
CPU!! GPU Memory Bandwidth
GPU!!
CPU!!
Graph from: CUDA Programming Guide 4.2 Aside: GPGPU: GPUs to speedup Non‐Graphics Applications
146X 36X 18X 50X 100X
Medical Molecular Video Matlab Astrophysics Imaging Dynamics Transcoding Computing RIKEN U of Utah U of Illinois, Elemental Tech AccelerEyes Urbana
149X 47X 20X 130X 30X
Financial Linear Algebra 3D Quantum Gene simulation Universidad Ultrasound Chemistry Sequencing Oxford Jaime Techniscan U of Illinois, U of Maryland Urbana Trend 1: Mobile GPUs GPUs on Phones, tablets now powerful Mobile GPUs support OpenGL ES OpenGL ES: Subset of OpenGL, shader‐based Trend 1: Mobile GPUs
Many game titles now ship only smartphones only, no consoles Unity: Cross Platform Shader Support
Artist specifies high‐level shader on the Material ex: "Bumped Specular", "Tree Leaves", "Unlit“ Run‐time picks specific platform shader depending on supported feature set Testing Mobile Apps: Challenging
Animoca, android mobile developer has to test each app on over 400 different smartphones and tablets Screens Aspect ratios Form factors Input controls OS versions CPU/GPU OpenGL/DirectX versions……. etc Recap: What is Graphics?
Trend 2: Capture light, materials, geometry, for rendering data from real world
4. Light/Material Interaction 1. Light (Lighting model)
2. Geometry Next: capturing light 3. Materials Capturing Light: Light Probes
Photograph silver ball in environment High dynamic range Using Light Probes Example Trend 2: Capture rendering data
4. Light/Material Interaction 1. Light (Lighting model)
2. Geometry 3. Materials Next: capturing geometry Trend 2: Capture Geometry
Digitize real object geometry, billions of faces High precision databases of models: shared by many Better realism than packages such as maya Important for sports games?
Mesh Trend 2: Capture rendering data
4. Light/Material Interaction 1. Light (Lighting model)
2. Geometry 3. Materials Next: capturing materials Measuring BRDFs: Gonioreflectometer
Murray‐Coleman and Smith Gonioreflectometer. ( Copied and Modified from [Ward92] ). Measured BRDF Samples
BRDF: How materials reflect light Examples: cloth, wood, velvet, etc Mitsubishi Electric Research Lab (MERL) http://www.merl.com/brdf/ Wojciech Matusik MIT PhD Thesis 100 Samples Capture Time‐Varying BRDFs
Time varying?: surface reflectance changes over time Examples: weathering, ripening fruits, rust, etc Exactly What Can We Capture?
1. Appearance (volume, scattering, transparency, translucency, etc)
2. Geometry
3. Reflectance & Illumination 4. Motion Trend 3: Real‐Time LoD Geometry Management tesselation
Far = Less detailed Near = More detailed mesh mesh
Simplification
Previously: Pre‐generate mesh versions offline Geometry shader unit added to GPU in DirectX 10 (2007) generate new vertices, primitives from mesh Mesh simplification/tesselation on GPU = Real time LoD Tesselation: Demo Textures in Games
Most games loaded with textures Computationally cheap way to look pretty Trend 5: New Directions in Texture Synthesis
Texture = picture or algorithmically rendered Internet (e.g. Flickr) has billions of pictures Example‐Based Texture Synthesis: New images from samples Input: small (photographic) textures Output: produce arbitrarily large texture Approach: discover pattern, extrapolate algorithm, math
Synthesis
Algorithm output
input Pixel‐based Algorithm
Random Oriented
Regular Semi-regular Texture Synthesis on Surfaces
Sample Multi‐Level Texture Synthesis
Sample:
Coarse Medium Fine 1,000 vertices 4,000 vertices 16,000 vertices Example‐Based Model Synthesis Paul Merrell, I3D 2007 Input: Polygon models Approach: Partition models into pieces Place pieces in new arrangement subject to constraints
Random Consistent Partitions Placement Placement Example‐Based Model Synthesis Example‐Based Model Synthesis
Result
Input Texture Replacement
Lots of new work around algorithmically altering images (found on web?) Goal: Alter, remove or replace part of a image algorithmically Artifact Removal Detail Hallucination
Alcatraz Scene Completion using Millions of Photographs Seam Carving Local Illumination
Consider 1 bounce only OpenGL does this Looks fake E.g. Torque 3D game engine
Global Illumination
Global illumination: model interaction of light from all surfaces in scene (track multiple bounces) shadow
multiple reflection translucent surface Trend 5: New Real time Global Illumination Algos
Dynamic scenes: Need real‐time GI, on‐the‐fly Real Time Global Illumination: state‐of‐the art Calculate GI equations on GPU at run‐time Improves: Shadows Ambient Occlusion Reflections Transmittance Refractions Caustics What does RT‐GI look like? Real‐time Lighting in Games Better Sky Model
[BrunetonNeyret2008] Single and multiple scattering Light shafts Participating media!! Different Atmospheres Time Of Day Better Shadows
Courtesy Hellgate:London, Variance shadow mapping flagship studios inc Courtesy Nvidia SDK 10 Better Caustics and Refraction
Courtesy Chris Wyman, Univ Iowa Sub‐Surface Scattering
Crysis skin demo
Marble
Human Skin Sub‐Surface Scattering Light Propagation Volumes (LPV)
CryEngine: new physically‐based game engine by CryTek LPV: new real time Global Illumination algorithm in CryEngine Runs faster than ray tracing on GPU Crytek Crisis Engine Screenshots Demo
Light Propagation Volumes Demo LPV Idea Main idea: represent light propagation as Virtual Point Lights (VPL) Re‐project VPL into adjacent cells References
Akenine Moller et al, Real‐Time Rendering, 3rd edition Advances in Real‐Time Rendering in 3D graphics and games, SIGGRAPH course notes 2009 Anton Kaplanyan and Carsten Dachbacher, Cascaded light propagation volumes for real‐time indirect illumination, in Proc. Si3D 2010 Hao Chen and Natalya Tatarchuk, Lighting Research at Bungie, Advances in Real‐Time Rendering in 3D Graphics and Games SIGGRAPH 2009 Course notes Advances in Real‐Time Rendering in 3D Graphics and Games, SIGGRAPH 2010 Course Notes CS 543/563 slides