README.algorithms
上传用户:zhbcxc
上传日期:2022-08-09
资源大小:577k
文件大小:2k
源码类别:

OpenGL

开发平台:

Visual C++

  1. The sparta code keeps track of a number
  2. of structures for computation. These are:
  3. POINTS: Basically a vertex with some
  4. inherent mass.
  5. SPRINGS: In order to tweak the velocity of
  6. two connected points according to their 
  7. relative position. Springs can be set to
  8. break if their lenght exceeds some 
  9. threshold. We call stiff, breakable,
  10. inter-object springs virtual staples.
  11. FACES: Made up of 3 points. They are for
  12. collision detection and display updates.
  13. CDLINES: These are line segments between
  14. 2 points for collision detection purposes.
  15. Originally we used springs, but this is
  16. more efficient, and avoids some friction
  17. problems.
  18. Here is some simplified psuedocode:
  19. For each step
  20. {
  21.   For every object
  22.     For every spring
  23.     {
  24.       compute force due to displacement
  25.       compute force due to damping
  26.     }  
  27.   For every object            <- There are other methods with better order
  28.     For every object             but our cpus limit us to small N anyhow
  29.       For every cdline in object 1
  30.         For every face in object 2
  31.         {
  32.           Do bounding box check for early exit
  33.           if we have a collision (this is complicated)
  34.             tweak velocities taking into account mass
  35.             and friction
  36.         }
  37. }
  38. For each object
  39.   For each face
  40.     draw triangle
  41. Collision detection: we picked an unconventional collision
  42.   detection approach since some more traditional approaches
  43.   (inside/outside polygon test) have problems with flexible 
  44.   objects. For example, it is impossible to guarantee that
  45.   a flexible object is going to stay convex.
  46. Rigid bodies: Some performance gains could be made by limiting
  47.   these simulations to rigid bodies. Inside/outside polygon
  48.   test would work, and standard 3d hardware could be used to
  49.   accelerate object transformations. In the SPARTA project,
  50.   we are interested in flexible objects, however.