440 likes | 594 Views
Interactive Boolean Operations on Surfel-Bounded Solids. Bart Adams Philip Dutré Katholieke Universiteit Leuven. A. B. Goal: CSG on free-form solids. union, difference and intersection on free-form solids at interactive rates. A-B. A B. A B. 90k surfels. 94k surfels. 8FPS.
E N D
Interactive Boolean Operations on Surfel-Bounded Solids Bart Adams Philip DutréKatholieke Universiteit Leuven
A B Goal: CSG on free-form solids • union, difference and intersection • on free-form solids • at interactive rates A-B AB AB
90k surfels 94k surfels 8FPS “Bond of Union”
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 outside surfels with the other solid’s surface intersecting helix surfels that lie completely head inside
Algorithm overview inside-outside partitioning Preprocess classification of surfels Interactive loop keep appropriate set of surfels resamplingoperator
Algorithm overview inside-outside partitioning Preprocess classification of surfels Interactive loop keep appropriate set of surfels resamplingoperator
depth = 3 depth = 2 depth = 1 For each solid an octree is constructed
s ns ns points away from the empty cell interior Classification of empty leaf cell as interior
ns s ns points towards the empty cell exterior Classification of empty leaf cell as exterior
Interior Boundary Exterior Three types of leaf cells in the resulting octree
Partitioning of boundary cells using parallel planes P2 P1 All surfels between P1 and P2
The empty half-space of P1 is interior P2 P1 ns s ns points away from the empty space interior
ns points towards the empty space exterior The empty half-space of P2 is exterior P2 P1 ns s
In 3D, the boundary cell is partitioned in three volumes Exterior Boundary Interior
Algorithm overview inside-outside partitioning Preprocess classification of surfels Interactive loop keep appropriate set of surfels resamplingoperator
s1 s2 s3 s5 s4 Classification of surfels • s1 outside octree outside • s2 in exterior cell outside • s3 in interior cell inside
s4 s5 Classification of surfels • surfels s4 and s5 in empty half-spaces: s4outside s5inside boundary cell
Classification of surfels • surfel s between parallel planes: • search for nearest neighbor surfel t • test disks of s and t for intersection s t boundary cell
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
200k surfels Inside-outside classification
200k surfels Inside-outside classification NN search for only 5%, 80% of this 5% is intersecting
Algorithm overview inside-outside partitioning Preprocess classification of surfels Interactive loop keep appropriate set of surfels resamplingoperator
Algorithm overview inside-outside partitioning Preprocess classification of surfels Interactive loop keep appropriate set of surfels resamplingoperator
Resampling operator: motivation Intersection of two spheres Include surfels Resample surfels Exclude 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 surfels shown at half size
350k surfels 230k surfels 46k surfels 4.4FPS Resampling results in sharp edges and corners
Local smoothing eliminates sharp creases no smoothing smoothing 340k surfels 250k surfels 650k surfels 3.3FPS
350k surfels 370k surfels 2FPS “Bond of Union”
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
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)