Commit Graph

132 Commits

Author SHA1 Message Date
XiaoQiDigipen 3ff2e6bb92
Revert "Implemented a custom physics engine" 2023-01-30 14:40:55 +08:00
Diren D Bharwani 4ed7aa3aed Reverted an attempt to stabilise edge detection between polyhedrons 2023-01-23 03:03:40 +08:00
Diren D Bharwani 5730381302 Physics objects can be implicity static if only a collider was added.
Removed the need to create an extra body. Math is great.
2023-01-23 00:56:46 +08:00
Diren D Bharwani a0f6cd3ae7 Cached SAT for improved stability
The effects of baumgarte stabilisation can be rather obvious especially when polyhedrons are thrown around at angles. Regardless, the system is relatively stable bar the added energy from the solving method, which may make for a more "bombastic" physics playground
2023-01-23 00:37:22 +08:00
Diren D Bharwani 0c3106f15b Abstracted contact derivation as setup for cached SAT 2023-01-22 19:20:03 +08:00
Diren D Bharwani 1dc16fdcda Fixed typos 2023-01-22 17:38:51 +08:00
Diren D Bharwani 36e01260ec Merge changes from main missing from previous commit 2023-01-16 16:23:48 +08:00
Diren D Bharwani dc55c31c36 Merge remote-tracking branch 'origin/main' into SHPhysics 2023-01-16 16:23:20 +08:00
Diren D Bharwani 8475bdccd7 Merge remote-tracking branch 'origin/main' into SHPhysics 2023-01-16 16:22:59 +08:00
Brandon Mak 09911cc50c Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2023-01-16 15:33:37 +08:00
Brandon Mak e115d4b965 Reverted light properties back to main 2023-01-16 15:33:20 +08:00
Diren D Bharwani c077575a73 Fixed convex-convex face detection
Minor bugs with contact point detection. Will test more before pushing into main
2023-01-16 15:01:14 +08:00
maverickdgg a41354f2ce Added changing texture of buttons 2023-01-16 14:35:16 +08:00
maverickdgg 02ba0c6dc9 merge 2023-01-16 11:44:34 +08:00
maverickdgg 0c7224b8be Merge branch 'main' into UI-Test 2023-01-16 11:37:38 +08:00
maverickdgg 5190c490c9 added events 2023-01-16 11:36:12 +08:00
maverickdgg 5aa7bfe03e button fixed 2023-01-16 07:34:44 +08:00
Diren D Bharwani 19bffc9124 First half of re-implementing face-face contact derivation 2023-01-16 02:44:27 +08:00
Diren D Bharwani ef5016351b Reverted changes to inertia tensors
Created a new branch since I reverted to an older commit but kept some new updates. This will be the main branch moving forward.
2023-01-13 15:26:21 +08:00
Brandon Mak f217562fef Shadows are sort of working 2023-01-11 20:04:53 +08:00
Brandon Mak 4cd9a6cea0 shadows WIP 2023-01-11 10:35:29 +08:00
Brandon Mak 4a06032bea Shadows WIP 2023-01-11 08:25:38 +08:00
maverickdgg 88491ffbd8 ToggleButton fix 2023-01-09 09:56:46 +08:00
maverickdgg e89b6f5c4c Fixing button 2023-01-09 09:38:53 +08:00
maverickdgg 5f11a931c7 Added Toggle Button, Fixed canvas Scalar 2023-01-09 09:24:20 +08:00
maverickdgg b293b28a56 Button fix 2023-01-09 07:14:40 +08:00
Diren D Bharwani 8ca4045d55 R for retard 2023-01-05 17:53:48 +08:00
Diren D Bharwani 0c92e7ff6c Added more comments and clarity for polyhedron edge contacts 2023-01-05 14:40:59 +08:00
Diren D Bharwani 68e11ba48e Added edge vs edge contacts for convex polyhedron collisions 2023-01-05 13:42:17 +08:00
Diren D Bharwani c484a088fd Added first half of Gauss Map Optimised SAT 2023-01-05 01:12:25 +08:00
Diren D Bharwani a49c674c2b Generalised the Parallel Axis Theorem for computing inertia tensors 2023-01-04 15:03:58 +08:00
Diren D Bharwani f7e867098d Small changes to rigidbody tooltips 2023-01-03 20:30:20 +08:00
Diren D Bharwani b2645fb584 Added support for composite colliders 2023-01-03 18:53:21 +08:00
Diren D Bharwani 0460d776b0 Fixed collision tag panel fallacies and saving of tag masks 2023-01-03 10:40:02 +08:00
Diren D Bharwani 1b5024793c Added debug drawing for rays 2023-01-03 10:14:39 +08:00
Diren D Bharwani 1f2a9820d1 Readded collision tags and moved collision filtering to an earlier stage 2023-01-02 22:49:12 +08:00
Diren D Bharwani 58a44997b2 Reworked raycasting on engine side. Re-added raycasting to scripting 2023-01-02 22:31:48 +08:00
Diren D Bharwani 6f55f202b9 Added planes 2023-01-01 16:53:13 +08:00
Diren D Bharwani 37db6a2bf1 Merge remote-tracking branch 'origin/main' into PhySH 2023-01-01 14:11:47 +08:00
Diren D Bharwani f3c0bdbcfd Clean up 2023-01-01 03:24:34 +08:00
Diren D Bharwani 67907b1ca9 Replaced twin-edge dependency on sphere vs convex polyhedron 2023-01-01 02:48:02 +08:00
Diren D Bharwani 00f8726e46 Solved edge case for sphere vs convex polyhedron 2023-01-01 02:42:44 +08:00
Diren D Bharwani 3a7336fe15 Improved stability of sphere vs convex polyhedron except for one edge case 2022-12-31 18:43:46 +08:00
Diren D Bharwani 6451ca5e95 forgot to flip a normal 2022-12-31 01:40:28 +08:00
Diren D Bharwani 896b47c1a0 Fixed and optimised sphere vs convex polyhedron
Improved sphere vs convex polyhedron from O(n^2) to O(n). Math is amazing.
2022-12-31 01:11:25 +08:00
Diren D Bharwani 82d46fce99 Fixed voronoi region tests for sphere vs convex polyhedron 2022-12-30 23:53:45 +08:00
Diren D Bharwani 3586c7ffdc Added mostly working sphere vs convex polyhedron collision detection 2022-12-30 21:43:22 +08:00
Diren D Bharwani 50e3ddf0dd Fixed box inertia tensor calculation 2022-12-30 17:59:59 +08:00
Diren D Bharwani 400cbb35d9 Partial implementation of a generic convex polyhedron object 2022-12-30 00:45:37 +08:00
Brandon Mak 8e2c32d110 Graphics refactor more or less tested and working
- Descriptors sets are now independent from a set index. Camera matrices for example can be bound to set index 1 for the batching system but index 2 for compute shaders.
- Truly global descriptors sets (misc data, textures and light data) are now manually bound to a global static class that allows retrieval of these sets to be bound whenever in the middle end. 
- Predefined descriptor set layouts (but not truly global such as camera data, materials and font) have their layouts predefined in a class and used for descriptor set initialization within the middle end. The sets themselves are allocated using these layouts (also accessible globally). 
- Descriptor sets that are more flexible with their bindings such as render graph resources are introspected from shaders and not predefined at all (though their types are recorded in SHGraphicsPredefinedData to avoid magic numbers when binding descriptor sets in some systems).
- Systems now have fixed mappings for descriptors used in shaders and these are defined in SHGraphicsPredefinedData. Batching for example has 3 fixed descriptors: Static global bound at 0, camera data bound at 1, materials bound at 2.
- Viewports no longer contain renderers and renderers no longer contain render graphs. The graphics system only has 1 render graph and subpasses can have both viewports and renderers bound to them to have options for viewport/scissor and camera settings. 
- Light data is now bound before every compute system.
- There is only 1 render graph in the entire system and contains only 6 nodes: G-Buffer pass (with lighting compute pass), debug draw with depth, debug draw, screen space pass, dummy pass for transition to input attachment for imGui and lastly the imGui pass for rendering editor to swapchain.
2022-12-29 14:29:25 +08:00