Commit Graph

268 Commits

Author SHA1 Message Date
SeanOMik f0d36e7b56
ecs: impl Clone for World and return entity in dynamic views 2024-04-27 00:21:26 -04:00
SeanOMik 6a11f7cbb7 Merge pull request 'Improve Performance in Scenes With Many Lights' (#14) from bugfix/many-lights-poor-performance into main
ci/woodpecker/push/debug Pipeline failed Details
Reviewed-on: #14
2024-04-24 19:55:15 -04:00
SeanOMik db501015d0
Create an example project to test transform interpolation 2024-04-24 00:30:30 -04:00
SeanOMik 53837d469b
ecs: fix BatchedSystem, implement ways for `Criteria`s to modify the world before and after execution 2024-04-24 00:28:01 -04:00
SeanOMik e2c6b557bb
render: improve performance of transform interpolation by using ecs components 2024-04-22 01:07:35 -04:00
SeanOMik 337ce18e8c
ecs: update existing components on entity in World::insert 2024-04-22 00:20:42 -04:00
SeanOMik 8eac563229
render: significantly improve performance of TransformBuffers
Before the changes, a release build of 'many-lights' was running at about 130fps, now its 430fps
2024-04-21 00:54:45 -04:00
SeanOMik 24e1c0281e
Make tracy profiling an optional feature, create 'many-lights' example 2024-04-20 00:08:25 -04:00
SeanOMik 246705b80b
game: some profiling improvements 2024-04-19 23:37:08 -04:00
SeanOMik 3c73e1d7e2
render: only run system_update_world_transforms for scenes that were modified 2024-04-18 22:38:15 -04:00
SeanOMik 25aa902e02
render: use WorldTransforms in the renderer
ci/woodpecker/push/debug Pipeline failed Details
2024-04-17 20:46:46 -04:00
SeanOMik 12c8ece418
ecs: create a DynamicViewState that can be used to create a dynamic view without dealing with lifetimes
ci/woodpecker/push/debug Pipeline failed Details
2024-04-13 02:10:25 -04:00
SeanOMik 60ec62c558
scene: improve docs and some code cleanup
ci/woodpecker/push/debug Pipeline failed Details
2024-04-10 23:55:48 -04:00
SeanOMik 2daf617ba3
scene: implement WorldTransform struct to simplify getting the world transform of scene nodes 2024-04-10 23:45:25 -04:00
SeanOMik 0668be06e2
ecs: documentation improvements for filter queries 2024-04-10 23:18:11 -04:00
SeanOMik 347427a841
ecs: remove compiler warning 2024-04-10 22:27:44 -04:00
SeanOMik 4162150c5f
ecs: fix issue with Entities query returning the incorrect entity ids 2024-04-10 22:27:23 -04:00
SeanOMik 4a0d003181
ecs: add not filter, improve the code for inserting components into entity, bundle cleanup and improvements 2024-04-10 22:26:49 -04:00
SeanOMik 01a74ab9a6
Rewrite nix-shell, use mold for the linker
ci/woodpecker/push/debug Pipeline failed Details
2024-04-04 23:58:59 -04:00
SeanOMik 3dfb2520ce
ecs: add some spans around the system executors
ci/woodpecker/push/debug Pipeline failed Details
2024-04-01 12:02:16 -04:00
SeanOMik f3b5106073
reflect: fix warnings
ci/woodpecker/push/debug Pipeline failed Details
2024-04-01 11:17:19 -04:00
SeanOMik 7ae38476fa Merge pull request 'Fix #6: Rendering Shared 3D Models' (#10) from bug/6-rendering-shared-models into main
ci/woodpecker/push/debug Pipeline failed Details
Reviewed-on: #10
2024-04-01 11:03:00 -04:00
SeanOMik 0a9e5ebcdb
render: improve fix for rendering shared 3d modules 2024-04-01 10:50:17 -04:00
SeanOMik dd61e8e66c
render: hack to get rendering shared 3d modules working 2024-03-31 23:02:18 -04:00
SeanOMik a3118f32e2
resource: implement retrieving loaded SceneGraph dependencies 2024-03-31 13:37:25 -04:00
SeanOMik aa8d94851c
game: rewrite EventQueue due to new ecs requirement of Send + Sync for resources, use new SceneGraph in renderer 2024-03-31 13:24:32 -04:00
SeanOMik a39d259bb4
Switch nix-shell to use oxalica overlay to get miri working, fix memory leak in archetypes 2024-03-31 10:56:04 -04:00
SeanOMik a17c035c05
resource: use a SceneGraph for loading gltf nodes, make resources Send + Sync 2024-03-31 00:32:31 -04:00
SeanOMik a2aac25249
ecs, reflect: implement Bundle for (), use `nobuild` instead of `compile_fail` for reflect rustdocs 2024-03-31 00:29:12 -04:00
SeanOMik e5018c8258
reflect: fix type registry from changes with ecs resources 2024-03-30 22:42:41 -04:00
SeanOMik e00d0d71d1
examples: move assets outside of testbed for other examples 2024-03-30 22:20:53 -04:00
SeanOMik 46cdcfdd3b
ecs: make resources Send + Sync, rewrite Commands, CommandsQueue so that they are Send + Sync 2024-03-30 22:20:52 -04:00
SeanOMik 61efc358ce
scene: make scenes own its own world, no references 2024-03-24 22:40:38 -04:00
SeanOMik 763d51ae36
move some stuff out of testbed into lyra-game 2024-03-22 22:55:22 -04:00
SeanOMik 0f11fe2e6d
render: fix spot light culling 2024-03-22 10:46:52 -04:00
SeanOMik e2844a11a6
render: create toggleable debug light cull view 2024-03-20 19:03:39 -04:00
SeanOMik f0b413d9ae
render: resize light grid with window, improve light buffer, add spot lights to the light cull compute
Spot lights are buggy. They get culled when they shouldn't be, maybe still an issue with the light grid :(
2024-03-20 11:41:40 -04:00
SeanOMik 65ff7c4f23
render: retrieve light properties from components 2024-03-19 22:40:15 -04:00
SeanOMik f63a7ae86a
include correct rust install in nix-shell 2024-03-19 21:40:08 -04:00
SeanOMik 834a864544
render: get forward+ rendering working with multiple light sources 2024-03-19 21:08:24 -04:00
SeanOMik 014abcf7e6
render: fix the tile frustum used for culling lights 2024-03-19 21:07:39 -04:00
SeanOMik 76ec9606ec
render: add some fields to the camera uniform 2024-03-17 16:07:24 -04:00
SeanOMik 5c1ce809ff
render: get some lights showing up with tiled forward rendering
For some reason there's weird square in the light source, and the dynamic light is only applied to the top left tile
2024-03-17 15:20:17 -04:00
SeanOMik c73c1a7f43
render: fix segfault in LightCullCompute 2024-03-16 22:58:38 -04:00
SeanOMik 4ce21d4db0
render: dont send the same material to the gpu multiple times, speeding up gpu texture loading 2024-03-16 19:12:32 -04:00
SeanOMik 1818a0b48b
position the camera in a good position in the scene 2024-03-16 18:50:22 -04:00
SeanOMik cfd5cabfbb
render: create light cull compute shader, bind buffers, etc. 2024-03-16 18:39:07 -04:00
SeanOMik 22c08ba66e
render: improve the render buffer wrapper, use it for the camera uniform 2024-03-14 23:08:21 -04:00
SeanOMik f345f065c1
reflect: create ReflectedMap 2024-03-10 00:17:09 -05:00
SeanOMik aa3a4a17d7
resource: implement waiting for resource dependencies to be loaded 2024-03-10 00:11:15 -05:00