Claims
- 1. For a two- or three-dimensional object represented by a plurality of mass points interconnected by a mass spring system, each of the mass points having a location and a velocity, a method of updating the locations and velocities of the mass points to reflect passage of a time period of duration Δt, the method comprising the following steps:determining an internal force on each mass point due to springs; filtering out one or more high frequencies from the resultant forces; determining updated velocities for each of the mass points responsive to the filtered forces and any applicable external forces; and determining updated locations for each of the mass points responsive to the updated velocities.
- 2. The method of claim 1 further comprising adding an artificial viscosity term to at least one of the internal forces prior to the filtering step.
- 3. The method of claim 1 further comprising correcting the updated locations to preserve at least in part angular momentum.
- 4. The method of claim 1 further comprising pre-computing a matrix W which equals (In-Δ t2mH)-1,where n is the number of mass points in the object, In is the n×n identity matrix, m is the mass of a mass point, and H is a matrix such that Hij, where i≠j, equals kij, a spring constant for a spring between mass points i and j, and Hij equals -∑j≠ikij.
- 5. The method of claim 1 wherein said first determining step comprises computing, for each mass point i, Fi, the internal force on the mass point due to springs, in accordance with the following: Fi=∑jkij(&LeftBracketingBar;xi-xj&RightBracketingBar;-lij0)xi-xj&LeftBracketingBar;xi-xj&RightBracketingBar;,where the summation takes place for each mass point j connected to mass point i with a spring, kij is the spring constant for the spring between mass points i and j, xi and xj are the current locations respectively of mass points i and j, and lij0 is the rest length of the spring between mass points i and j.
- 6. The method of claim 2 wherein said adding step comprises, for each mass point i, adding to Fi, the internal force on the mass point due to springs, an artificial viscosity term equal to ∑j kijΔ t(vj-vi),where the summation is performed for each mass point j connected to mass point i with a spring, kij is the spring constant for the spring between mass points i and j, and vi and vj are respectively the current velocities of the mass points i and j.
- 7. The method of claim 4 wherein the filtering step comprises, for each mass point i, determining Fifiltered, the filtered internal force due to springs and viscosity, in accordance with the following: Fifiltered=∑j FjWij.
- 8. The method of claim 7 wherein the second determining step comprises determining, for each mass point i, an updated velocity, vin+1, in accordance with the following: vin+1=vin+[Fifiltered+Fiext] Δ tm,where vin is the current velocity of mass point i, Fiext is any external force which may be applied to mass point i, and m is the mass of a mass point.
- 9. The method of claim 8 wherein the third determining step comprises determining, for each mass point i, an updated location, xinew in accordance with the following:xinew=xin+vin+1Δt, where xin is the current location of mass point i.
- 10. The method of claim 3 wherein the correcting step comprises the following substeps:computing global torque, δT, in accordance with the following: δ T=∑i (Fifiltered⊗xin)determining a center of gravity, xG, in accordance with the following: xG=∑i xin/nfor each mass point i, determining a corrective displacement, Dicorr, in accordance with the following: Dicorr=(xG−xin){circle around (×)}δT for each mass point, updating the new location thereof, xin+1 in accordance with the following: xin+1=xin+1+DicorrΔ t2m.
- 11. The method of claim 1 further comprising post-correcting at least one of the updated locations of the mass points in order to eliminate an excessive length condition between at least one pair of the mass points connected by a spring.
- 12. The method of claim 11 further comprising post-correcting, for at least one mass point i, the updated velocity vin+1 in accordance with the following:vin+1=(xin+1−xin)/Δt.
- 13. The method of claim 11 wherein, for a pair of mass points i and j connected by a spring having a rest length lij0, an excessive length condition exists when the distance between the pair of mass points exceeds the rest length lij0 by a predetermined amount.
- 14. The method of claim 1 further comprising displaying the object as represented by the updated mass points.
- 15. For a two- or three-dimensional object represented by a plurality of mass points interconnected by a mass spring system, each of the mass points having a location and a velocity, a method of updating the locations and velocities of the mass points to reflect passage of a time period of duration Δt, the method comprising the following steps:determining an internal force on each mass point due to springs; adding an artificial viscosity term to at least one of the internal forces; determining updated velocities for each of the mass points responsive to forces derived from the internal forces and any applicable external forces; and determining updated locations for each of the mass points responsive to the updated velocities.
- 16. The method of claim 15 further comprising correcting the updated locations to preserve at least in part angular momentum.
- 17. The method of claim 15 wherein said second determining step includes determining the updated velocities to at least in part implicitly filter out high frequencies from the internal forces.
- 18. The method of claim 15 further comprising filtering, prior to the second determining step, one or more high frequencies from the forces resulting from adding the artificial viscosity terms to the internal forces.
- 19. The method of claim 15 further comprising displaying the object as represented by the updated mass points.
- 20. For a two- or three-dimensional object represented by a plurality of mass points interconnected by a mass spring system, each of the mass points having a location and a velocity, a method of updating the locations and velocities of the mass points to reflect passage of a time period of duration Δt, the method comprising the following steps:determining an internal force on each mass point due to springs; filtering out one or more high frequencies from the resultant forces; determining updated velocities for each of the mass points responsive to the filtered forces and any applicable external forces; determining updated locations for each of the mass points responsive to the updated velocities; and correcting the updated locations to preserve at least in part angular momentum.
- 21. The method of claim 20 further comprising adding an artificial viscosity term to at least one of the internal forces prior to the filtering step.
- 22. The method of claim 20 wherein the filtering step comprises, for each mass point i, determining Fifiltered, the filtered internal force due to springs in accordance with the following: Fifiltered=∑j FjWijwhere W is a pre-computed constant matrix which equals (In-Δ t2mH)-1,where n is the number of mass points in the object, In is the n×n identity matrix, m is the mass of a mass point, and H is a matrix such that Hij, where i≠j, equals kij, a spring constant for a spring between mass points i and j, and Hij equals -∑j≠i kij.
- 23. A processor readable medium for tangibly embodying a series of instructions for performing the method steps of any of claims 1, 15, and 20.
- 24. The medium of claim 23 which is selected from the group comprising a disk, RAM, ROM, and VRAM.
- 25. The medium of claim 23 which is selected from the group comprising a hard disk, a floppy disk, and a compact disk.
- 26. A server capable of being accessed by a client over a computer network for tangibly embodying a series of instructions for performing the method steps of any of claims 1, 15, and 20.
- 27. A system comprising the server of claim 26 in combination with a client for accessing the server over a computer network.
- 28. The system of claim 27 wherein the computer network is a proprietary network.
- 29. The system of claim 27 wherein the computer network is the Internet.
- 30. A system comprising the medium of claim 23 in combination with a processor capable of accessing the medium over a bus.
- 31. A processor readable medium in which is stored the updated locations produced by any of the methods of claims 1, 3, 10, 11, 15, 16, 20, and 21.
- 32. For a two- or three-dimensional object represented by a plurality of mass points interconnected by a mass spring system, each of the mass points having a location and a velocity, a method of updating the locations and velocities of the mass points to reflect passage of a time period of duration Δt, the method comprising the following steps:a step for determining an internal force on each mass point due to springs; a step for filtering out one or more high frequencies from the resultant forces; a step for determining updated velocities for each of the mass points responsive to the filtered forces and any applicable external forces; and a step for determining updated locations for each of the mass points responsive to the updated velocities.
Parent Case Info
This application claims the benefit of U.S. Provisional Application No. 60/181,381, filed Feb. 9, 2000, which is hereby fully incorporated by reference herein as though set forth in full.
Government Interests
The U.S. Government has certain rights in this invention pursuant to Grant Numbers ACI-9721345 and EIA-9871235 awarded by the National Science Foundation and Grant No. W-7405-ENG-48 awarded by the Department of Energy.
Non-Patent Literature Citations (3)
Entry |
Desbrun, Mathieu et al., Interactive Animation of Structured Deformable Objects, (8 pages), published Jun. 1999 in Graphics Interface 1999, Kingston, Canada. |
Kang, Young-Min et al., Real-time Animation Technique for Flexible and Thin Objects, (8 pages), published Feb. 2000 in Proc. of Winter School of Computer Graphics (WSCG) 2000, pp. 322-329, Plzen, Czechoslovakia. |
Meyer, Mark et al., Interactive Animation of Cloth-like Objects in Virtual Reality, published May 2001 in the Journal of Visualization and Computer Animation, vol. 12, Issue 1, May 2001, pp. 1-12. |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/181381 |
Feb 2000 |
US |