Commit Graph

440 Commits

Author SHA1 Message Date
ceb1ac2059 remove gen from sys thread 2025-01-20 09:43:04 -06:00
c6e1450d88 rename viewport -> ui 2025-01-20 09:29:34 -06:00
3c47774e67 rename canvas -> cmd buffer 2025-01-20 09:25:32 -06:00
49ca91973a declare resource as texture pointer 2025-01-20 09:21:34 -06:00
511783243d draw ui & world to separate texture 2025-01-18 12:29:10 -06:00
acced9dfed render to texture 2025-01-17 19:29:57 -06:00
a015143f5c set topology per draw cmd 2025-01-17 14:05:01 -06:00
9549897e6b fix grid offset 2025-01-17 11:45:12 -06:00
a5111c5b51 rename rand.dat -> noise.dat 2025-01-17 10:16:50 -06:00
d78adcb9c9 copy random noise resource to memory on startup 2025-01-17 10:14:21 -06:00
e6cea55854 slight renderer refactor. grid shader. 2025-01-16 18:04:21 -06:00
bd77959675 formatting 2025-01-16 14:45:57 -06:00
6c5183fe0a merge sort typo 2025-01-16 14:33:13 -06:00
d2cfeed161 sorted layers first pass 2025-01-16 11:42:26 -06:00
c361becc73 add merge sort 2025-01-16 10:40:20 -06:00
81f4049f95 tweak player torque speed 2025-01-15 17:21:29 -06:00
ad7ca7d68c pre-generate rand.dat file for deterministic noise. calculate shake based on world time 2025-01-15 14:32:36 -06:00
4c194d3b39 camera shake 2025-01-14 17:06:25 -06:00
25592d24d3 rework collider clipping logic 2025-01-13 15:58:30 -06:00
a1b8f752c9 working on capsule collision bug 2025-01-13 11:58:32 -06:00
85234c8dac add random direction to blood test 2025-01-13 09:50:01 -06:00
ece13bc12f more transparent blood 2025-01-13 08:51:32 -06:00
5b29d4f36e bullet knockback. physics damping. 2025-01-13 08:46:11 -06:00
33ad436040 draw bullet circle in tracer 2025-01-13 07:53:06 -06:00
e961b6dceb test out adding shooter velocity to bullet 2025-01-12 18:30:06 -06:00
37f10d76dd working tracers 2025-01-12 18:23:01 -06:00
bcdd9660c2 comment 2025-01-12 16:06:24 -06:00
5026a967ff config option to disable detailed collision debug 2025-01-12 15:36:44 -06:00
a00798fc7a tracer beginnings 2025-01-12 11:54:48 -06:00
e70047f763 disable collision between bullet shooter & bullet 2025-01-12 09:40:33 -06:00
b66f130e9c respond to collisions using callbacks rather than events 2025-01-12 09:11:30 -06:00
0ef72e1b23 disable all warnings for profiling build 2025-01-11 15:49:57 -06:00
bbd11d2526 sort hit events by dt to prevent out of order bullet hit processing 2025-01-11 15:09:14 -06:00
5d6835ece3 bullet_has_hit 2025-01-11 10:22:27 -06:00
0c1d6a58de move phys arguments into phys_ctx 2025-01-10 16:05:22 -06:00
0716ebd398 separate physics logic from game.c 2025-01-10 15:44:07 -06:00
f4d8ec73e7 skip toi between non-bullets 2025-01-10 14:32:03 -06:00
1849f1143a de-duplicate collider.c gjk & epa logic 2025-01-10 11:37:27 -06:00
02290601c3 cleanup collision debug leak & merge structure with contact lookup into entity lookup 2025-01-06 17:09:39 -06:00
6268e012f6 add false position method to toi root finding 2025-01-06 16:33:14 -06:00
967a408972 fix dangling constraint entities 2025-01-06 15:05:15 -06:00
dd4b05cbd1 time of impact seemingly working 2025-01-06 12:20:06 -06:00
1e81a7ea41 create collider_closest_points function 2025-01-06 11:41:59 -06:00
2260b1bc36 fix collision issue between capsule rounded edge & corners, and with reverse-winding shapes 2025-01-03 18:42:46 -06:00
33df739cc6 create separate entities for visualizing collision debug info 2025-01-03 17:24:34 -06:00
9981b600a8 draw debug movement for kinematic objects 2025-01-03 16:04:32 -06:00
1bbe316b20 kinematic flag 2024-12-16 12:53:52 -06:00
bac3256d1e hit event testing 2024-12-16 12:23:58 -06:00
152656fbc5 create ground friction joint dynamically 2024-11-18 13:12:10 -06:00
bfa1f1e065 contact lookup, joint / contact removal 2024-10-30 18:34:45 -05:00
f5e45d6ba1 game tick continuity gen. start removing static constraint lookup 2024-10-30 14:47:17 -05:00
c071e17305 fix clip winding swap 2024-10-30 13:58:11 -05:00
c8b48b9537 object dragging via mouse joint 2024-10-30 10:16:09 -05:00
8eadda9931 store & calculate friction 2024-10-29 18:35:35 -05:00
c966924760 fix incorrect contact point calculation 2024-10-29 13:59:12 -05:00
d0089329e2 start mouse joints. separate contact creation & preparation 2024-10-29 13:26:32 -05:00
483a95dfca testing linear movement using motor joint 2024-10-29 11:13:31 -05:00
c6b2a8c283 fix turn speed framerate dependent 2024-10-28 16:06:46 -05:00
161e615aa7 specify control torque in turns / second 2024-10-28 15:58:00 -05:00
5dde85a04a motor joint warm starting 2024-10-28 15:12:23 -05:00
4e920e071d motor joint 2024-10-28 14:33:26 -05:00
68d80de75a move manifold data into 'contact_constraint' struct 2024-10-23 16:35:09 -05:00
59b48694e8 fix aim angle diff check 2024-10-23 15:19:18 -05:00
7708b8e5b8 rework transformation math functions, add separate 'world' transform functions 2024-10-22 15:16:34 -05:00
ed8b03941e use v2_winding when clipping 2024-10-22 11:15:52 -05:00
55fc39fddd minor tweaking 2024-10-15 17:47:57 -05:00
8f1422a882 more popping work 2024-10-15 14:00:03 -05:00
73b7fef768 more fixed up capsule collision. remove transform matrix skewing 2024-10-12 00:37:15 -05:00
6951fa62e3 popping probably fixed 2024-10-11 14:32:01 -05:00
687e9b8c99 fix atan2f causing skew drift 2024-10-11 11:22:33 -05:00
31082916ad unevenly-scaled shape collisions working 2024-10-10 16:43:31 -05:00
daf1a862f5 more physics config defines 2024-10-10 13:52:57 -05:00
c193e31cce only draw collider line for circles 2024-10-10 13:24:08 -05:00
59361a60af divide warm start impulse by num contacts 2024-10-10 13:13:37 -05:00
9b4cfa345d halve warm start impulse to reduce jitter 2024-10-10 10:29:35 -05:00
bc19bd816d gonna probably rework clipping to better support round shapes 2024-10-10 08:57:55 -05:00
1eac05e8f1 re-enable collisions 2024-10-09 17:17:57 -05:00
f22aec28bb more gjk collision work for rounded shapes 2024-10-09 13:05:01 -05:00
33b32e849c ignore speculative bias during relaxation for stabililty 2024-10-08 19:34:52 -05:00
ac042a3306 rounded collisions working except for clipping 2024-10-08 16:01:30 -05:00
d52effe5c1 wip collider shapes 2024-10-08 12:15:11 -05:00
5ef8ee3f40 rename module gjk -> collider. remove unused gjk functions. 2024-10-08 07:43:45 -05:00
06afe6263f small formatting 2024-10-08 07:35:02 -05:00
71e3d9f05f fix gjk causing unstable collisions between flat diagonals 2024-10-05 01:03:07 -05:00
1dde27d31b fix wild collisions at low precision 2024-10-05 00:09:50 -05:00
aac6acd18f apparent stability for now 2024-10-04 20:15:44 -05:00
cf911f27b7 soft contact testing 2024-10-04 09:18:09 -05:00
3c275dfc9a warm starting testing 2024-10-02 16:13:38 -05:00
2758bdc394 friction testing 2024-10-02 14:17:48 -05:00
62df86a66a return un-negated normal from gjk 2024-10-02 11:27:52 -05:00
acbd97aa84 tweaking 2024-09-26 17:21:51 -05:00
3b21f641ad calculate contact ponits outside of substeps by storing local positions 2024-09-25 19:36:28 -05:00
c00d43b1de resolve collisions using the new clipped contacts 2024-09-25 17:02:46 -05:00
ef7ba9e77d commit config.h 2024-09-25 17:02:20 -05:00
a6412ba4f1 working face clipping along normal in gjk_contact_points 2024-09-24 18:55:41 -05:00
88334f2ab1 test midpoint contact point 2024-09-23 15:00:14 -05:00
4b88b282df fix manifold swap issue 2024-09-19 20:42:31 -05:00
dbdd653ae8 fix epa collision not detecting when diagonals touch 2024-09-19 17:37:24 -05:00
1f0c8964d0 skip redundant manifold based on manifold iteration 2024-09-19 12:50:26 -05:00
5593db5202 replace { 0 } initializers with new ZI macro. enable 'Wmissing-field-initializers' 2024-09-19 12:15:55 -05:00
eed68f04cd accumulate impulses 2024-09-19 12:11:00 -05:00
7b37f78b1e use shortcut-gjk for gjk_contact_points 2024-09-19 10:27:50 -05:00
41d56ac13c more physics testing (separate logic to functions & re-calculate constraint depth each iteration) 2024-09-18 20:07:58 -05:00
d14207959b more physics testing 2024-09-18 14:46:40 -05:00
be2f15d1a8 accumulated impulse testing 2024-09-17 14:58:40 -05:00
b717a38b13 contact testing 2024-09-17 12:44:54 -05:00
3ed16a426b minor cleanup 2024-09-13 15:27:46 -05:00
e8bc83df3a revert to returning contact pairs from gjk 2024-09-13 12:12:57 -05:00
1d7f9be8b4 use midpoint of clipped gjk contact faces 2024-09-13 11:29:41 -05:00
14958a8449 gjk contact pair testing 2024-09-12 18:36:04 -05:00
a946583bc8 more physics testing 2024-09-12 15:36:20 -05:00
ea56dab9bf kinda working physics 2024-09-11 16:22:04 -05:00
2012d0705d start on glitchy collision resolution 2024-09-11 13:59:56 -05:00
e3055062e6 angular velocity testing 2024-09-10 16:11:39 -05:00
a0600fc419 revert to using euler integration 2024-09-10 14:14:56 -05:00
8177754821 revert to non-swept epa 2024-09-10 13:56:26 -05:00
8050c39496 minor cleanup 2024-09-09 12:08:28 -05:00
5c03288c53 formatting 2024-09-09 10:56:54 -05:00
14163d2a09 semi working sweeping collision along velocity 2024-09-06 16:00:44 -05:00
11759dc6cd better direction gjk testing (still bugged since edge is furthest in velocity rather than closest projected, even though point is now correctly projected from end of velocity ray) 2024-09-05 09:16:01 -05:00
f608000b85 re-add/enable gjk debug visualization 2024-09-04 10:26:04 -05:00
8c36552659 collision resolution testing (janky bc angular velocity not taken into account) 2024-09-03 17:00:40 -05:00
9cb34ea1cd gjk.c & gjk.h 2024-09-03 15:59:06 -05:00
c3b96d1597 join logic for gjk expansion into one function 2024-09-03 14:30:42 -05:00
beccc17b7f working gjk penetration direction test 2024-09-03 12:04:22 -05:00
d735ff8fc8 fix closest points janky when shape edges aligned 2024-08-30 19:57:34 -05:00
657d8206fc fix alt key handling in win32 message loop 2024-08-30 19:50:18 -05:00
987842e130 working depth points for colliding gjk 2024-08-30 18:22:48 -05:00
ed1a788821 gjk closest point working for non-colliding entities 2024-08-30 17:15:26 -05:00
2fe3502cfc fix gjk hang 2024-08-30 14:40:40 -05:00
8fd92c55a1 gjk expanded testing non-colliding closest face 2024-08-30 13:39:28 -05:00
99381f1274 gjk tweaks 2024-08-30 09:00:18 -05:00
8de566cad5 gjk step tweaking in debug mode 2024-08-29 18:46:08 -05:00
7e125e864e tweaking 2024-08-29 15:45:01 -05:00
2150d0e3c4 working epa test 2024-08-29 11:31:57 -05:00
818ffa7eba start on scuffed epa 2024-08-28 20:21:55 -05:00
36f3a3dbb6 replace trig functions with cephes approximations 2024-08-28 14:33:33 -05:00
2453ceb239 fixed skew & child entity interpolation (still drifting skew bug due to accumulated sin & atan2 imprecision) 2024-08-27 18:35:43 -05:00
1e8b6973c1 replace atan2 approximation with one that seems more stable 2024-08-26 19:21:14 -05:00
bdcc6a8c81 set local xform when applying child attachment 2024-08-26 16:13:34 -05:00
4ce85c1bef skew testing 2024-08-26 14:48:40 -05:00
8bcc0bd356 working gjk test 2024-08-24 13:45:12 -05:00
86f1f1f6e0 start on scuffed gjk collision detection 2024-08-23 20:30:22 -05:00
17f7e3daaa small tweak 2024-08-23 13:25:23 -05:00
bd237e211b divide forces by mass only once during physics sim 2024-08-22 13:05:43 -05:00
687ebb4eb9 accumulate forces and impulses in one pass 2024-08-22 11:33:09 -05:00
0d33c5746f fix sprite log formatting 2024-08-21 17:50:23 -05:00
c4dd372041 store and calculate mass from unscaled mass instead of density 2024-08-21 17:17:05 -05:00
c461956fb0 remove a debugbreak 2024-08-21 14:31:44 -05:00
9a2ec4ebe4 take mass to account when applying impulse 2024-08-19 19:45:12 -05:00