Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics...
-
Upload
kenia-granville -
Category
Documents
-
view
219 -
download
1
Transcript of Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics...
![Page 1: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/1.jpg)
Low Latency Photon Mapping with Block Hashing
Vincent C.H. MaMichael D. McCool
Computer Graphics LabUniversity of Waterloo
![Page 2: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/2.jpg)
Block Hashing 2
Menu du Jour
Appetizer: Motivation and Background
First course: Locality Sensitive Hashing
Entrée: Block Hashing
Dessert: Results, Future Work, Conclusion
![Page 3: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/3.jpg)
Block Hashing 3
Motivation
• Trend: Rendering algorithms migrating towards hardware(-assisted) implementations– [Purcell et al. 2002]
– [Schmittler et al. 2002]
We wanted to investigate hardware(-assisted) implementation of Photon Mapping [Jensen95]
![Page 4: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/4.jpg)
Block Hashing 4
kNN Problem
• Need to solve for k-Nearest Neighbours (kNN)
• Used for density estimation in photon mapping
• Want to eventually integrate with GPU-based rendering
Migrate kNN onto hardware-assisted platform– Adapting algorithms and data structures
– Parallelization
– Approximate kNN?
![Page 5: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/5.jpg)
Block Hashing 5
Applications of kNN
• kNN has many other applications, such as:– Procedural texture generation [Worley96]
– Direct ray tracing of point-based objects [Zwicker et al. 2001]
– Surface reconstruction
– Sparse data interpolation
– Collision detection
![Page 6: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/6.jpg)
Block Hashing 6
Hashing-Based AkNN
• Why hashing?– Hash function can be evaluated in constant time
– Eliminates multi-level, serially-dependent memory accesses
Amenable to fine-scale parallelism and pipelined memory
![Page 7: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/7.jpg)
Block Hashing 7
• Want hash functions that preserve spatial neighbourhoods– Points close to each other in domain space will be
close together in hash space
– Points in the same hash bucket as query point are close to query point in domain space
– Good candidates for k-nearest neighbour search
Hashing-Based AkNN
![Page 8: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/8.jpg)
Block Hashing 8
Locality Sensitive Hashing
• Gionis, Indyk, and Motwani, Similarity Search in High Dimensions via Hashing, Proc. VLDB’99
– Hash function partitions domain space
– Assigns one hash value per partition
All points falling into the same partition will receive the same hash value
![Page 9: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/9.jpg)
Block Hashing 9
Mathematically…
• Let T = {ti | 0 ≤ i ≤ P } be a monotonically increasing sequence of thresholds
• Define hash function to be
hT(t) = i, for ti ≤ i ≤ ti+1
![Page 10: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/10.jpg)
Block Hashing 10
Multiple Hash Functions
• Each hash bucket stores a subset of the local neighbourhood
• Multiple hash tables are needed for retrieving a complete neighbourhood
![Page 11: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/11.jpg)
Block Hashing 11
Higher Dimensions
• Multidimensional points are handled by using one hash function per dimension
![Page 12: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/12.jpg)
Block Hashing 12
Higher Dimensions
• Together, hash functions partition space into variable-sized rectangular cells
![Page 13: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/13.jpg)
Block Hashing 13
Higher Dimensions
![Page 14: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/14.jpg)
Block Hashing 14
Block Hashing Essentials
• Photons are grouped into spatially-coherent memory blocks
• Entire blocks are inserted into the hash tables
![Page 15: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/15.jpg)
Block Hashing 15
Why Blocks of Photons?
• More desirable to insert blocks of photons into the hash table (instead of individual photons)– Fewer references needed per hash table bucket
– Fewer items to compare when merging results from multiple hash tables during query
– Photon records are accessed once per query
– Memory block-oriented anyways
![Page 16: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/16.jpg)
Block Hashing 16
Block-Oriented Memory Model
• Memory access is via burst transfer– Reading any part of a fixed-sized memory block
implies the access to the rest of this block is virtually zero-cost
• 256-byte chosen as size of photon blocks– Photons are 24-bytes
– X = 10 photons fit in each block
![Page 17: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/17.jpg)
Block Hashing 17
Block Hashing
• Preprocessing: before rendering– Organize photons into blocks– Create hash tables– Insert blocks into hash tables
• Query phase: during rendering
![Page 18: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/18.jpg)
Block Hashing 18
Organize Photon Blocks
• Want to sort photons by spatial location– Hilbert curve generates 1D key from photon location
– Insert photon records into B+ tree
• Leaf nodes of B+ tree becomes photon blocks
• Compact leaf nodes to minimize blocks required
![Page 19: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/19.jpg)
Block Hashing 19
Create Hash Tables
• Based on LSH:– L hash tables
– Each hash table has three hash functions
– Each function has P thresholds
![Page 20: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/20.jpg)
Block Hashing 20
Create Hash Tables
• Generate thresholds adaptively– Create one photon-position histogram per dimension
– Integrate → cumulative distribution function (cdf)
– Invert cdf, take stochastic samples to get thresholds
![Page 21: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/21.jpg)
Block Hashing 21
Create Hash Tables
• Hash table stored as 1D array in memory
• Each element is a hash bucket
![Page 22: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/22.jpg)
Block Hashing 22
Create Hash Tables
• Hash table stored as 1D array in memory
• Each element is a hash bucket– B references to photon blocks
![Page 23: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/23.jpg)
Block Hashing 23
Create Hash Tables
• Hash table stored as 1D array in memory
• Each element is a hash bucket– B references to photon blocks
– flags
![Page 24: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/24.jpg)
Block Hashing 24
Create Hash Tables
• Hash table stored as 1D array in memory
• Each element is a hash bucket– B references to photon blocks
– flags
– a priority value
![Page 25: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/25.jpg)
Block Hashing 25
Insert Photon Blocks
• For each photon and each hash table:– Create hash key using 3D position of photon
– Insert entire photon block into hash table using key
• Strategies to deal with bucket overflow
![Page 26: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/26.jpg)
Block Hashing 26
Insert Photon Blocks
• Each bucket refers to entire blocks with at least one photon that hashed into the bucket– Bucket also responsible for all photons in blocks it
refers to
![Page 27: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/27.jpg)
Block Hashing 27
Block Hashing
• Preprocessing: before rendering– Organizing photons into blocks– Creating the hash tables– Inserting blocks into hash tables
• Query phase: during rendering
![Page 28: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/28.jpg)
Block Hashing 28
Querying
• Query is delegated to each hash table in parallel
• Each hash table returns all blocks contained in bucket that matched the query
• Set of unique blocks contain candidate set of photons– Each block contains a disjoint set of photons
![Page 29: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/29.jpg)
Block Hashing 29
Querying
• Each query yields L buckets, each bucket gives B photon blocks
• Each query retrieves at most BL blocks
• Can trade accuracy for speed:– User defined variable A, determines # blocks
eventually included in candidate search
– Examines at most Ak photons → Ak/X blocks
![Page 30: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/30.jpg)
Block Hashing 30
Querying
• Which photon blocks to examine first?
• Assign “quality measure” Q to every bucket in each hash table– Q = B - #blocks_inserted - #overflows
• Sort buckets by their “priority” |Q|
![Page 31: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/31.jpg)
Block Hashing 31
Parameter Values
• Need to express L, P, and B in terms of N, k and A
• Experiments showed lnN is a good choice for both L and P
• B is determined by k and A, given by:
• Memory overhead:
N
(lnN)O
24N
1.6N12(lnN)(lnN)XAk
4 323
lnN X
AkB
![Page 32: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/32.jpg)
Block Hashing 32
Memory Overhead
![Page 33: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/33.jpg)
Block Hashing 33
Results
• Visual quality
• Algorithmic accuracy– False negatives
– Maximum distance dilation
– Average distance dilation
![Page 34: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/34.jpg)
Block Hashing 34
Results
kd-tree BH A=8
BH A=16 BH A=4
![Page 35: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/35.jpg)
Block Hashing 35
Results
![Page 36: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/36.jpg)
Block Hashing 36
Results
kd-tree BH A=16 BH A=8 BH A=4
![Page 37: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/37.jpg)
Block Hashing 37
Results
![Page 38: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/38.jpg)
Block Hashing 38
Hardware-Assisted Implementation
Query phase:
(1) Generate hash keys for 3D query position
(2) Find hash buckets that match keys
(3) Merge sets of photons blocks into unique collection
(4) Retrieve photons from blocks
(5) Process photons to find k-nearest to query position
![Page 39: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/39.jpg)
Block Hashing 39
Hardware-Assisted Implementation
(1) Generate hash keys for 3D query position
(5) Process photons to find k-nearest to query position
• Could be performed with current shader capabilities
• Loops will reduce shader code redundancy
![Page 40: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/40.jpg)
Block Hashing 40
Hardware-Assisted Implementation
(2) Find hash buckets that match keys
(4) Retrieve photons from blocks
• Amounts to table look-ups
• Can be implemented as texture-mapping operations given proper encoding of data
![Page 41: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/41.jpg)
Block Hashing 41
Hardware-Assisted Implementation
(3) Merge sets of photons blocks into unique collection
• Difficult to do efficiently without conditionals
• Generating unique collection may reduce size of candidate set
• Alternative: Perform calculations on duplicated photons anyhow, but ignore their contribution by multiplying them by zero
![Page 42: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/42.jpg)
Block Hashing 42
Future Work
• Approximation dilates radius of bounding sphere/disc of nearest neighbours
• Experiment with other density estimators that may be less sensitive to such dilation– Average radius
– Variance of radii
![Page 43: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/43.jpg)
Block Hashing 43
Future Work
• Hilbert curve encoding probably not optimal clustering strategy
Investigate alternative clustering strategies
![Page 44: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/44.jpg)
Block Hashing 44
Conclusion
• Block Hashing is an efficient, coherent and highly parallelizable approximate k-nearest neighbour scheme
• Suitable for hardware-assisted implementation of Photon Mapping
![Page 45: Low Latency Photon Mapping with Block Hashing Vincent C.H. Ma Michael D. McCool Computer Graphics Lab University of Waterloo.](https://reader035.fdocuments.net/reader035/viewer/2022062621/551be8b3550346c3588b6199/html5/thumbnails/45.jpg)
Block Hashing 45
Thank youhttp://www.cgl.uwaterloo.ca/Projects/rendering/