The View from Ten Thousand Feet

advertisement
The View from
Ten Thousand Feet
Outline
• How does Big Data come about?
– Measurement
– Simulation
• Why is it a problem?
– Bandwidth
– Latency
– Resolution/Fidelity
• What can we do about it?
–
–
–
–
Parallelism
Architectures
Algorithms
Bigger Displays
Big Data in Computer Graphics Fall 2002 Lecture 2
Where Does Big Data
Come From?
Sources of Big Data
• Measurement
– Range Scanning
– Imagery
– Sensor Networks
• Simulation
– Scientific computing
– Light Transport
– CAD
• Other
– Databases
– The Web!
Big Data in Computer Graphics Fall 2002 Lecture 2
Range Scanning (1D)
imager
lens
laser
Object to be scanned
Big Data in Computer Graphics Fall 2002 Lecture 2
Range Scanning (1D)
D L
LS
 D
S O
O
S,L Fixed
O Measured
D Unknown
O
L
S
D
Big Data in Computer Graphics Fall 2002 Lecture 2
Range Scanning
• Project a stripe, not a dot
• Use a digital camera, not a 1D PSD
• Move camera + stripe to sample a shell
The Digital Michelangelo Project: 3D Scanning of Large Statues
Levoy et al., SIGGRAPH 2000
Big Data in Computer Graphics Fall 2002 Lecture 2
Statistics about David
• 480 individually aimed scans
• 2 billion polygons
• 7,000 color images
• 32 gigabytes
• 30 nights of scanning
• 22 people
Big Data in Computer Graphics Fall 2002 Lecture 2
Scientific Simulation
Billion-Atom Dislocation Dynamics in Copper
Mark Duchaineau, LLNL
Big Data in Computer Graphics Fall 2002 Lecture 2
CAD
Powerplant Model: 13 million triangles
UNC Walkthrough Project
Big Data in Computer Graphics Fall 2002 Lecture 2
Inherently Big Things
Big Data in Computer Graphics Fall 2002 Lecture 2
What’s the Problem?
Resources Are Limited!
•
•
•
•
•
•
•
Bandwidth
Latency
Operations Per Second
Time
Spatial Resolution
Dynamic Range
Money
Big Data in Computer Graphics Fall 2002 Lecture 2
Bandwidth
• 80 Mpolys @ 60 Hz (optimally stripped):
– Flat shading: 57 GB/sec
– Colored, lit: 129 GB/sec
• 25 Projector display wall (6400x5120):
– 24 bit color, 60 Hz: 5.9 GB/sec
• Peak bandwidths:
–
–
–
–
–
Broadband: 128 KB/sec
LAN: 12 MB/sec
Cluster: 100-200 MB/sec
DVI: 495 MB/sec
System Bus: 500-3000 MB/sec
• Achievable bandwidth typically much less
Big Data in Computer Graphics Fall 2002 Lecture 2
Example: Remote Rendering
PC
PC
OpenGL
Network
Display
OpenGL
• How fast can this possibly run?
• Assume:
– 13 bytes per triangle (x,y,z + 1 byte opcode)
– Network runs at N MB/sec
• Peak triangle rate: N/13
– 100 MB/sec cluster interconnect: 7.7 Mtris/sec
– 12 MB/sec LAN: 9.2 Ktris/sec
Big Data in Computer Graphics Fall 2002 Lecture 2
How Bad Is 7.7 (Remote) Mtris/sec?
• Not too bad!
• How fast can you call
glVertex3fv?
• On my laptop, 15M/sec
• Two conditional
branches
• 13(+) memory accesses!
• Upwards of 800MB/sec
to the memory system
Big Data in Computer Graphics Fall 2002 Lecture 2
695480A0
695480A1
695480A7
695480AE
695480B0
695480B6
695480BA
695480C1
695480C3
695480C5
695480C8
695480CB
695480CE
695480D0
695480D3
695480D8
695480DE
695480DF
695480E2
695480E8
695480EC
695480EE
695480F4
695480F7
695480FA
695480FD
69548103
69548106
69548109
6954810C
69548112
69548114
69548116
6954811C
69548121
69548122
push
mov
test
je
lea
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
call
pop
ret
mov
mov
mov
mov
mov
add
mov
mov
mov
mov
mov
cmp
ja
xor
mov
call
pop
ret
esi
eax,fs:[00000BF0]
byte ptr [eax+3F5Fh],10h
695480E2
edx,[eax+3640h]
esi,dword ptr [esp+8]
dword ptr [edx+0Ch],3F800000h
ecx,dword ptr [esi]
dword ptr [edx],ecx
ecx,dword ptr [esi+4]
esi,dword ptr [esi+8]
dword ptr [edx+4],ecx
ecx,eax
dword ptr [edx+8],esi
edx,3
dword ptr [eax+0BFA8h]
esi
4
edx,dword ptr [eax+477F0h]
esi,dword ptr [esp+8]
ecx,dword ptr [esi]
dword ptr [edx],0C2C00h
dword ptr [edx+4],ecx
edx,10h
ecx,dword ptr [esi+4]
dword ptr [eax+477F0h],edx
esi,dword ptr [esi+8]
dword ptr [edx-8],ecx
dword ptr [edx-4],esi
dword ptr [eax+477F4h],edx
69548121
edx,edx
ecx,dword ptr [eax+477D0h]
6950EAE0
esi
4
Resolution
Big Data in Computer Graphics Fall 2002 Lecture 2
What Can Be Done?
The Graphics Pipeline
Application
Geometry
Rasterization
Display
Big Data in Computer Graphics Fall 2002 Lecture 2
Compute 3D geometry
Make calls to graphics API
Transform geometry from 3D to 2D
Generate pixels from 2D geometry
Continuously refresh display device
The Graphics Pipeline
Application
Application
Command
Geometry
Geometry
Rasterization
Rasterization
Texture
Fragment
Display
Big Data in Computer Graphics Fall 2002 Lecture 2
Display
Measuring Performance
Input Rate
Application
Command
Triangle Rate
Geometry
Pixel Rate
Rasterization
Texture
Texture Memory
Fragment
Display Resolution
Display
Big Data in Computer Graphics Fall 2002 Lecture 2
Parallel Rendering
• Today’s hardware is interface limited
• Geometry work is application-visible
• Rasterization work is not application-visible
• Broadcast communication does not scale
• Temporal locality  spatial load imbalances
Big Data in Computer Graphics Fall 2002 Lecture 2
Interface Overhead
Compute
Data
Encode
API
CPU
B/W
GFX
I/O
B/W
Decode
API
Draw
Data
Big Data in Computer Graphics Fall 2002 Lecture 2
Interface Bottlenecks
Application
Application
Geometry
Rasterization
Display
Big Data in Computer Graphics Fall 2002 Lecture 2
G
G
G
G
G
G
R
R
R
R
R
R
D
D
D
D
D
D
Solutions to the Interface Limit
• Vertex arrarys
• Retained mode rendering (display lists)
• Compression
• Parallelize the interface
Big Data in Computer Graphics Fall 2002 Lecture 2
Synchronizing Parallel Interfaces
• Immediate mode API’s are ordered
– Framebuffer effects (transparency)
– Painters algorithm (BSP visibility)
– State effects (enable lighting)
• Traditional synchronization primitives
– glBarrierExec
– glSemaphoreV
– glSemaphoreP
The Design of a Parallel Graphics Interface
Igehy, Stoll, and Hanrahan, SIGGRAPH 1998
Big Data in Computer Graphics Fall 2002 Lecture 2
Marching Cubes
eye
The Design of a Parallel Graphics Interface
Igehy, Stoll, and Hanrahan, SIGGRAPH 1998
Big Data in Computer Graphics Fall 2002 Lecture 2
Marching Cubes
MarchParallelOrdered (M, N, grid, sema)
for (i=0; i<M; i++)
for (j=(myP+i)%numP; j<N; j+=numP)
if (i>0) glSemaphoreP(sema[i-1,j])
if (j>0) glSemaphoreP(sema[i,j-1])
ExtractAndRender(grid[i,j])
if (i<M-1) glSemaphoreV(sema[i,j])
if (j<N-1) glSemaphoreV(sema[i,j])
The Design of a Parallel Graphics Interface
Igehy, Stoll, and Hanrahan, SIGGRAPH 1998
Big Data in Computer Graphics Fall 2002 Lecture 2
Taxonomy of Parallel Graphics
App
App
Geom
Geom
Rast
Rast
Disp
Disp
• Object parallel input
• Image parallel output
• “Sort” between them
– Communicate work to
the correct location on
the screen
A Sorting Classification of Parallel Rendering, Molnar et al.
Big Data in Computer Graphics Fall 2002 Lecture 2
Taxonomy of Parallel Graphics
App
App
• Object parallel input
• Image parallel output
• “Sort” between them
Sort-First
Geom
Geom
Rast
Rast
Disp
Disp
– Communicate work to
the correct location on
the screen
Examples: Princeton Display Wall, WireGL
A Sorting Classification of Parallel Rendering, Molnar et al.
Big Data in Computer Graphics Fall 2002 Lecture 2
Taxonomy of Parallel Graphics
App
App
Geom
Geom
Rast
Rast
Disp
Disp
• Object parallel input
• Image parallel output
• “Sort” between them
– Communicate work to
the correct location on
Sort-Middle the screen
Examples: SGI InfiniteReality, UNC PixelPlanes 5
A Sorting Classification of Parallel Rendering, Molnar et al.
Big Data in Computer Graphics Fall 2002 Lecture 2
Taxonomy of Parallel Graphics
App
App
Geom
Geom
Rast
Rast
• Object parallel input
• Image parallel output
• “Sort” between them
– Communicate work to
the correct location on
the screen
Sort-Last
Disp
Disp
Example: UNC PixelFlow, Kubota Denali, SUN SAGE
A Sorting Classification of Parallel Rendering, Molnar et al.
Big Data in Computer Graphics Fall 2002 Lecture 2
Extended Taxonomy
Application
Command
Sort-First
Geometry
Sort-Middle
Rasterization
Texture
Fragment
Sort-Last Fragment
Sort-Last Image Composition
Display
Designing Graphics Architectures around Scalability and Communication
Matthew Eldridge, Ph.D. Thesis 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
Screen Space Parallelism
• Divide screen into “tiles”
• Assign tiles to separate processors
• Primitives that overlap multiple tiles are
rendered redundantly
• What makes a good partition?
Big Data in Computer Graphics Fall 2002 Lecture 2
Screen Space Parallelism
What makes a good screen partition?
Big Data in Computer Graphics Fall 2002 Lecture 2
Screen Space Parallelism
• Static partitions
– Balance between load balance and efficiency
– Minimize length of region boundaries
• Adaptive partitions
–
–
–
–
–
Simple methods [Roble88]
Median-cut [Whelan85]
Top-down decomposition [Whitman92]
MAHD [Mueller94]
Hybrid algorithms [Samanta00]
Big Data in Computer Graphics Fall 2002 Lecture 2
Image Compositing
• Sort-last (usually) requires image merging
• High bandwidth requirements
• Ordering semantics?
Big Data in Computer Graphics Fall 2002 Lecture 2
Software Compositing
• Many-to-one communication: bottleneck
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Big Data in Computer Graphics Fall 2002 Lecture 2
Display
Binary Tree Compositing
• Reasonable bandwidth requirements
• Resource under-utilization
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Display
Big Data in Computer Graphics Fall 2002 Lecture 2
Binary Swap Compositing
• Reasonable bandwidth requirements
• Resources fully utilized
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Framebuffer
Big Data in Computer Graphics Fall 2002 Lecture 2
Display
Image Compositing Hardware
Lightning-2 = Digital Video Switch from Intel Research
Route partial scanlines from n inputs to m outputs
Tile reassembly or depth compositing at full refresh rate
Lightning-2: A High-Performance Display Subsystem for PC Clusters
Stoll et al., SIGGRAPH 2001
Big Data in Computer Graphics Fall 2002 Lecture 2
Software Systems
• Iris Performer
– Efficient geometry/state management
– Frustum Culling / LOD support
– Multiple processors / graphics pipes
IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time 3D Graphics
Rohlf and Helman, SIGGRAPH 1994
Big Data in Computer Graphics Fall 2002 Lecture 2
Iris Performer
Big Data in Computer Graphics Fall 2002 Lecture 2
Iris Performer
Big Data in Computer Graphics Fall 2002 Lecture 2
Mesh Simplification
• Idea: draw less stuff!
• Pixels per polygon  polygons per pixel
Big Data in Computer Graphics Fall 2002 Lecture 2
Mesh Simplification
• Idea: draw less stuff!
• Pixels per polygon  polygons per pixel
Big Data in Computer Graphics Fall 2002 Lecture 2
Mesh Simplification
• Idea: draw less stuff!
• Pixels per polygon  polygons per pixel
Big Data in Computer Graphics Fall 2002 Lecture 2
Mesh Simplification
• Idea: draw less stuff!
• Pixels per polygon  polygons per pixel
Big Data in Computer Graphics Fall 2002 Lecture 2
Mesh Simplification
• Idea: draw less stuff!
• Pixels per polygon  polygons per pixel
Big Data in Computer Graphics Fall 2002 Lecture 2
Simplication Hierarchies
10,108
polygons
Big Data in Computer Graphics Fall 2002 Lecture 2
1,383
polygons
474
polygons
46
polygons
Simplification Hierarchies
• Choose an
appropriate
representation
based on screen
coverage
• Smooth transitions?
(Courtesy IBM)
Big Data in Computer Graphics Fall 2002 Lecture 2
Subsampling
• Idea: Not enough time to draw everything
• So don’t bother!
Big Data in Computer Graphics Fall 2002 Lecture 2
Frameless Rendering
Big Data in Computer Graphics Fall 2002 Lecture 2
Point Rendering
• Idea: Very dense 3D models need not store
connectivity!
• Bounding sphere hierarchy [Rusinkiewicz00]
• Traverse hierarchy to some depth
• Depth  projected area and time
Big Data in Computer Graphics Fall 2002 Lecture 2
QSplat Demo
QSplat: A Multiresolution Point Rendering System for Large Meshes
Rusinkiewicz and Levoy, SIGGRAPH 2000
Big Data in Computer Graphics Fall 2002 Lecture 2
Using Commodity Technology
• Commodity parts
– Complete graphics pipeline on a single chip
– Extremely fast product cycle
• Flexibility
– Configurable building blocks
• Cost
– Driven by consumer demand
– Economies of scale
• Availability
– Insufficient demand for “big iron” solutions
– Little or no ongoing innovation in graphics
“supercomputers”
Big Data in Computer Graphics Fall 2002 Lecture 2
Cluster Graphics
App
Graphics
Hardware
Display
App
Graphics
Hardware
Display
App
Graphics
Hardware
Display
App
Graphics
Hardware
Display
•Raw scalability is easy (just add more pipelines)
•Exposing that scalability to an application is hard
Big Data in Computer Graphics Fall 2002 Lecture 2
Cluster Graphics
App
Server
Display
App
Server
Display
App
Server
Display
App
Server
Display
• Graphics hardware is indivisible
• Each graphics pipeline managed by a network server
Big Data in Computer Graphics Fall 2002 Lecture 2
Cluster Graphics
Server
App
Server
Display
Server
Display
App
App
Server
•
•
•
•
Flexible number of clients, servers and displays
Compute limited = more clients
Graphics limited = more servers
Interface/network limited = more of both
Big Data in Computer Graphics Fall 2002 Lecture 2
Stanford/DOE Visualization Cluster
• 32 nodes, each with graphics
• Compaq SP750
–
–
–
–
–
–
Dual 800 MHz PIII Xeon
i840 logic
256 MB memory
18 GB disk
64-bit 66 MHz PCI
AGP-4x
• Graphics
– 16 NVIDIA Quadro2 Pro
– 16 NVIDIA GeForce 3
• Network
– Myrinet (LANai 7 ~ 100 MB/sec)
Big Data in Computer Graphics Fall 2002 Lecture 2
WireGL/Chromium
• Replace system’s OpenGL driver
– Industry standard API
– Support existing unmodified applications
• Manipulate streams of API commands
– Route commands over a network
– Render commands using graphics hardware
• Allow parallel applications to issue OpenGL
– Constrain ordering between multiple streams
WireGL: A Scalable Graphics System for Clusters
Humphreys et al., SIGGRAPH 2001
Chromium: A Stream Processing Framework for
Interactive Rendering on Clusters of Workstations
Humphreys et al., SIGGRAPH 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
WireGL: Output Scalability
Marching Cubes
Point-to-point “broadcast” doesn’t scale at all
However, it’s still the commercial solution [SGI Cluster]
Big Data in Computer Graphics Fall 2002 Lecture 2
WireGL: Peak Rendering Performance
Immediate Mode
• Unstructured triangle
strips
• 200 triangles/strip
Data change every frame
Peak observed: 161,000,000
tris/second
Total scene size =
16,000,000 triangles
Total display size at 32
nodes: 2048x1024
(256x256 tiles)
Big Data in Computer Graphics Fall 2002 Lecture 2
Stream Processing
Streams:
• Ordered sequences of records
• Potentially infinite
Transformations:
• Process only the head element
• Finite local storage
• Can be partitioned across processors to expose parallelism
Stream
Source
..
.
Stream
Source
Big Data in Computer Graphics Fall 2002 Lecture 2
Transform 1
..
.
Transform 1
Transform 2
Stream
Output
Why Stream Processing?
• Elegant mechanism for dealing with huge data
– Explicitly expose and exploit parallelism
– Hide latency
• State of the art in many fields:
–
–
–
–
–
–
–
Databases [Terry92, Babu01]
Telephony [Cortes00]
Online Algorithms [Borodin98,O’Callaghan02]
Sensor Fusion [Madden01]
Media Processing [Halfhill00,Khailany01]
Computer Architecture [Rixner98]
Graphics Hardware [Owens00, NVIDIA, ATI]
Big Data in Computer Graphics Fall 2002 Lecture 2
Stream Computing
• Observation: media applications are a poor
match for current microprocessor design
• Idea: build hardware to efficiently support
streaming computation
• Achieve very high arithmetic density
• Exploit locality of reference
• Exploit parallelism
• “Imagine”: Reconfigurable stream computing
Big Data in Computer Graphics Fall 2002 Lecture 2
OpenGL on Imagine
Geometry
Rasterization
Transform
Input Data
Composite
Hash
Spanprep
Sort /
Merge
GLShader
Spangen
Primitive
Assembly
Compact
Spanrast
Z Lookup
Cull
Texture
Lookup
Zcompare
Project
Color, Z
Write
Image
Polygon Rendering on a Stream Architecture
Owens et al., Eurographics/SIGGRAPH Hardware Workshop 2000
Big Data in Computer Graphics Fall 2002 Lecture 2
Dynamic Range Compression
Underexposed
Overexposed
• What’s a poor photographer to do?
• Idea: non-global, non-linear tone mapping
Big Data in Computer Graphics Fall 2002 Lecture 2
Dynamic Range Compression
Big Data in Computer Graphics Fall 2002 Lecture 2
HDR Compression in 1D
y  f  x
H  x   log  f  x  
Gradient Domain High Dynamic Range Compression
Fattal, Lischinski and Werman, SIGGRAPH 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
HDR Compression in 1D
f  x
H  x 
f  x
G  x  H  x   x
Gradient Domain High Dynamic Range Compression
Fattal, Lischinski and Werman, SIGGRAPH 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
HDR Compression in 1D
x
I  x   C   G  t  dt
0
Gradient Domain High Dynamic Range Compression
Fattal, Lischinski and Werman, SIGGRAPH 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
ye
I  x
Volume Rendering
• Directly render volumetric data
• Volume = regularly sampled scalar function
• Possiblities:
–
–
–
–
–
–
Extract isosurface, render polygons [Lorensen87]
Ray tracing [Levoy90]
Splatting [Laur91]
2D Texture Mapping [Cabral94]
3D Texture Mapping [Wilson94]
Special Hardware [Pfister99]
Big Data in Computer Graphics Fall 2002 Lecture 2
Marching Cubes (okay, Squares)
Marching Cubes: a high resolution 3D surface reconstruction algorithm
Lorensen and Cline, SIGGRAPH 1987
Big Data in Computer Graphics Fall 2002 Lecture 2
Marching Squares
Marching Cubes: a high resolution 3D surface reconstruction algorithm
Lorensen and Cline, SIGGRAPH 1987
Big Data in Computer Graphics Fall 2002 Lecture 2
Marching Squares
Marching Cubes: a high resolution 3D surface reconstruction algorithm
Lorensen and Cline, SIGGRAPH 1987
Big Data in Computer Graphics Fall 2002 Lecture 2
Marching Cubes
Big Data in Computer Graphics Fall 2002 Lecture 2
Visualization
Computed reflectance
Big Data in Computer Graphics Fall 2002 Lecture 2
Visualization
accessibility shading
Big Data in Computer Graphics Fall 2002 Lecture 2
Visualization
• Yikes!
• Minimize crossings
• Reveal structure
– Hierarchy?
– Symmetry?
– Cycles?
• Deal with enormity
Hofstadter. Godel, Escher, Bach.
Big Data in Computer Graphics Fall 2002 Lecture 2
Example: Internet Links
Big Data in Computer Graphics Fall 2002 Lecture 2
Example: Internet Links
• Idea: use a hyperbolic visualization space
[Munzner 95,97,98]
Big Data in Computer Graphics Fall 2002 Lecture 2
Texture Management
•
•
•
•
Only part of graphics state that’s big
Textures need to be accessed by rasterizers
Caching?
Multiple rasterizers = replicated textures?
Big Data in Computer Graphics Fall 2002 Lecture 2
Texture Caching
•
•
•
•
•
•
Representation of textures critical
Cache design affects rasterization algorithm
Memory bandwidth is precious
Single rasterizer design: [Hakura97]
Prefetching to hide latency: [Igehy98]
Multiple rasterizer design: [Igehy99]
Big Data in Computer Graphics Fall 2002 Lecture 2
Huge Textures
• Satellite images @ 1m resolution = 11 PB
• For very large mipmaps, most pixels are not
accessed for any given view
• Idea: only store a partial mipmap pyramid
• Update the partial pyramid on the fly
The Clipmap: A Virtual Mipmap
Tanner, Migdal, and Jones, SIGGRAPH 1998
Big Data in Computer Graphics Fall 2002 Lecture 2
Huge Textures
• Homogeneous
representation
• Textures for
overview
renderings
• Polygons for
up-close
viewing
• Recompute
mipmap tiles
on the fly
Using Texture Mapping with Mipmapping to Render a VLSI Layout
Solomon and Horowitz, DAC 2001
Big Data in Computer Graphics Fall 2002 Lecture 2
Big Displays
Big Data in Computer Graphics Fall 2002 Lecture 2
Interaction
• Keyboard/mouse/desktop metaphor?
• New types of interaction techniques:
– Gesture
– Voice
– Pen
• Legacy interaction?
• Collaborative interaction
• Most effective use of space
Big Data in Computer Graphics Fall 2002 Lecture 2
Yes
Big Data in Computer Graphics Fall 2002 Lecture 2
No
Big Data in Computer Graphics Fall 2002 Lecture 2
Projector Alignment: Static
Big Data in Computer Graphics Fall 2002 Lecture 2
Projector Alignment: Static
Big Data in Computer Graphics Fall 2002 Lecture 2
Projector Alignment: Dynamic
UNC Office of the Future Group
Big Data in Computer Graphics Fall 2002 Lecture 2
Projector Alignment: Dynamic
WireGL extensions for casually aligned displays
UNC PixelFlex team and Michael Brown, UKY
Big Data in Computer Graphics Fall 2002 Lecture 2
Ray Tracing
• Object-order algorithm
• Sensitive to output resolution
• Built-in occlusion culling
Big Data in Computer Graphics Fall 2002 Lecture 2
Memory Coherence
• Complex scenes can be much bigger than
memory
• Efficient rendering  data management!
• Monte Carlo ray tracing has poor coherence
• But ray tracing need not be recursive!
• Idea: Reorder computation for maximum
coherence
• Every ray is completely independent
Rendering Complex Scenes with Memory-Coherent Ray Tracing
Pharr, Kolb, Gershbein, and Hanrahan, SIGGRAPH 1997
Big Data in Computer Graphics Fall 2002 Lecture 2
Memory Coherent Ray Tracing
Big Data in Computer Graphics Fall 2002 Lecture 2
Memory Coherent Ray Tracing
Big Data in Computer Graphics Fall 2002 Lecture 2
Interactive Ray Tracing
•
•
•
•
•
•
Raytracing: more efficient than rasterization
Highly efficient and parallel
Deferred shading
Huge parallel machines [Parker99]
Clusters of workstations [Wald01]
GPU-based implementation [Purcell02]
Big Data in Computer Graphics Fall 2002 Lecture 2
Streaming Ray Tracer
Camera
Generate Eye
Rays
Grid
Traverse
Acceleration
Structure
Triangles
Intersect
Triangles
Materials
Shade Hits
and Generate
Shading Rays
Ray Tracing on Programmable Graphics Hardware
Purcell, Buck, Mark, and Hanrahan, SIGGRAPH 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
Geometry in Texture Maps!
Uniform Grid
3D Luminance
Texture
vox0 vox1 vox2 vox3 vox4 vox5
0
4
11
38
…
voxM
564
Triangle List
1D Luminance
Texture
vox0
0
21
216
Triangles
3x 1D RGB
Textures
3
vox2
1
3
7
tri0
v0 xyz
tri1
xyz
tri2
xyz
tri3
xyz
tri4
xyz
tri5
xyz
…
triN
xyz
v1 xyz
xyz
xyz
xyz
xyz
xyz
…
xyz
xyz
xyz
xyz
xyz
xyz
xyz
…
xyz
v2
Ray Tracing on Programmable Graphics Hardware
Purcell, Buck, Mark, and Hanrahan, SIGGRAPH 2002
Big Data in Computer Graphics Fall 2002 Lecture 2
…
OpenRT
Big Data in Computer Graphics Fall 2002 Lecture 2
OpenRT
Big Data in Computer Graphics Fall 2002 Lecture 2
OpenRT
Big Data in Computer Graphics Fall 2002 Lecture 2
OpenRT
Big Data in Computer Graphics Fall 2002 Lecture 2
High Performance Architectures
• Huge variety of graphics hardware out there
• We’ll look at 12 at the end of the semester
• Stanford graphics architecture course:
graphics.stanford.edu/courses/cs448a-01-fall/
Big Data in Computer Graphics Fall 2002 Lecture 2
Download