Efficient Raytracing of Deforming Point-Sampled Surfaces Mark Pauly Leonidas J. Guibas Bart Adams Philip Dutré Richard Keiser Markus Gross
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
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
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
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
Surface Representation Surface defined by elliptical splats position x tangent axes u and v normal n from u x v (material properties) Should be hole-free splats should overlap sufficiently but not too much! 1 x u v Wu & Kobbelt: Optimized Sub-Sampling of Point Sets for Surface Splatting, EG
Ray-Surface Intersection x1x1 Intersect ray with surfel ellipse: point x 1 From x 1 compute weighted average normal n weighted average position a plane Intersect plane: point x 2 Repeat until convergence x2x2
Bounding Sphere Hierarchy To speed up ray-surface intersection test Built top-down similar to QSplat
Bounding Sphere Hierarchy To speed up ray-surface intersection test Built top-down similar to QSplat
Bounding Sphere Hierarchy To speed up ray-surface intersection test Built top-down similar to QSplat
Bounding Sphere Hierarchy To speed up ray-surface intersection test Built top-down similar to QSplat
Use bounding sphere hierarchy to efficiently locate ellipse intersection Bounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection Bounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection Bounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection Bounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection Bounding Sphere Hierarchy
Sharp Edges & Corners Inherent smoothing in intersection algorithm average normal, position, … Sometimes sharp edges & corners wanted boolean operations fracture animation
Sharp Edges & Corners One solution: detect sharp features 1 But often: features known a priori (e.g. csg) define feature by surface-surface clipping relations S 1 clips S 2 and vice versa x rejected Fleishman et al.: Robust Moving Least-squares Fitting with Sharp Features, SIG S2S2 S1S1 S2S2 S1S1 x
Sharp Edges & Corners boolean operations fracture animation
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
Surface Animation Point-based approach for physically-based simulation 1 point-based volume (physics) point-based surface (visualization) Decoupling! low-res physics (~100) high-res surface (~100000) surfels {s i } simulation nodes {p j } Müller et al.: Point Based Animation of Elastic, Plastic and Melting Objects, SCA
Surface Animation Simulation nodes define a displacement field u x x+ux+u displacement field u
Surface Animation Deformation of surfels is computed from neighboring simulation nodes: surfels {s i } simulation nodes {p j } summation over neighboring nodes j displacement vector of node j smooth normalized weight function gradient of displacement vector
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. ~ surfels!
Dynamic Sphere Update Center update similar to surfel update linear in the number of simulation nodes
Dynamic Sphere Update Radius update radius defined by maximal distance between deformed surfels and sphere center find R’’ R’ (see paper for details) can be pre-computed once remain constant under deformation linear in the number of simulation nodes
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
Optimal Rigid Transformation smaller displacements rigid transform (rotation + translation)
Caching Optimizations Use static neighborhood information neighbors of each surfel computed once in undeformed reference system no need for k-NN queries surfel neighbors (for intersection algorithm) simulation node neighbors (for deformation)
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 frame nframe n+1 same sphere
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
Elastic Balls 6k surfels, 88 simulation nodes (one ball, 40 balls total) 3.0x speedup
Cannon Ball Armadillo Time (sec) 170k surfels, 453 simulation nodes 2.1x speedup
Gymnastic Goblin 100k surfels, 502 simulation nodes 2.1x speedup
Bouncing CSG Heads 91k surfels, 253 simulation nodes (one head) 2.2x speedup
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
Thank you! Acknowledgements reviewers NSF grants CARGO , ITR ARO grant DAAD NIH Simbios Center grant PABAE F.W.O.-Vlaanderen Contact information Bart Richard Mark Leonidas J. Markus Phil
Tighter Sphere Fitting If parent and child spheres already updated Tighter bound might be possible: C1C1 C2C2 C