Download presentation
Presentation is loading. Please wait.
Published byAndrea Lang Modified over 9 years ago
1
Computer-Aided Design and Manufacturing Laboratory: 3D Minkowski sum computation Sara McMains UC Berkeley
2
University of California, Berkeley Problem Description Input Triangulated polyhedra Output Minkowski sum (MS) rendering MS voxelization
3
University of California, Berkeley Why Voxelization? GPU-based fast computation At least one order of magnitude faster than prior algorithms = O(m 3 n 3 ) O(m) O(n)
4
University of California, Berkeley Why Voxelization Ready-to-use sample points B-rep based MS is usually sampled for motion planning [Lien 08, Varadhan et al. 06] Free C- Space: Feasible locations where the robot doesn’t collide with the obstacle start goal path ( Obstacle Robot ) c Obstacle Robot Forbidden C-Space: ?
5
University of California, Berkeley Approach Overview Surface Primitive Culling Outer Boundary Rendering Solid Voxelization Surface Voxelization Rendering Voxelization
6
University of California, Berkeley Surface Primitives MS boundary surfaces: (trimmed) triangle primitives Triangle vertex (trimmed) quad primitives Edge edge Number of primitives O ( n 2 ) ⊕
7
University of California, Berkeley Primitive Culling Culling out “non-contributing” primitives Primitives completely hidden inside Conservative culling Still ~99% of primitives are culled out Before Culling After Culling
8
University of California, Berkeley Culling Criteria Convexity Test f A ⨁ v B contributing only if v B is convex e A ⨁ e B contributing only if e A and e B are convex fAfA vBvB eAeA eBeB
9
University of California, Berkeley Culling Criteria Orientation Test [Kaul and Rossignac 92] f A ⨁ v B contributing only if e i B, n A e i B 0 n A : outer normal of f A e i B : i- th incident edge of v B e A ⨁ e B contributing only if e i, (e A ×e B ) e i has same sign e i : i -th incident edge of e A or e B nAnA fAfA e0e0 vBvB e1e1 emem …… eBeB e2e2 e3e3 eAeA e0e0 e1e1
10
University of California, Berkeley Culling Examples (500) (12,396) (2,116)
11
University of California, Berkeley Implementation on CUDA Execution configuration Block size of 16 16 Thread ( i,j ) for f i ⨁ v j or e i ⨁ e j f1f1 f2f2 f 16 v1v1 v2v2 v 16 … … thread (i,j)
12
University of California, Berkeley Memory Optimization Coalesced global memory ( x 1 y 1 z 1 x 2 y 2 z 2 …x n y n z n ) – not coalesced ( x 1 x 2 …x n y 1 y 2 …y n z 1 z 2 …z n ) – coalesced Shared memory 16 triangles and 16 vertices per block (or 16 edges from each polyhedron) ~3 speedup gain … …
13
University of California, Berkeley Memory Optimization
14
University of California, Berkeley Rendering Results A: B: A B:
15
University of California, Berkeley Rendering Timings
16
University of California, Berkeley Approach Overview Surface Primitive Culling Outer Boundary Rendering Solid Voxelization Surface Voxelization Rendering Voxelization
17
University of California, Berkeley Overview of Voxelization Algorithm Primitive Voxelization Orthogonal Fill Flood Fill
18
University of California, Berkeley Primitive Voxelization To voxelize the remaining primitives after culling Contributing primitives Non-contributing primitives
19
University of California, Berkeley GPU-Based Voxelization [Dong et al. 04] Volume encoding 3D texture (32-bit RGBA) 1 bit/voxel Or 128 MB for 1024 3 Multiple Rendering Targets (MRTs) Render to 8 buffers simultaneously Texture composite Three directional voxelizations 32 8 slices per rendering One of three rendering directions 3D texture visualization: each color band represents eight slices of voxels
20
University of California, Berkeley Orthogonal Fill To find outer voxels visible along one of the six orthogonal directions
21
University of California, Berkeley Flood Fill To find remaining outer voxels not visible along any of the six orthogonal directions Flood fill (seed fill) Barrier Seed
22
University of California, Berkeley GPU-Based 3D Flood Fill Barrier: primitive voxels Seed: orthogonal outer voxels Usually a lot of seeds Mask technique Neighbors of newly found outer voxels Parallel implementation on GPU Find a whole new “front” in each iteration 111111 11 2 2 22 33 3 4
23
University of California, Berkeley Surface Voxelization Identify all the primitive voxels adjacent to at least one outer voxel
24
University of California, Berkeley Voxelization Results (170,106) (1,600) (78,706) (8,276) Resolution: 1024 3 Time: 16.2 s Resolution: 1024 3 Time: 25.7 s Limitation: holes are not computed
25
University of California, Berkeley Timings
26
University of California, Berkeley Summary GPU-based voxelization approach for MS Robust and easy implementation At least one order of magnitude faster Memory efficient
27
University of California, Berkeley Acknowledgments Wei Li NSF DMI-0547675, 0621198 UC Discovery
28
University of California, Berkeley THANKS
29
University of California, Berkeley Backup Slides
30
University of California, Berkeley MS with Holes The yellow disc can be placed at B, but it cannot go from A to B Object Space Configuration Space
31
University of California, Berkeley Accuracy of Voxelization A sphere needs to be polygonized with about 5,000 triangles [Baumgardner and Frederickson, 1985] in order to match the accuracy of the voxelization at a resolution of 1024 3.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.