diff options
Diffstat (limited to 'physics/README.md')
-rw-r--r-- | physics/README.md | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/physics/README.md b/physics/README.md index 59d5c16..bf14ff7 100644 --- a/physics/README.md +++ b/physics/README.md @@ -2,3 +2,53 @@ ## Constrained dynamics - [A lot of pictures to get general idea and familiarize, but not very understandable](https://danielchappuis.ch/download/ConstraintsDerivationRigidBody3D.pdf) - [More text and math but very well written and understandable](https://graphics.pixar.com/pbm2001/pdf/notesf.pdf) + + + ## TODO: + - Camera perspective rendering: + - Subspace intersection + - Instead of orthogonal projection, intersect camera plane with the ray (S2 x S1 interesection) + - Scale radius: + - Take a right-most point (particle.pos + camera.right * true_radius) + - Project this point + - projected(radius) = projected(particle.pos) - projected(right_most_point) + - More generic `fn draw_sphere(radius, world_pos)` + + - Implement vector drawing for debug: + - Line + small dot at the end + - Display particle forces + - Display particle velocities + - Display jacobians for each constraint (render constraint jacobian at each related particle) + - (?) Toggleable gradient for each constraint: + - Artificially take C(q) with some grid + - Grid should be on a plane, need an ability to control this plane as well + + - (?) Refactor: subspace distance constraint: + - beam = distance to point + - slider = distance to a line + - But constraint has to act on 1 particle and 1 subspace, I will need dynamic subspaces (from point) + - Hold this for now + + +### Better scene design +What defines a scene: + - List of particles - points with mass that are affected by gravity + - List of global forces (gravity, drag, etc.) + - List of other renderable objects: beams, springs, lines, planes (each object may depend on some particle position): + - Each object may depend on particle position or some static point (line passing through a particle, spring between particle and static point) + - Each objects knows how to compute its subspace (point/line/plane) + - Beams automatically add constraints to particles + - Springs automatically register extra forces between particles + - Collision planes setup necessary routines + + - List of additional constraints between particles and subspaces (e.g particle tied to a line) + + <!-- - List of subspaces (special points, lines, planes etc.) - used as connectors for constraints --> + <!-- - (?) List of dynamic subspaces based on particle positions (i.e a plane that passes through a particle) --> + - Camera spec (lens etc.), position and orientation - defines how the scene is projected on the picture plane + +What the we should see on the screen: + - Particles (rendered as spheres with some small radius) + - Subspaces - points, lines, planes(?) + - Some constraints (beams represented as lines) + - Some forces (like springs) |