Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer-Aided Design and Manufacturing Laboratory: 3D Minkowski sum computation Sara McMains UC Berkeley.

Similar presentations


Presentation on theme: "Computer-Aided Design and Manufacturing Laboratory: 3D Minkowski sum computation Sara McMains UC Berkeley."— Presentation transcript:

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.


Download ppt "Computer-Aided Design and Manufacturing Laboratory: 3D Minkowski sum computation Sara McMains UC Berkeley."

Similar presentations


Ads by Google