460 likes | 543 Views
Animating a Three Dimensional Whole Body Point Scan. Pushkar Deshmukh Computer Science Department Clemson University July 1999. Outline. Background and Motivation Animation Process Basic Idea Software Architecture Extended Free Form Deformation Designing Lattices
E N D
Animating a Three DimensionalWhole Body Point Scan Pushkar Deshmukh Computer Science Department Clemson University July 1999
Outline • Background and Motivation • Animation Process • Basic Idea • Software Architecture • Extended Free Form Deformation • Designing Lattices • Skeleton and Joint Structure • Generating Animations • Results • Applications and Future Work
3D Whole Body Scanners Cyberware Whole Body 3D scanner 4 cameras 120K+ points 17-sec. Scan x, y, z, RGB values
3D Whole Body Scanners [TC]2 Whole Body 3D scanner 6 cameras 350K+ points 2-sec. Scan x, y, z values
3D Whole Body Scan Close-up view
Motivation • Ergonomics • Study of relation between workers and their environment • Used for product design • Faster and Cheaper design process • Measurements from 3D scan • 3DM Project • Animating 3D scan
3D Scan Animation One Approach: Segmenting Scan
W V U Free Form Deformation • Basic Idea • Embed an object in a deformable region • Deform the region to deform the object • Developed by Thomas Sederberg and Scott Parry (Free-Form Deformation of Solid Geometric Models. SIGGRAPH '86, volume 20, pages 151-160, ACM, August 1986.) • Lattices Parallelepiped Lattice
Free Form Deformation • Mathematical Definition • Tensor product trivariate Bernstein polynomial where Lijk is the (i, j, k)th control point of the lattice, (u,v,w) are lattice space coordinates of point P and the lattice has l+1, m+1, n+1 planes in the U, V, W directions respectively.
Free Form Deformation • Steps • Calculate lattice space coordinates (u, v, w) (Freeze lattice) • Deform the lattice • Deform object Example of FFD
Free Form Deformation • Limitation • Only parallelepiped lattices • Extended Free Form Deformation • developed by Coquillart (Extended Free-Form Deformation: A Sculpturing Tool for 3D Geometric Modelling. Computer Graphics, Volume 24, Number 4, pages 187-196, August 1990, ACM SIGGRAPH) • allows non-parallelepiped lattices
Animation Process Basic Idea • Enclose scan data points in EFFD lattices • Freeze lattices • Move lattice control points • Deform scan to generate animations
Steps in Animation Process • Read a 3D scan • Build EFFD lattices around the scan • Build skeleton and joint structure • Freeze the lattices • Generate postures by varying joint angles • Interpolate between postures to generate animation
User Interface CMainAnim Skeleton & Joint Structure CDataPoint CSkeleton CMatrix CJoint CLattice Extended Free Form Deformation CComplexJoint 3D Human Scan Software Architecture Class diagram Software Modules
V P(u, v, w) U W Start: A point P(x, y, z) enclosed in a lattice First Step: Calculate (u, v, w) coordinates of P Y P(x', y', z') X Z Second Step: Find new (x, y, z) coordinates of P using its (u, v, w) coordinates and the lattice control points. Y P(x, y, z) X Z Extended Free Form Deformation
Find Cartesian Coordinate Where, - Lijk is the cartesian coordinate of the (i, j, k)th control point of the lattice - (u, v, w) is the lattice space coordinates of point P - the lattice has l + 1, m + 1, and n + 1 planes in the U, V, and W directions respectively and
Y V L110 L010 P(xf, yf, zf) L011 L111 V U X L000 P(ui, vi, wi) P(xi, yi, zi) L100 FFD Equation L001 L101 W Z Cartesian Coordinate Space Lattice Space Find Lattice Space Coordinate • Iterative Process • Aim, find (u, v, w) coordinate for point P(xf, yf, zf) • Start with point P(u0 = 0.5, v0 = 0.5, w0 = 0.5) • Find cartesian coordinate P(x0, y0, z0)
Find Lattice Space Coordinate • We obtain where is inverse of transpose of local approximate of Jacobian at (u0, v0, w0) • In general • Terminating condition
Jacobian Suppose we have a function where X is of dimension n and L is of dimension m, then dX = J(L) dL and, the (i, j)th element of J is given by From above equation
Jacobian Using forward differences to obtain an estimate of Jacobian at lattice control points we have:
Jacobian • Estimate jacobian at point P(u, v, w) using trilinear interpolation • Extend the jacobian
Terminating the iterative process • V = P(xf, yf, zf) - P(xi, yi, zi) < • Number of Iterations (NI) and 0 < NI < 50 = 0.0001 50 < NI < 500 = 0.01 NI = 500 = 0.1 • Average number of iterations ~ 4
V P(u, v, w) Y U P(x', y', z') W Start: A point P(x, y, z) enclosed in a lattice First Step: Calculate (u, v, w) coordinates of P X Z Second Step: Find new (x, y, z) coordinates of P Y P(x, y, z) X Z Extended Free Form Deformation • Point-in-lattice membership
Five EFFD lattices Each lattice has Two planes in X direction Two planes in Y direction Seven planes in Z direction Plane 6 Z Plane 0 Y X Designing Lattices
Plane 6 Plane 3 Plane 6 Plane 0 Plane 3 Plane 0 Designing Arm and Leg Lattices
Plane 6 Plane 4 Plane 2 Plane 0 Designing Torso Lattice
Designing Lattices • Moving Control Points • Maintaining Continuity • Avoid Overlap
Skeleton and Joint Structure • Need • Deform the lattice control points in a controlled manner • Provides • Ability to move the control points by specifying joint angles
Root Position Right Shoulder Left Shoulder Right Hip Center Left Hip Neck Base Right Elbow Left Elbow Right Knee Spine Left Knee Spine Neck Base Right Hip Left Hip Center Right Knee Left Knee Right Shoulder Left Shoulder Right Elbow Left Elbow Skeleton and Joint Structure Skeleton and Joint Structure Joint Dependency Hierarchy
Associating Joints with Lattices • Link to lattices • Using lattice plane numbers • Control points affected by the joint • Additional Constraints • Proper placement of lattice planes Plane 6 Plane 3 Plane 0
X Z X Y Y Z X Z Y X Y Z X Y Z Z X Y X Z X Y Y Z Z X Y X Y Y Z Z X Joints and Lattice Control Points • Joint local coordinate system • Local angle of rotations • Sequence of rotation • Z, X, and then Y Joint local coordinate system
Y Y Z Z X Y P X Y Z X Z P X Joints and Lattice Control Points • Local coordinates of the control points • Changing local angle of rotation Initial state Rotating shoulder about X axis
Joints and Lattice Control Points • Find initial joint angles
Initial postureA posture with hands raised and upper body turned Generating Animations • Postures
Generating Animations • Saving posture files • Animations generated by linear interpolation between postures ROOT_POSITION 0.010000 -0.050000 0.000000 CENTER 0.000000 0.000000 0.000000 SPINE 0.000000 0.000000 0.000000 NECK_BASE 0.000000 0.000000 0.000000 NECK 0.000000 0.000000 0.000000 RIGHT_ELBOW 48.366463 25.538908 0.000000 RIGHT_SHOULDER -50.856022 0.000000 0.000000 RIGHT_HIP -2.726310 -2.723229 0.000000 RIGHT_KNEE -4.720062 5.182696 0.000000 LEFT_ELBOW 36.594429 -25.992308 0.000000 LEFT_SHOULDER -49.398701 0.000000 0.000000 LEFT_HIP -0.000002 2.862404 0.000000 LEFT_KNEE -9.512845 -7.522387 0.000000 Sample posture file
Results Upper body movement
Results Movement of lattice control points
Results Leg Movement
Results Handshake
Applications • Improving ergonomics in product design • Visualizing simulations involving human characters • Computer games • Designing safer and comfortable apparel • Representing human participants in VR • Film industry
Conclusion • Simple animations can be created from a 3D human scan • The 3D scan works as a good human model • Further improvement in term of speed and quality of animation are possible
Future Work • Improving speed of the process • Reduce number of data points • Automate lattice designing • Using accelerated search algorithm for point-in-lattice membership • Providing multi-processor support
Future Work • Improving quality of generated animations • Implementing effects like squash and stretch of muscles • Increasing number of joints • Restricting the degree of freedom and adding limits on magnitude of rotations • Using better interpolation algorithms • Interfacing with human simulation packages
Acknowledgements I would like to thank my committee members Dr. Roy Pargas (Committee Chair), Dr. Andrew Duchowski and Dr. Gene Tagliarini for their guidance and for their valuable and insightful criticism and advice.