Concrete_Goals
Get shadows working, get them performant enough to play, explore the limits of shadow resolution and number of shadow casters.
Accomplished
I was able to successfully implement shadows, thankfully. There are a few artifacts here and there mostly due to shadow bias configuration, and some seams in map geometry. I was able to render 64 completely dynamic moving lights per frame at a resolution of 1024 at around 200-300fps on a laptop rtx 4060(which is pretty similar to a 2070 super).(at least according to our fps counter is correct only most of the time for some reason. I can definitively say it's at least 165fps(my laptop monitor resolution) though). This was a surprise and means we can have muzzle flashes, particles and other things like tracers create shadows. Also I was able to significantly speed up shadow map drawing by implementing frustum culling, so that was cool.
Why_It_Changed
I think it mostly went as planned, but I was surprised to learn that at this point the biggest bottleneck in shadows is actually vram over draw call count. I was surprised by this, but it makes sense if you do the math.
Next_Week
Finish shadows bias configuration, get bloom working. It would be also to at least do AO or soft shadows maybe too.
What_I_Learned
Metal has a maximum texture size that you can allocate,(at least one significantly smaller than vulkan or dx12). This means that I can’t just allocate 2gb shadow map arrays and would have to split it up in allocatable chunks.
Individual_Morale
My morale is good. I think whatever I’m able to do by the end of this week I should be happy with what we produce.