I had an odd idea...
What if instead of building a shadow map for sky lighting, we calculated the shadow from each object into a massive array of relatively low-res* shadow images, and merely projected that down onto land?
* Current shadow map is generally pretty big, 1024x1024 x light source count is standard.
We could easily make this 64x64 without anyone complaining... But large objects would drop quality.
Perhaps a giant 2d texture atlas as opposed to a 3D texture, thus allowing dynamic refitting? Would require more involved shader uniforms to pass the correct data in...
Using some trickery*, this could even allow transparent objects to cast full accurate shadows!
* Trickery would basically just be a second buffer alongside the first that identifies rough alpha value of each shadow pixel.
This would probably not be particularly efficient compared to standard shadow mapping, but might be worth a try?
Alternately, could be used for ONLY transparent shadows and NOT for opaques?
I had an odd idea...
What if instead of building a shadow map for sky lighting, we calculated the shadow from each object into a massive array of relatively low-res
*shadow images, and merely projected that down onto land?*Current shadow map is generally pretty big,1024x1024x light source count is standard.We could easily make this 64x64 without anyone complaining... But large objects would drop quality.
Perhaps a giant 2d texture atlas as opposed to a 3D texture, thus allowing dynamic refitting? Would require more involved shader uniforms to pass the correct data in...
Using some trickery
*, this could even allow transparent objects to cast full accurate shadows!*Trickery would basically just be a second buffer alongside the first that identifies rough alpha value of each shadow pixel.This would probably not be particularly efficient compared to standard shadow mapping, but might be worth a try?
Alternately, could be used for ONLY transparent shadows and NOT for opaques?