For a project, a client is asking for something that seems impossible : high number of dynamic shadow casting lights in a relatively complex scene at an "interactive" framerate. Oh and of course without using top of the line GPU, it would be too easy
At first I dismissed this requirement, I was thinking that even the latest games were using maybe up to 5 shadow maps : one cascade for the sun and 4 spot lights, not several dozens. But then I became curious, were my figures accurate ? How many shadow casting lights is it possible to achieve not in a very contrieved demo but on a real 3D scene in a game for example. So I did some research, and I found some figures.
The latest 3DMark (FireStrike) for example is handling 100 shadow casting spotlights on DirectX 11 hardware (http://s3.amazonaws.com/futuremark-static/downloads/3DMark_Technical_Guide.pdf). Maybe more telling, Killzone 3 on the old PS3 hardware supports more than 10 shadow maps (http://www.dimension3.sk/downloads/valient12_shadows_in_games.pdf). So my intuition was on the low side, games are using more shadow casting lights that I thought...
My question is then : do you have some more examples ? If you're a developer, in your experience, how many shadow casting lights are you using ? I know this is a very rough estimate and it depends on a lot of things, but even some bounds would be useful. What are the best techniques to handle a large number of shadow casting lights ?
I found some useful resources like a chapter from OpenGL insights (great book by the way, if you're interested in OpenGL you should read it. There are not a lot of OpenGL books and this one is very bood) but I'm not convinced by what is proposed since it is using instanced geometry shaders. My gut feeling is that everything involving geometry shaders will be slow... The results are also not very telling, without a complex vertex shader the traditionnal (multipass) method is faster.
Any opinion on the topic ?
At first I dismissed this requirement, I was thinking that even the latest games were using maybe up to 5 shadow maps : one cascade for the sun and 4 spot lights, not several dozens. But then I became curious, were my figures accurate ? How many shadow casting lights is it possible to achieve not in a very contrieved demo but on a real 3D scene in a game for example. So I did some research, and I found some figures.
The latest 3DMark (FireStrike) for example is handling 100 shadow casting spotlights on DirectX 11 hardware (http://s3.amazonaws.com/futuremark-static/downloads/3DMark_Technical_Guide.pdf). Maybe more telling, Killzone 3 on the old PS3 hardware supports more than 10 shadow maps (http://www.dimension3.sk/downloads/valient12_shadows_in_games.pdf). So my intuition was on the low side, games are using more shadow casting lights that I thought...
My question is then : do you have some more examples ? If you're a developer, in your experience, how many shadow casting lights are you using ? I know this is a very rough estimate and it depends on a lot of things, but even some bounds would be useful. What are the best techniques to handle a large number of shadow casting lights ?
I found some useful resources like a chapter from OpenGL insights (great book by the way, if you're interested in OpenGL you should read it. There are not a lot of OpenGL books and this one is very bood) but I'm not convinced by what is proposed since it is using instanced geometry shaders. My gut feeling is that everything involving geometry shaders will be slow... The results are also not very telling, without a complex vertex shader the traditionnal (multipass) method is faster.
Any opinion on the topic ?