Commit Graph

344 Commits

Author SHA1 Message Date
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
SeanOMik 4a285e5866
Merge branch 'feature/async-resource-loading' into main 2024-03-09 00:48:42 -05:00
SeanOMik 1c29e6fa72
cleanup some simple compiler warnings 2024-03-09 00:48:23 -05:00
SeanOMik de64b06e46
ecs: fix warning 2024-03-09 00:48:22 -05:00
SeanOMik dead32dbab
resource: asyncronous loading of resources 2024-03-09 00:48:22 -05:00
SeanOMik 1d7d13eb7b Merge pull request 'Some gltf improvements' (#4) from feature/gltf-scene-fixes into main
Reviewed-on: #4
2024-03-09 00:46:42 -05:00
SeanOMik cd27c9602c Inline a few things 2024-03-09 00:46:42 -05:00
SeanOMik 5331cfc2c4 resource, render: load in texture sampler from gltf and use them in the renderer 2024-03-09 00:46:42 -05:00
SeanOMik b941fa2fe0 cleanup some simple compiler warnings 2024-03-09 00:46:42 -05:00
SeanOMik e36307eef7 render: fix the TransformBuffers that could only store a single Transform for an entity
This caused Scenes to be rendered poorly since all meshes would use the Transform of the last processed mesh
2024-03-09 00:46:42 -05:00
SeanOMik fba925512b render: process GltfScenes and Node local transforms 2024-03-09 00:46:42 -05:00
SeanOMik c1b5ca768f resource: Create Gltf object, expand GltfScene to collect all node transforms, other qol changes 2024-03-09 00:46:42 -05:00
SeanOMik c3de9e77db ecs: fix filters 2024-03-09 00:46:42 -05:00
SeanOMik 7db913d15b resource: load multiple gltf scenes 2024-03-09 00:46:42 -05:00
SeanOMik 556b603f83 resource: improve gltf loader to show scene hierarchy and node local transform 2024-03-09 00:46:42 -05:00
SeanOMik ad40621f7c scene: some cleanup 2024-03-09 00:46:42 -05:00
SeanOMik bcc035ab91 Some cleanup 2024-03-09 00:46:42 -05:00
SeanOMik 8aae479df3 Create a new crate! lyra-scene for representing a SceneGraph in an ECS world 2024-03-09 00:46:42 -05:00
SeanOMik b76832ec05 ecs: fix World::insert, finish a TODO related to it
The TODO was that if the archetype has a single entity, add a component column for the new component instead of moving the entity to a brand new archetype
2024-03-09 00:46:42 -05:00
SeanOMik ad82f61cf4 Merge pull request 'Implement relationships in the ECS' (#3) from feature/ecs-relations into main
Reviewed-on: #3
2024-03-03 16:22:39 -05:00
SeanOMik 70fecc8cdd
fixes across crates after changes to ecs 2024-03-02 22:55:13 -05:00
SeanOMik c0df9f2d65
ecs: fix a typo in docs 2024-03-02 22:55:12 -05:00
SeanOMik 6210778e9d
ecs: some code cleanup 2024-03-02 22:55:11 -05:00
SeanOMik 7d90b1d38f
ecs: improve docs 2024-03-02 22:55:10 -05:00
SeanOMik 21537481c9
ecs: add relations, improve docs 2024-03-02 22:55:10 -05:00