Slide 1 - Katholieke Universiteit Leuven

Document Sample
Slide 1 - Katholieke Universiteit Leuven Powered By Docstoc
					 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      AB
   “Bond of Union”




90k surfels   94k surfels   8FPS
 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

                inside-outside
Preprocess
                partitioning

                classification
                of surfels
Interactive     keep appropriate
   loop         set of surfels
                resampling
                operator
    Algorithm overview

                inside-outside
Preprocess
                partitioning

                classification
                of surfels
Interactive     keep appropriate
   loop         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

               P1      P2




All surfels between P1 and P2
The empty half-space of P1 is
interior

            P1       P2
                      ns

                 s



           ns points away from
            the empty space
               
The empty half-space of P2 is
exterior

            P1     P2




                                ns
                           s

            ns points towards
            the empty space
               
   In 3D, the boundary cell is
   partitioned in three volumes




Interior   Boundary   Exterior
    Algorithm overview

                inside-outside
Preprocess
                partitioning

                classification
                of surfels
Interactive     keep appropriate
   loop         set of surfels
                resampling
                operator
 Classification of surfels

           s1

                • s1 outside octree
                  outside
           s2
      s4
s5              • s2 in exterior cell
                  outside
 s3
                • s3 in interior cell
                  inside
     Classification of surfels



            s4   • surfels s4 and s5 in
                   empty half-spaces:
                    s4 outside
                    s5 inside
s5


boundary cell
  Classification of surfels


                • surfel s between
                  parallel planes:
                 – search for nearest
       s           neighbor surfel t
   t
                 – test disks of s and t
                   for intersection


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
  Inside-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 surfels
  Inside-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%,
200k surfels
               80% of this 5% is intersecting
    Algorithm overview

                inside-outside
Preprocess
                partitioning

                classification
                of surfels
Interactive     keep appropriate
   loop         set of surfels
                resampling
                operator
    Algorithm overview

                inside-outside
Preprocess
                partitioning

                classification
                of surfels
Interactive     keep appropriate
   loop         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




             surfels shown at half size
      Resampling results in sharp
      edges and corners




350k surfels   230k surfels   46k surfels   4.4FPS
      Local smoothing eliminates
      sharp creases




               no smoothing           smoothing




340k surfels   250k surfels   650k surfels   3.3FPS
  “Bond of Union”




350k surfels   370k surfels   2FPS
     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.

                 Pauly et al.    Adams and Dutré
   Surface     Points and MLS
                                       Disks
representation     surface
  NN search        Kd-tree         Octree + TINN
 Intersection                    Disks intersect on
               Points on curve
    curve                              curve
               Surface splatting Rendering of disks
  Rendering     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)

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:4/8/2013
language:Unknown
pages:44