103 Commits

Author SHA1 Message Date
c91018fec8 Remove unnecessary rl dependency in physics engine 2025-03-01 13:30:25 +04:00
c2b831a4d6 Implement simulation rewind 2025-02-09 19:54:44 +04:00
aa1dab6079 Update shape from immediate_body 2025-02-09 19:33:19 +04:00
d816e96c3e Refactor convex shape handling
This will allow me to implement rewind easily
2025-02-09 19:15:56 +04:00
bf995882e6 Double buffer physics state to allow easy debugging and interpolation
Fix a bug in restitution
2025-02-09 02:21:34 +04:00
66f42c3cee Implement restitution, better hack for static friction 2025-02-04 01:51:54 +04:00
9f6d57b5ea Fix dynamic friction (mistake in paper actually), improve friction 2025-02-02 21:45:25 +04:00
ef51a9ee30 Fix convex mesh to remove coplanar faces, fix contact debug visualizer 2025-02-02 03:01:28 +04:00
25ff57168b Collisions for the convex shape 2025-02-02 02:41:24 +04:00
999a7a4631 Calculate inertia tensor for the convex hull, convert simulation to use full inertia tensor matrix
I couldn't figure out how to diagonalize the inertia tensor matrix so I will go the simle route and just use the full 3x3 matrix
2025-02-02 01:17:35 +04:00
660a535a7c Experiment with different com calculations 2025-02-01 01:07:18 +04:00
ba686422a8 Bring back assertions fix non convexity in exported mesh 2025-02-01 00:21:29 +04:00
76f3b9ef75 Calculate center of mass for convex meshes 2025-02-01 00:13:55 +04:00
8cefc48049 Load convex from obj 2025-01-31 02:35:02 +04:00
196bafb401 Static and dynamic friction working, it's starting to look pretty convincing
Still got a bug when colliding with edges at some specific rotations. Probably fucked relative position conversion somewhere and using a local pos instead
2025-01-26 22:43:23 +04:00
1a74039ad8 Static friction and refactor constraint params 2025-01-26 21:53:53 +04:00
aca890bcb7 Super stable collision resolution
- Store collision manifold points as local to body before applying them, this way penetration can be calculated exactly for each contact point
- Fix implementation error in closest_point_between_segments
- Calculate separation for each contact point separately
2025-01-26 17:31:28 +04:00
19a1398068 Try to fix edge collision issues, more debug stuff 2025-01-23 04:06:11 +04:00
f2f23ee2e0 Proper stable collisions
Turns out when you get a collision pair YOU SHOULD HANDLE CONTACT RESPONSE FOR BOTH BODIES, NOT JUST ONE OF THEM
Otherwise they move and their next collision (if a->b, b->a are found and resolved separately) they might penetrate badly or worse and everything blows up

This is probably not as important in sequential impulse type solvers because the actual position update is deferred, but in a position based one it's pretty important as it turns out.

It's also better for performance because I don't have to run the collision query for the same two bodies two times
2025-01-23 02:16:12 +04:00
b40dd32b36 Funny boxes flying 2025-01-19 23:46:01 +04:00
4f7a494fff Interesting... collision response 2025-01-19 22:15:22 +04:00
0961b7551a Manifold contact optimization 2025-01-19 21:44:42 +04:00
82470ca3c7 Edge contacts and fix bug with face contacts 2025-01-19 18:16:52 +04:00
4af30979d5 collision detection progress 2025-01-19 04:32:36 +04:00
923cb6f459 Convex vs convex face manifolds working 2025-01-18 17:16:32 +04:00
71df8df94a Remove accidental bin 2025-01-17 00:25:10 +04:00
43f8c66ec1 Start implementing convex collisions 2025-01-17 00:24:17 +04:00
Sergey Poznyak
2b3739937a Start implementing a span allocator 2025-01-13 02:46:54 +04:00
Sergey Poznyak
587104651c Halfedge test 2025-01-12 19:29:29 +04:00
Sergey Poznyak
b46858cf55 Implementing halfedge mesh 2025-01-12 03:59:33 +04:00
ccefa6b952 Start implementing rigid body collision 2025-01-12 02:57:33 +04:00
581f908e6e Fix tracy overhead 2025-01-10 03:04:12 +04:00
21545b1c9d Add profiling to the game 2025-01-10 01:46:13 +04:00
0f951b831b Add tracy lfs images 2025-01-10 01:45:57 +04:00
af03554260 Fix tracy style errors 2025-01-10 01:45:41 +04:00
32d21757c1 Merge commit 'e60e9b99af9e2738378444265819df71c8bba134' as 'libs/tracy' 2025-01-10 01:29:33 +04:00
e60e9b99af Squashed 'libs/tracy/' content from commit 4925f2b7
git-subtree-dir: libs/tracy
git-subtree-split: 4925f2b7240ebf4386faaae433993db6d0b3f956
2025-01-10 01:29:33 +04:00
e618ad9520 Timestep independence, finally 2025-01-09 15:07:19 +04:00
e22e667e27 Fixed unstable suspension (feel like an idiot) 2025-01-07 04:23:27 +04:00
7a77d1c409 Working BVH 2025-01-07 00:14:52 +04:00
493f311ad0 Almost working bvh 2025-01-06 03:40:40 +04:00
0687ff4858 Wheel friction working 2025-01-05 03:16:44 +04:00
5c0dd2f9f5 My own rigid body phyiscs that works, wat 2025-01-04 21:49:34 +04:00
bb77e8e821 Start of the physics engine with immediate mode api (waaat) 2025-01-04 20:05:24 +04:00
ad2d175b10 Kansei dorifto (no idea why car rotates like that lol) 2025-01-04 03:42:04 +04:00
aa0f945b0c Many editor improvements 2025-01-04 00:06:55 +04:00
686d034b06 Fix multiple point deletion 2025-01-03 23:22:51 +04:00
64dbe0c5e4 Draw road mesh, refactor 2025-01-03 23:18:27 +04:00
e404a33c6f Good spline frame algorithm 2025-01-03 20:56:47 +04:00
1815ab9ef2 Start making an actual road mesh 2025-01-03 01:11:39 +04:00