on my active days, I had an idea of Hardware per pixel Shadow Casting unit, that would be as part of general gfx pipeline. But after traditional pipelines got lost, so did my idea and I never planned it further.
the basic idea was having tracing unit inside the rasterizer checking if rendered pixel (or sample) can see the light sources as simple ray - triangle collision. if collision was detected then engine request a texture sampling on the collision point of the triangle, to check texture transparency information. if the pixel (or sample) still has a shadow, engine would blend it to final pixel color.
I know, I know, it's darn slow. on big scenes with lot of triangles ray-triangle collisions would cause major slowdown because lots lots of shadow testing. Also, waiting to collision point texel to be sampled might cause the pipeline generate wait states, which again isn't desirable. So, as said, it's only a rough idea.
on my active days, I had an idea of Hardware per pixel Shadow Casting unit, that would be as part of general gfx pipeline. But after traditional pipelines got lost, so did my idea and I never planned it further.
Don't need dynamic lights for shadows. They hard to implement but they look so pretty . There is only so much you can do with static lights :/. Dynamic lights are not just lights that move. All lights that effect lightmaps in realtime are concidered dynamic.