1 / 39

Efficient Raytracing of Deforming Point-Sampled Surfaces

Mark Pauly Leonidas J. Guibas. Bart Adams Philip Dutré. Richard Keiser Markus Gross. Efficient Raytracing of Deforming Point-Sampled Surfaces. Contributions. dynamic bounding sphere hierarchy lazy updates from deformation field only various caching optimizations

swaterhouse
Download Presentation

Efficient Raytracing of Deforming Point-Sampled Surfaces

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mark Pauly Leonidas J. Guibas Bart Adams Philip Dutré Richard Keiser Markus Gross Efficient Raytracing of Deforming Point-Sampled Surfaces

  2. Contributions • dynamic bounding sphere hierarchy • lazy updates • from deformation field only • various caching optimizations • handling of sharp features • Efficient algorithm for raytracing of deforming point-sampled surfaces

  3. Related Work • Adamson & Alexa [SGP ‘03] • ray-surface intersection algorithm • James & Pai [SIG ‘04] • BD-tree • dynamic update principle • Wald & Seidel [PBG ‘05] • accelerated raytracing for static point clouds

  4. Talk Overview • Part 1: Static Surfaces • surface representation • ray-surface intersection algorithm • bounding sphere hierarchy • extension: sharp edges & corners • Part 2: Deforming Surfaces • physics framework • surface deformation • dynamic bounding sphere update • caching optimizations

  5. Talk Overview • Part 1: Static Surfaces • surface representation • ray-surface intersection algorithm • bounding sphere hierarchy • extension: sharp edges & corners • Part 2: Deforming Surfaces • physics framework • surface deformation • dynamic bounding sphere update • caching optimizations

  6. Surface Representation • Surface defined by elliptical splats • position x • tangent axes u and v • normal n from uxv • (material properties) • Should be hole-free • splats should overlap sufficiently • but not too much!1 u v x 1 Wu & Kobbelt: Optimized Sub-Sampling of Point Sets for Surface Splatting, EG 2004

  7. x1 x2 Ray-Surface Intersection • Intersect ray with surfel ellipse: point x1 • From x1 compute • weighted average normal n • weighted average position a  plane • Intersect plane: point x2 • Repeat until convergence

  8. Bounding Sphere Hierarchy • To speed up ray-surface intersection test • Built top-down similar to QSplat

  9. Bounding Sphere Hierarchy • To speed up ray-surface intersection test • Built top-down similar to QSplat

  10. Bounding Sphere Hierarchy • To speed up ray-surface intersection test • Built top-down similar to QSplat

  11. Bounding Sphere Hierarchy • To speed up ray-surface intersection test • Built top-down similar to QSplat

  12. Bounding Sphere Hierarchy • Use bounding sphere hierarchy to efficiently locate ellipse intersection

  13. Bounding Sphere Hierarchy • Use bounding sphere hierarchy to efficiently locate ellipse intersection

  14. Bounding Sphere Hierarchy • Use bounding sphere hierarchy to efficiently locate ellipse intersection

  15. Bounding Sphere Hierarchy • Use bounding sphere hierarchy to efficiently locate ellipse intersection

  16. Bounding Sphere Hierarchy • Use bounding sphere hierarchy to efficiently locate ellipse intersection

  17. boolean operations fracture animation Sharp Edges & Corners • Inherent smoothing in intersection algorithm • average normal, position, … • Sometimes sharp edges & corners wanted

  18. S1 S1 x S2 S2 Sharp Edges & Corners • One solution: detect sharp features1 • But often: features known a priori (e.g. csg) • define feature by surface-surface clipping relations • S1 clips S2 and vice versa  x rejected 1 Fleishman et al.: Robust Moving Least-squares Fitting with Sharp Features, SIG 2005

  19. boolean operations fracture animation Sharp Edges & Corners

  20. Talk Overview • Part 1: Static Surfaces • surface representation • ray-surface intersection algorithm • bounding sphere hierarchy • extension: sharp edges & corners • Part 2: Deforming Surfaces • physics framework • surface deformation • dynamic bounding sphere update • caching optimizations

  21. Surface Animation • Point-based approach for physically-based simulation1 • point-based volume (physics) • point-based surface (visualization) • Decoupling! • low-res physics (~100) • high-res surface (~100000) simulation nodes {pj} surfels {si} 1 Müller et al.: Point Based Animation of Elastic, Plastic and Melting Objects, SCA 2004

  22. Surface Animation • Simulation nodes define a displacement field u x x+u displacement field u

  23. gradient of displacement vector summation over neighboring nodes j displacement vector of node j smooth normalized weight function Surface Animation Deformation of surfels is computed from neighboring simulation nodes: simulation nodes {pj} surfels {si}

  24. Dynamic Sphere Update • Key Idea: • sphere bounds surfels • deformation of surfels is defined by subset of simulation nodes • update sphere by looking at deformation of these nodes only Recall: ~100 nodes vs. ~100000 surfels!

  25. Dynamic Sphere Update • Center update • similar to surfel update  linear in the number of simulation nodes

  26. can be pre-computed once remain constant under deformation Dynamic Sphere Update • Radius update • radius defined by maximal distance between deformed surfels and sphere center • find R’’  R’ (see paper for details)  linear in the number of simulation nodes

  27. Dynamic Sphere Update • Radius update • Observations • R’’  R even if object shrinks • less nodes is better • R’’ smaller if displacements smaller • rigidly transform sphere hierarchy before update to align as good as possible

  28. rigid transform (rotation + translation) smaller displacements Optimal Rigid Transformation

  29. surfel neighbors (for intersection algorithm) Caching Optimizations • Use static neighborhood information • neighbors of each surfel computed once • in undeformed reference system • no need for k-NN queries simulation node neighbors (for deformation)

  30. Caching Optimizations • Remember per-ray sphere node intersections • test cached sphere node first in next frame • good upper bound on t-value • less sphere/surface intersection tests same sphere frame n frame n+1

  31. Algorithm Summary • For each ray: • start from cached sphere node first • next, descend hierarchy from root • if node visited for first time: • update node’s center and radius • if ray hits leaf node: • update surfel and its neighbors • intersect ellipse • perform iterative intersection algorithm • trim if necessary

  32. Elastic Balls 6k surfels, 88 simulation nodes (one ball, 40 balls total)  3.0x speedup

  33. Cannon Ball Armadillo 170k surfels, 453 simulation nodes Time (sec)  2.1x speedup

  34. Gymnastic Goblin 100k surfels, 502 simulation nodes  2.1x speedup

  35. Bouncing CSG Heads 91k surfels, 253 simulation nodes (one head)  2.2x speedup

  36. Discussion & Future Work • There is a trade-off: • fast lazy updates • suboptimal spheres •  speedup not guaranteed • Future work: • dynamic update vs. (local) rebuild • handle dynamic objects with changing topology • e.g. by fracturing

  37. Thank you! • Acknowledgements • reviewers • NSF grants CARGO-0138456, ITR-0205671 • ARO grant DAAD19-03-1-033 • NIH Simbios Center grant 1091129-1-PABAE • F.W.O.-Vlaanderen • Contact information • Bart Adams barta@cs.kuleuven.ac.be • Richard Keiser keiser@inf.ethz.ch • Mark Pauly pauly@inf.ethz.ch • Leonidas J. Guibasguibas@cs.stanford.edu • Markus Grossgrossm@inf.ethz.ch • Phil Dutréphil@cs.kuleuven.ac.be

  38. Tighter Sphere Fitting • If parent and child spheres already updated • Tighter bound might be possible: C C2 C1

More Related