Upload
elvin-cummings
View
218
Download
1
Tags:
Embed Size (px)
Citation preview
Efficient Raytracing of Deforming Efficient Raytracing of Deforming Point-Sampled SurfacesPoint-Sampled Surfaces
Mark PaulyLeonidas J. Guibas
Bart AdamsPhilip Dutré
Richard KeiserMarkus Gross
ContributionsContributions
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 WorkRelated 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 OverviewTalk 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 OverviewTalk 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 RepresentationSurface 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
x
uv
Wu & Kobbelt: Optimized Sub-Sampling of Point Sets for Surface Splatting, EG 2004
1
Ray-Surface IntersectionRay-Surface Intersection
x1
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
x2
Bounding Sphere HierarchyBounding Sphere Hierarchy
To speed up ray-surface intersection test
Built top-down similar to QSplat
Bounding Sphere HierarchyBounding Sphere Hierarchy
To speed up ray-surface intersection test
Built top-down similar to QSplat
Bounding Sphere HierarchyBounding Sphere Hierarchy
To speed up ray-surface intersection test
Built top-down similar to QSplat
Bounding Sphere HierarchyBounding 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 HierarchyBounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection
Bounding Sphere HierarchyBounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection
Bounding Sphere HierarchyBounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection
Bounding Sphere HierarchyBounding Sphere Hierarchy
Use bounding sphere hierarchy to efficiently locate ellipse intersection
Bounding Sphere HierarchyBounding Sphere Hierarchy
Sharp Edges & CornersSharp Edges & Corners
Inherent smoothing in intersection algorithm average normal, position, …
Sometimes sharp edges & corners wanted
boolean operations fracture animation
Sharp Edges & CornersSharp 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
Fleishman et al.: Robust Moving Least-squares Fitting with Sharp Features, SIG 2005
1
S2
S1
S2
S1
x
Sharp Edges & CornersSharp Edges & Corners
boolean operations fracture animation
Talk OverviewTalk 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 AnimationSurface 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)
surfels {si}
simulationnodes {pj}
Müller et al.: Point Based Animation of Elastic, Plastic and Melting Objects, SCA 2004
1
Surface AnimationSurface Animation
Simulation nodes define a displacement field u
x x+udisplacement field u
Surface AnimationSurface Animation
Deformation of surfels is computed from neighboring simulation nodes:
surfels {si}
simulationnodes {pj}
summation overneighboring nodes j
displacement vectorof node j
smooth normalizedweight function
gradient of displacement vector
Dynamic Sphere UpdateDynamic 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 UpdateDynamic Sphere Update
Center update similar to surfel update
linear in the number of simulation nodes
Dynamic Sphere UpdateDynamic 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 UpdateDynamic 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 TransformationOptimal Rigid Transformation
smallerdisplacements
rigid transform(rotation + translation)
Caching OptimizationsCaching 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 OptimizationsCaching 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 n frame n+1
same
sphere
Algorithm SummaryAlgorithm 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 BallsElastic Balls
0.0
10.0
30.0
40.0
50.0
60.0
70.0
2 100 200 300
Tim
e (
sec)
Frame
15.0
21.5
45.0
No coherenceOur method (without caching)
Our method (with caching)
6k surfels, 88 simulation nodes (one ball, 40 balls total)
3.0x speedup
Cannon Ball ArmadilloCannon Ball Armadillo
0.0
5.0
10.0
15.0
20.0
25.0
2 100 200 300 400 500
Tim
e (
sec)
Frame
8.5
12.0
18.5
No coherenceOur method (without caching)
Our method (with caching)
170k surfels, 453 simulation nodes
2.1x speedup
Gymnastic GoblinGymnastic Goblin
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
2 100 200 300 400
Tim
e (
sec)
Frame
12.8
No coherenceOur method (without caching)
Our method (with caching)
100k surfels, 502 simulation nodes
2.1x speedup
Bouncing CSG HeadsBouncing CSG Heads
0.0
10.0
20.0
30.0
40.0
50.0
2 50 100 150 200
Tim
e (
sec)
Frame
26.2
42.8
No coherenceOur method (without caching)
Our method (with caching)
91k surfels, 253 simulation nodes (one head)
2.2x speedup
Discussion & Future WorkDiscussion & 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!Thank you!
Acknowledgementsreviewers
NSF grants CARGO-0138456, ITR-0205671
ARO grant DAAD19-03-1-033
NIH Simbios Center grant 1091129-1-PABAE
F.W.O.-Vlaanderen
Contact informationBart Adams [email protected]
Richard Keiser [email protected]
Mark Pauly [email protected]
Leonidas J. Guibas [email protected]
Markus Gross [email protected]
Phil Dutré [email protected]
Tighter Sphere FittingTighter Sphere Fitting
If parent and child spheres already updated
Tighter bound might be possible:
C1C2
C