Implement Shadows #24

Merged
SeanOMik merged 28 commits from feat/shadow-maps into main 2024-08-10 03:10:30 +00:00

28 Commits

Author SHA1 Message Date
SeanOMik 8545e7e27d
render: rewrite PCF for spot lights to somehow fix PCSS directional lights
CI / build (pull_request) Successful in 9m48s Details
2024-08-09 22:01:57 -04:00
SeanOMik a85178eeea Revert "render: shadow maps and PCF for spot lights"
This reverts commit 8c1738334c.
2024-08-09 21:51:56 -04:00
SeanOMik 8c1738334c
render: shadow maps and PCF for spot lights 2024-07-24 20:10:32 -04:00
SeanOMik fefcf58765
render: make shadow depth bias configurable per light source 2024-07-21 21:53:02 -04:00
SeanOMik b0a6d30afc
render: fix directional light shadows 2024-07-21 21:09:29 -04:00
SeanOMik fef709d5f1
render: implement PCF for point lights, support per-light shadow settings 2024-07-21 12:02:35 -04:00
SeanOMik c91ee67961
render: improve shadow settings to make it possible to switch between PCF, PCSS, hardware 2x2 PCF, or disable filtering all together 2024-07-19 17:56:27 -04:00
SeanOMik c961568b96
render: update the shadow filting poisson disc when shadow settings are modified 2024-07-19 16:07:40 -04:00
SeanOMik 54b47c2178
ecs: implement change tracking for world resources 2024-07-19 16:07:03 -04:00
SeanOMik 4449172c2b
render: implement PCSS for directional lights 2024-07-18 23:43:08 -04:00
SeanOMik 4c6c6c4dd5
render: PCF with poisson disc on directional lights 2024-07-14 22:14:08 -04:00
SeanOMik 27bc88c5a7
render: pass shadow settings to gpu 2024-07-14 19:46:15 -04:00
SeanOMik ff06bd55f3
render: simple PCF 2024-07-14 19:06:38 -04:00
SeanOMik d02258224a
render: fix bug with texture atlas not packing textures in last column 2024-07-14 12:24:13 -04:00
SeanOMik b45c2f4fab
render: point light shadows in texture atlas, fix bug with unaligned GpuSlotBuffer 2024-07-13 00:56:09 -04:00
SeanOMik 40fa9c09da
render: fix shadow map atlas packing by writing my own skyline packer 2024-07-12 14:58:18 -04:00
SeanOMik 87aa440691
render: create a GpuSlotBuffer for stable indices in a gpu buffer 2024-07-11 20:00:46 -04:00
SeanOMik cc1c482c40
render: provide shadow texture atlas frame for each shadow casting light 2024-07-11 18:27:26 -04:00
SeanOMik a4ce4cb432
render: implement packed texture atlas for shadow maps 2024-07-10 20:16:21 -04:00
SeanOMik e2b554b4ef
render: implement simple texture atlas for the shadow maps 2024-07-05 17:29:38 -04:00
SeanOMik 6d57b40629
render: cull back faces, code cleanup to fix warnings 2024-07-04 23:28:21 -04:00
SeanOMik fd65f754cf
render: get simple directional shadow maps working 2024-07-04 13:43:36 -04:00
SeanOMik 6c6893149a
render: bind direction light projection matrix to meshes shader 2024-06-30 21:58:08 -04:00
SeanOMik 1c649b2eb6
render: bind the shadow map atlas to the meshes shaders 2024-06-30 21:42:08 -04:00
SeanOMik 7b2d2424a3
render: start moving to a shadow map atlas texture and expose the resources as slots 2024-06-30 20:56:41 -04:00
SeanOMik e8974bbd44
render: create a depth map for the directional light 2024-06-30 19:33:51 -04:00
SeanOMik 3a80c069c9
render: move most of the mesh processing to a MeshPrepare node
Moving that out of the MeshesPass makes the rendering meshes accessible to other passes/nodes. The shadow pass will need access to them which is why this was done now
2024-06-29 22:23:49 -04:00
SeanOMik 7ff67a194b
create an example for testing shadow maps 2024-06-28 16:15:21 -04:00