Commit Graph

190 Commits

Author SHA1 Message Date
89ca3efb3e rewrote meshopt (again) to actually perform vertex optimizations, and fixed LOD generation), fixed LOD level calculation (because Vulkan's -Y ruined things), some tweaks and fixes to the memory pool / allocator (it will still segfault on termination because of how things are ordered) 2026-05-04 21:14:04 -05:00
4344323f13 further segregation and reorganization of physics system files 2026-05-01 14:54:09 -05:00
60527c4e6b more physics fixes (somewhat finished hulls, gravity-related jitter-bounces from position correction (removed it), fixed BVH bugs, islands/bodies always being awake, refit/rebuild strategies, non-flattened BVHs not working, spheres not rolling, etc) 2026-04-30 22:44:32 -05:00
9c25bf9a9a added convex hull colliders (mesh colliders with fundamental differences), also fixed mesh v mesh because of some dumb assumption that the BVH was in worldspace 2026-04-29 23:19:54 -05:00
3965d3f719 cleaned up GUI system ((re)added simple anchoring system, although I need to actually utilize it), fixed SDFs looking like shit 2026-04-28 22:56:10 -05:00
84f2b63a8f revamped meshopt-based mesh optimizations, fixed mesh slicer/gridder, added LOD system (i think it works), physics tweaks (to-do: make meshMesh viable) 2026-04-27 17:09:26 -05:00
fc36c77167 physics fixes 2026-04-26 20:27:14 -05:00
2c3da15a4d fake frames (and cleaning up swapchain code) 2026-04-25 00:37:19 -05:00
8803034a60 added frame-gen via FFX-SDK (naively) 2026-04-24 00:18:59 -05:00
a6c74572c6 a shoddy depth-of-field effect, repaired FFX-FSR integration (and upgraded to FFX-FSR3.1 upscale) 2026-04-22 22:37:37 -05:00
6d05ab865a neurotic optimizations (overhauled depth pyramid and bloom to ffx-sdp), more fixes 2026-04-21 20:49:47 -05:00
fd9036ee39 repaired occlusion culling via depth pyramids 2026-04-20 23:40:55 -05:00
42aaf444ff lots of changes (physics tweaks, actually use dynamic buffers for UBOs, perf bottleneck fixed, bug fixes, etc) 2026-04-20 17:33:22 -05:00
012cddd37f more fixes before I lose my mind again (something something making VXGI look actually nice, correctness, fixing graphs, etc etc) 2026-02-21 21:26:37 -06:00
de44a6083d fixes 2026-02-16 18:10:36 -06:00
52fa565eb5 some more menial tasks (implemented triangleAabb as composing the AABB as a triangulated box since it seems better that way, added inertia calculations for meshes even though I think the approach for inertia tensors and rotations seems really wrong) 2025-09-21 19:30:11 -05:00
3ac3022f88 this is saner (although selectively querying for specific mesh attributes on view construction, just to have an interface to access them by name seems extremely silly), also triangleAabbSAT for stability (it's marginally more stable) 2025-09-17 12:34:11 -05:00
58dee945f8 proper pre-computing of mesh views (with equally horrid code) 2025-09-15 18:05:15 -05:00
16062f8135 fixed the bottleneck....... (mesh.makeViews incurred a very heavy penalty per triangle, currently naively caching the mesh views until I can be bothered to muck up the function headers) 2025-09-15 17:28:13 -05:00
8dd83f7f49 I guess I'll try and do some work (something about trying to force inline the vector operators but failing, and ensuring the internal physics system should work for the dreamcast with its quantized meshes (maybe, it's still quite underperforming compared to RP3D), probably some other things from a week or so ago) 2025-09-14 20:37:34 -05:00
36612f9ce9 fixed AABBs calculated from the graph system being wrong because for whatever reason i was transforming the bounds to world space, and this never mattered when using RP3D because it was always fed local extents...... 2025-09-05 21:25:59 -05:00
c87eac5e05 bigly refractors vector/quaternion/matrix all around (and beginning to ensure SIMD optimizations for physics) 2025-09-04 00:46:01 -05:00
593bdc93cd physics optimizations (lots...) 2025-09-02 21:51:00 -05:00
a66f56ad9f refractor to try and minimize differences between reactphysics and internal physics engine (that i really need to optimize now), reverted some things with the graph system to get it to work again on scenes with more than one mesh (because for some reason instance IDs need to be global and i cant for the life of me figure out how to properly remap them) 2025-09-01 23:16:43 -05:00
3b5db2c32c finally it works (to-do: support for reading from fp16/bf16/quantized vertex data, some method of emitting contact information to the colliding bodies, collision masking, per-body gravity, fix sinking occuring when using the collider offset, some other things) 2025-09-01 14:51:46 -05:00
461894741f using a PSG solver is almost stable sans some weird oddities, would love to use a block solver but the current one is flawed 2025-09-01 00:13:20 -05:00
40da94c422 wasted a week on trying to roll out my own physics system just to be humbled when it almost works but doesn't work well enough (probably a bad solver, will probably revisit it at a later date) 2025-08-30 15:52:30 -05:00
65cf3887b7 finally nailed a memory leak because past me made assumptions RP3D cleared the triangle parts on body destruction per the documentation (although I still crash after a while on the DC build from fragmentation at 9MiB consumed......), crammed filetype preference to resolveURI since everything should be using that anyways, some other cruft I forget trying to nail down this memory leak 2025-08-24 20:47:32 -05:00
532c4054b6 audio cleanup or something (because it's lagging the dreamcast build when emitting sounds) 2025-08-24 11:38:37 -05:00
0fb2e3b750 removed storing model/prev-model matricies and color for every instance entry (by adding another indirection via objectID...), fixed rt pipeline because the BLAS's weren't being generated 2025-08-21 22:54:49 -05:00
a099c562a2 remove the weird redundancy of having drawcommands + instances + primitives (which store draw commands and instances) (although i should probably do the opposite to not tie instances to draw commands) 2025-08-21 18:25:29 -05:00
9f2f51c644 before overhauling the graph system to not depend on pod::Graph 2025-08-20 22:13:23 -05:00
e5de1491f2 skip rendering the next frame under vulkan, as this fixes the crash on scene load when the scene graph storage buffers need to be resized (even though nothing makes sense) 2025-08-20 15:22:35 -05:00
81a3125fcd fixed graph buffers not getting updated (for opengl, vulkan still crashes...) 2025-08-19 23:36:48 -05:00
114bed0d5d pre-emptive opengl fixes (it at least works fully which is mostly what I care about) 2025-08-19 19:33:57 -05:00
0a29063869 realized past me realized that aliasing buffers isn't foolproof and added a system to fetch buffer descriptors by name from a source, yet never used it (re-bind buffer descriptors on mesh updates, need to fix the crash for graph storage when it resizes...) 2025-08-19 19:18:12 -05:00
6d4837e3cc fixed DC texconv having some weird quad issue by just rebasing from the original file and de-QTing / reconverting 2025-08-19 00:30:34 -05:00
8298fcec2d more cleanup, crammed DC texconv into here for later use 2025-08-18 20:47:25 -05:00
ba9f5c8323 some fixups for the scene tick loop, try and reuse existing buffers when reading buffers into them to avoid unnecessary allocations, fixed non-safe running a lua script because I didn't pass in the env 2025-08-17 23:13:29 -05:00
c9448f9b74 lua optimizations to remove as much overhead as possible (to almost nothing), adjusted how metadata is accessed in lua (it requires explicit pasting of macros) 2025-08-17 20:48:20 -05:00
0a299a3fd2 removing unused dependencies, noted quirks with Dreamcast compilation 2025-08-17 17:53:10 -05:00
f7fba27753 fixed OpenGL crash + Dreamcast oddities (past me did in fact realize that userdata never called destructors and handled it for opengl pseudo-command buffers) 2025-08-16 15:56:41 -05:00
5f8a80c25f resolved an oversight past me never realized where you still need to call destructors on placement new'd memory (and other things to resolve a memory leak that was very noticeable with 16MB of RAM) 2025-08-16 12:19:55 -05:00
cb1d9c4daf some gui hook cleanup, added keyboard/controller input for selecting gui options, fixed a crash when loading larger scenes because of low buffer size (or at least I believe it was that) 2025-08-16 00:25:06 -05:00
d5e58ccb9b somehow broke and fixed mesh quantization breaking again after streaming mesh data (need to dequantize first because naively just resetting the descriptors is wrong) (although I might need to update RP3D because collision breaks only when streaming mesh data and DC uses an older version) 2025-08-15 00:07:13 -05:00
ab9aa0ae13 fixed oversight in uf::Mesh::convert, fixed texture streaming not working in OpenGL (the graphic.material.textures weren't updated) fixed missing texture being used in VXGI for vulkan (think it was from reinitializing the texture object itself if it was aliased rather than just resetting the handles) 2025-08-14 23:32:08 -05:00
9ec35a26e6 added texture/animation streaming (to-do: fix textures for OpenGL), serendipitously fixed animations when loading from a graph 2025-08-14 19:09:58 -05:00
eadf732ee5 more agony (oversight fixes and dreamcast build works again (although it doesn't resolve my outstanding issues of too large of a scene mesh......)) 2025-08-13 22:12:38 -05:00
bc406d5b62 agony (added streaming in mesh data if it's out of range (but for the worldspawn only), re-enabled mesh slicing because I commented it out months ago and didn't remember why, some other things probably in the quest of getting this added) 2025-08-13 19:46:05 -05:00
a9b5a03f94 shuffled code around for when I figure out how I want to stream a partitioned mesh (even though this defeats the purpose of re-implementing the chunk/region system because I do not want to go about splitting each region into its own model-entity-graph-whatever) 2025-08-11 21:14:30 -05:00