270 likes | 426 Views
Ray Tracing Animated Scenes using Motion Decomposition. Johannes Günther, Heiko Friedrich, Ingo Wald, Hans-Peter Seidel, and Philipp Slusallek. Introduction. Nowadays realtime ray tracing on single PC Packet tracing [Wald PhD04 , Reshetov SIG05 ]
E N D
Ray Tracing Animated Scenes using Motion Decomposition Johannes Günther, Heiko Friedrich, Ingo Wald, Hans-Peter Seidel, and Philipp Slusallek
Introduction • Nowadays realtime ray tracing on single PC • Packet tracing [Wald PhD04, Reshetov SIG05] • Clever acceleration structures (SAH [McDonald GI89]) • Best known method: kd-trees [Havran PhD01] • BUT, so far only static scenes • Walkthrough • Rigid-body animations [Wald PVG03] • Reason: high kd-tree build time preprocessing Eurographics, Vienna
Related Work – Dynamic Scenes Three approaches: • Alternative acceleration structures • BVHs [Wald TOG06, Lauterbach RT06] • Grids [Wald SIG06] • Hybrid data structures [Woop GH06, Havran RT06, Wächter EGSR06] • Faster construction of kd-trees • [Popov RT06, Hunt RT06] • Avoid the (re)construction of kd-trees Eurographics, Vienna
Avoid Updating the KD-Tree • IDEA: “make dynamic scenes static” • Assumptions: • Deformation of a base mesh (constant connectivity) • All frames of animation known in advance • Local coherent motion Eurographics, Vienna
Method Overview • Motion decomposition • Affine transformations + residual motion • Fuzzy kd-tree • Handles residual motion • Clustering • Exploit local coherent motion Eurographics, Vienna
Dynamic scene: ball thrown onto floor Motion Decomposition Eurographics, Vienna
Affine transformations Approximate deformations Include shearing (3rd frame) Motion Decomposition Eurographics, Vienna
Motion Decomposition residual motion Eurographics, Vienna
Motion Decomposition fuzzy boxes Eurographics, Vienna
Fuzzy KD-Tree • Handles residual motion • KD-Tree over the fuzzy boxes of triangles Valid over complete animation Eurographics, Vienna
Illustration transformation Eurographics, Vienna
Illustration affine transformations only adding residual motion Eurographics, Vienna
Details: Clustering • Efficient ray tracing: • Small fuzzy boxes Minimize residual motion Cluster coherently moving triangles • Many clustering algorithms • But mostly for static meshes • Not designed for ray tracing Develop new one • based on Lloyd relaxation Eurographics, Vienna
Clustering Algorithm • Start with one cluster (all triangles) • Lloyd relaxation: • Find transformations for clusters • Linear least squares problem • Recluster triangles • Until convergence • Insert new cluster • Seeded by triangle with highest residual motion • Until improvement below threshold Eurographics, Vienna
Build top-level kd-tree over current cluster bounds Transform rays into local coordinate system Inverse affine transformation of cluster from motion decomposition Traverse fuzzy kd-tree of cluster Ray Tracing: Two-level Approach Eurographics, Vienna
Results Eurographics, Vienna
Video Eurographics, Vienna
Single CPU (Opteron 2.8GHz) 1024×1024px Incl. shading Ray Tracing Performance Eurographics, Vienna
With texturing, lighting, shadows: 2.2 fps (static kd-tree: 4.1 fps) More Complex Shading Eurographics, Vienna
Comparison to Static KD-Tree • Baseline: separate static kd-tree per frame • Traversal steps • Factor 1.5 - 2 • Intersections • Factor 1.2 – 2, Cow 4, Chicken 6 • Average fps • Factor 1.2 – 2.6, alone two-level kd-tree costs ca. 30% • Memory • only one fuzzy kd-tree (+ transformation matrices) • vs. #frames static kd-trees Eurographics, Vienna
Clustering Process Residual Motion Eurographics, Vienna
Future Work • Clustering also in time domain • Better adaptation to separated animation sequences • E.g. with the chicken: walking, being scared, flying • Handle interpolation between key frames • By interpolation of the computed transformations? • Interaction with dynamic scenes • So far all poses known in advance Harnessing more information from application • Skinning operators, skeleton, joint angles with limits • See also [TVC/PG06] Eurographics, Vienna
Summary • Animated scenes at interactive frame rates • Motion decomposition and fuzzy kd-trees • Automatic clustering into coherently moving sub-meshes • Integrates nicely into existing ray tracing systems Eurographics, Vienna
Questions? Thank You Eurographics, Vienna
Finding “Good” Transformations • Transformation X of vertex v • Solve linear least squares problem Eurographics, Vienna
Clustering Process Residual Motion Surface Area Eurographics, Vienna