Interactive Boolean Operations on Surfel-Bounded Solids Bart AdamsPhilip Dutré Katholieke...
-
Upload
iris-harrell -
Category
Documents
-
view
219 -
download
0
Transcript of Interactive Boolean Operations on Surfel-Bounded Solids Bart AdamsPhilip Dutré Katholieke...
Interactive Boolean Interactive Boolean Operations on Operations on
Surfel-Bounded SolidsSurfel-Bounded Solids
Interactive Boolean Interactive Boolean Operations on Operations on
Surfel-Bounded SolidsSurfel-Bounded SolidsBart Adams Philip Dutré
Katholieke Universiteit LeuvenBart Adams Philip Dutré
Katholieke Universiteit Leuven
Goal: CSG on free-form solidsGoal: CSG on free-form solidsGoal: CSG on free-form solidsGoal: CSG on free-form solids
A-BA-B AABB AABB
AA BB
• union, difference and union, difference and intersectionintersection
• on free-form solidson free-form solids• at interactive ratesat interactive rates
““Bond of Bond of Union”Union”““Bond of Bond of Union”Union”
90k surfels90k surfels 94k surfels94k surfels 8FPS8FPS
Related workRelated workRelated workRelated work
Kristjansson et al.Kristjansson et al. [2001] [2001] subdivision surfacessubdivision surfaces
Museth et al.Museth et al. [2002] [2002] level set frameworklevel set framework
Pauly et al.Pauly et al. [2003] [2003] points and moving least points and moving least
squares surfacesquares surfaceACM SIGGRAPHACM SIGGRAPH
Surfels are considered as Surfels are considered as small diskssmall disksSurfels are considered as Surfels are considered as small diskssmall disks
nn
• position position xx• normal normal nn• radius radius rr
• position position xx• normal normal nn• radius radius rr
xx
rr
surfels shown at half sizesurfels shown at half size
Three categories of surfelsThree categories of surfelsThree categories of surfelsThree categories of surfels
head surfels that liehead surfels that liecompletely completely helix helix
helix surfels that liehelix surfels that liecompletely completely head head
surfels surfels with with the other solid’s surfacethe other solid’s surface
Algorithm overviewAlgorithm overviewAlgorithm overviewAlgorithm overview
inside-outside inside-outside partitioningpartitioninginside-outside inside-outside partitioningpartitioning
classification classification of surfelsof surfelsclassification classification of surfelsof surfels
resamplingresamplingoperatoroperatorresamplingresamplingoperatoroperator
keep appropriate keep appropriate set of surfelsset of surfelskeep appropriate keep appropriate set of surfelsset of surfels
Interactive Interactive looploop
PreprocessPreprocess
Algorithm overviewAlgorithm overviewAlgorithm overviewAlgorithm overview
inside-outside inside-outside partitioningpartitioninginside-outside inside-outside partitioningpartitioning
classification classification of surfelsof surfelsclassification classification of surfelsof surfels
resamplingresamplingoperatoroperatorresamplingresamplingoperatoroperator
keep appropriate keep appropriate set of surfelsset of surfelskeep appropriate keep appropriate set of surfelsset of surfels
Interactive Interactive looploop
PreprocessPreprocess
For each solid an octree is For each solid an octree is constructedconstructedFor each solid an octree is For each solid an octree is constructedconstructed
depth = 1depth = 1depth = 1depth = 1 depth = 2depth = 2depth = 2depth = 2 depth = 3depth = 3depth = 3depth = 3
Classification of empty leaf Classification of empty leaf cell as interiorcell as interiorClassification of empty leaf Classification of empty leaf cell as interiorcell as interior
nnss
ss
nnss points away from points away from the empty cell the empty cell
nnss points away from points away from the empty cell the empty cell
Classification of empty leaf Classification of empty leaf cell as exteriorcell as exteriorClassification of empty leaf Classification of empty leaf cell as exteriorcell as exterior
nnss
ss
nnss points towards points towards the empty cell the empty cell nnss points towards points towards the empty cell the empty cell
Three types of leaf cells in Three types of leaf cells in the resulting octreethe resulting octreeThree types of leaf cells in Three types of leaf cells in the resulting octreethe resulting octree
InteriorInterior BoundaryBoundary ExteriorExterior
Partitioning of boundary Partitioning of boundary cells using parallel planescells using parallel planesPartitioning of boundary Partitioning of boundary cells using parallel planescells using parallel planes
PP11 PP22
All surfels between All surfels between PP11 and and PP22 All surfels between All surfels between PP11 and and PP22
PP11 PP22
ss
nnss
The empty half-space of The empty half-space of PP11 is interioris interiorThe empty half-space of The empty half-space of PP11 is interioris interior
nnss points away from the points away from the empty space empty space
nnss points away from the points away from the empty space empty space
PP11 PP22
ss
nnss
The empty half-space of The empty half-space of PP22 is exterioris exteriorThe empty half-space of The empty half-space of PP22 is exterioris exterior
nnss points towards points towards the empty space the empty space nnss points towards points towards
the empty space the empty space
In 3D, the boundary cell is In 3D, the boundary cell is partitioned in three volumespartitioned in three volumesIn 3D, the boundary cell is In 3D, the boundary cell is partitioned in three volumespartitioned in three volumes
InteriorInterior BoundaryBoundary ExteriorExterior
Algorithm overviewAlgorithm overviewAlgorithm overviewAlgorithm overview
inside-outside inside-outside partitioningpartitioninginside-outside inside-outside partitioningpartitioning
classification classification of surfelsof surfelsclassification classification of surfelsof surfels
resamplingresamplingoperatoroperatorresamplingresamplingoperatoroperator
keep appropriate keep appropriate set of surfelsset of surfelskeep appropriate keep appropriate set of surfelsset of surfels
Interactive Interactive looploop
PreprocessPreprocess
Classification of Classification of surfelssurfelsClassification of Classification of surfelssurfels
• ss11 outside octree outside octree
outsideoutside
• ss22 in exterior cell in exterior cell
outsideoutside
• ss33 in interior cell in interior cell
insideinside
ss11
ss22
ss33
ss55 ss44
Classification of Classification of surfelssurfelsClassification of Classification of surfelssurfels
boundary cellboundary cell
• surfels ssurfels s44 and s and s55 in in empty half-spaces:empty half-spaces: ss44 outsideoutside
ss55 insideinsidess55
ss44
Classification of Classification of surfelssurfelsClassification of Classification of surfelssurfels
sstt
– search for search for nearest nearest neighborneighbor surfel t surfel t
– test disks of s and t test disks of s and t for intersectionfor intersection
• surfel s between surfel s between parallel planes:parallel planes:
boundary cellboundary cell
Use octree as acceleration Use octree as acceleration structurestructureUse octree as acceleration Use octree as acceleration structurestructure
root node intersects root node intersects with boundary cellswith boundary cells
test childrentest children
solid Asolid A
solid Bsolid B
Use octree as acceleration Use octree as acceleration structurestructureUse octree as acceleration Use octree as acceleration structurestructure
child node only child node only intersects with intersects with exterior cellsexterior cells
all surfels all surfels outsideoutside
solid Asolid A
solid Bsolid B
Use octree as acceleration Use octree as acceleration structurestructureUse octree as acceleration Use octree as acceleration structurestructure
child node intersects child node intersects with boundary cellswith boundary cells
test childrentest children
solid Asolid A
solid Bsolid B
Use octree as acceleration Use octree as acceleration structurestructureUse octree as acceleration Use octree as acceleration structurestructure
leaf node only leaf node only intersects with intersects with exterior cellsexterior cells
all surfels all surfels outsideoutside
solid Asolid A
solid Bsolid B
Use octree as acceleration Use octree as acceleration structurestructureUse octree as acceleration Use octree as acceleration structurestructure
leaf node still leaf node still intersects with intersects with boundary cellsboundary cells
test surfels test surfels individuallyindividually
solid Asolid A
solid Bsolid B
Inside-outside classificationInside-outside classificationInside-outside classificationInside-outside classification
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%
200k surfels200k surfels
Inside-outside classificationInside-outside classificationInside-outside classificationInside-outside classification
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%,NN search for only 5%,
80% of this 5% is intersecting80% of this 5% is intersecting200k surfels200k surfels
Algorithm overviewAlgorithm overviewAlgorithm overviewAlgorithm overview
keep appropriate keep appropriate set of surfelsset of surfelskeep appropriate keep appropriate set of surfelsset of surfels
Interactive Interactive looploop
inside-outside inside-outside partitioningpartitioninginside-outside inside-outside partitioningpartitioningPreprocessPreprocess
classification classification of surfelsof surfelsclassification classification of surfelsof surfels
resamplingresamplingoperatoroperatorresamplingresamplingoperatoroperator
Algorithm overviewAlgorithm overviewAlgorithm overviewAlgorithm overview
inside-outside inside-outside partitioningpartitioninginside-outside inside-outside partitioningpartitioning
classification classification of surfelsof surfelsclassification classification of surfelsof surfels
resamplingresamplingoperatoroperatorresamplingresamplingoperatoroperator
keep appropriate keep appropriate set of surfelsset of surfelskeep appropriate keep appropriate set of surfelsset of surfels
Interactive Interactive looploop
PreprocessPreprocess
Resampling operator: Resampling operator: motivationmotivationResampling operator: Resampling operator: motivationmotivation
Include surfelsInclude surfels Exclude surfelsExclude surfels Resample surfelsResample surfels
Intersection of two spheresIntersection of two spheres
Resample surfel by smaller Resample surfel by smaller surfelssurfelsResample surfel by smaller Resample surfel by smaller surfelssurfels
• clip surfels:clip surfels:– irregularly irregularly
shaped surfelsshaped surfels
• our method: our method: resample surfels:resample surfels:
– surfel replaced by surfel replaced by smaller surfelssmaller surfels
– only one type of only one type of primitiveprimitive
Close-up of resampled Close-up of resampled surfelssurfelsClose-up of resampled Close-up of resampled surfelssurfels
surfels shown at half sizesurfels shown at half size
Resampling results in sharp Resampling results in sharp edges and cornersedges and cornersResampling results in sharp Resampling results in sharp edges and cornersedges and corners
350k surfels350k surfels 4.4FPS4.4FPS230k surfels230k surfels 46k surfels46k surfels
Local smoothing eliminates Local smoothing eliminates sharp creasessharp creasesLocal smoothing eliminates Local smoothing eliminates sharp creasessharp creases
smoothingsmoothingno smoothingno smoothing
3.3FPS3.3FPS250k surfels250k surfels 650k surfels650k surfels340k surfels340k surfels
““Bond of Bond of Union”Union”““Bond of Bond of Union”Union”
350k surfels350k surfels 370k surfels370k surfels 2FPS2FPS
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
DiscussionDiscussionDiscussionDiscussion
ConclusionConclusionConclusionConclusion
Contributions• fast inside-outside test• resampling operator
Future work• CSG operations on mixed
polygon-surfel models• implementation on GPU
AcknowledgementsAcknowledgementsAcknowledgementsAcknowledgements
• graphics group K.U.Leuven• the reviewers• aspirant F.W.O.-Vlaanderen
Remark: surfels are considered Remark: surfels are considered being disks, not just pointsbeing disks, not just pointsRemark: surfels are considered Remark: surfels are considered being disks, not just pointsbeing disks, not just points
enlarge bounding boxes for overlap tests
Remark: surfels are considered Remark: surfels are considered being disks, not just pointsbeing disks, not just pointsRemark: surfels are considered Remark: surfels are considered being disks, not just pointsbeing disks, not just points
translate planes in boundary cells
Choice of parallel planes is not Choice of parallel planes is not always optimalalways optimalChoice of parallel planes is not Choice of parallel planes is not always optimalalways optimal
Comparison with the technique Comparison with the technique of Pauly et al.of Pauly et al.Comparison with the technique Comparison with the technique of Pauly et al.of Pauly et al.
Pauly et al. Adams and DutréSurface
representationPoints and MLS
surfaceDisks
NN search Kd-tree Octree + TINN
Intersection curve
Points on curveDisks intersect on
curve
RenderingSurface splatting
extended with clipping
Rendering of disks(any surfel rendering
algorithm)
Surfels close to surface of Surfels close to surface of other solidother solidSurfels close to surface of Surfels close to surface of other solidother solid
InsideInside with our with our technique,technique,outsideoutside with the with the technique of Pauly et technique of Pauly et al.al.
Solutions:Solutions:denserdenser sampling samplingdifferentialdifferential points points(Kalaiah and Varshney)(Kalaiah and Varshney)