Interactive Boolean Operations on SurfelBounded Solids Bart Adams
Interactive Boolean Operations on Surfel-Bounded Solids Bart Adams Philip Dutré Katholieke Universiteit Leuven
Goal: CSG on free-form solids • union, difference and intersection • on free-form solids • at interactive rates A B A-B A B
“Bond of Union” 90 k surfels 94 k surfels 8 FPS
Related work Kristjansson et al. [2001] subdivision surfaces Museth et al. [2002] level set framework Pauly et al. [2003] points and moving least squares surface ACM SIGGRAPH
Surfels are considered as small disks • position x • normal n • radius r n x r surfels shown at half size
Three categories of surfels head surfels that lie completely helix surfels with the other solid’s surface helix surfels that lie completely head
Algorithm overview Preprocess inside-outside partitioning classification of surfels Interactive loop keep appropriate set of surfels resampling operator
Algorithm overview Preprocess inside-outside partitioning classification of surfels Interactive loop keep appropriate set of surfels resampling operator
For each solid an octree is constructed depth = 1 depth = 2 depth = 3
Classification of empty leaf cell as interior s ns ns points away from the empty cell
Classification of empty leaf cell as exterior ns s ns points towards the empty cell
Three types of leaf cells in the resulting octree Interior Boundary Exterior
Partitioning of boundary cells using parallel planes P 1 P 2 All surfels between P 1 and P 2
The empty half-space of P 1 is interior P 2 P 1 ns s ns points away from the empty space
The empty half-space of P 2 is exterior P 1 P 2 ns s ns points towards the empty space
In 3 D, the boundary cell is partitioned in three volumes Interior Boundary Exterior
Algorithm overview Preprocess inside-outside partitioning classification of surfels Interactive loop keep appropriate set of surfels resampling operator
Classification of surfels s 1 • s 1 outside octree s 5 s 3 s 4 s 2 outside • s 2 in exterior cell outside • s 3 in interior cell inside
Classification of surfels s 4 s 5 boundary cell • surfels s 4 and s 5 in empty half-spaces: s 4 outside s 5 inside
Classification of surfels • surfel s between parallel planes: t s boundary cell – search for nearest neighbor surfel t – test disks of s and t for intersection
Use octree as acceleration structure solid B root node intersects with boundary cells test children solid A
Use octree as acceleration structure solid B child node only intersects with exterior cells all surfels outside solid A
Use octree as acceleration structure solid B child node intersects with boundary cells test children solid A
Use octree as acceleration structure solid B leaf node only intersects with exterior cells all surfels outside solid A
Use octree as acceleration structure solid B leaf node still intersects with boundary cells test surfels individually solid A
Inside-outside classification 200 k surfels classified in group 47% individual surfels not in boundary cells 26% surfels in empty space of boundary cells 22% surfels between parallel planes 5%
Inside-outside classification 200 k surfels classified in group 47% individual surfels not in boundary cells 26% surfels in empty space of boundary cells 22% surfels between parallel planes 5% NN search for only 5%, 80% of this 5% is intersecting
Algorithm overview Preprocess inside-outside partitioning classification of surfels Interactive loop keep appropriate set of surfels resampling operator
Algorithm overview Preprocess inside-outside partitioning classification of surfels Interactive loop keep appropriate set of surfels resampling operator
Resampling operator: motivation Intersection of two spheres Include surfels Exclude surfels Resample surfels
Resample surfel by smaller surfels • clip surfels: – irregularly shaped surfels • our method: resample surfels: – surfel replaced by smaller surfels – only one type of primitive
Close-up of resampled surfels shown at half size
Resampling results in sharp edges and corners 350 k surfels 230 k surfels 46 k surfels 4. 4 FPS
Local smoothing eliminates sharp creases no smoothing 340 k surfels 250 k surfels smoothing 650 k surfels 3. 3 FPS
“Bond of Union” 350 k surfels 370 k surfels 2 FPS
Discussion Advantages • • fast classification sharp edges and corners only one type of primitive octree is easy to update Limitations • partitioning might fail in case of incorrectly oriented surfels • choice of parallel planes is not always optimal
Conclusion Contributions • fast inside-outside test • resampling operator Future work • CSG operations on mixed polygon -surfel models • implementation on GPU
Acknowledgements • graphics group K. U. Leuven • the reviewers • aspirant F. W. O. -Vlaanderen
Remark: surfels are considered being disks, not just points enlarge bounding boxes for overlap tests
Remark: surfels are considered being disks, not just points translate planes in boundary cells
Choice of parallel planes is not always optimal
Comparison with the technique of Pauly et al. Surface Points and MLS surface representation Kd-tree NN search Intersection Points on curve Rendering Adams and Dutré Disks Octree + TINN Disks intersect on curve Surface splatting Rendering of disks extended with (any surfel rendering clipping algorithm)
Surfels close to surface of other solid Inside with our technique, outside with the technique of Pauly et al. Solutions: denser sampling differential points (Kalaiah and Varshney)
- Slides: 44