390 likes | 408 Views
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
E N D
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 • 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 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
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
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
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 • Use bounding sphere hierarchy to efficiently locate ellipse intersection
boolean operations fracture animation Sharp Edges & Corners • Inherent smoothing in intersection algorithm • average normal, position, … • Sometimes sharp edges & corners wanted
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
boolean operations fracture animation Sharp Edges & Corners
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 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
Surface Animation • Simulation nodes define a displacement field u x x+u displacement field u
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}
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!
Dynamic Sphere Update • Center update • similar to surfel update linear in the number of simulation nodes
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
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
rigid transform (rotation + translation) smaller displacements Optimal Rigid Transformation
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)
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
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 170k surfels, 453 simulation nodes Time (sec) 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-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
Tighter Sphere Fitting • If parent and child spheres already updated • Tighter bound might be possible: C C2 C1