This question is mainly pointed to the Irrlicht developers.
Can any of you tell me what the status is on BlindSide's official Irrlicht shadow mapping system?
When can we expect to get it, either by SVN or an official release?
What I want out of the shadow mapping system is to be able to use them with a directional light, providing the same effect as Irrlicht's stencil shadows (except obviously better).
I need shadows for my large outdoor scenes to be cast in a single direction regardless of position and with good detail. I can't achieve this with XEffects because the detail of the shadows is horrible whenever I try to get a decent distance out of them.
As for the improved Irrlicht stencil buffer shadows, will those also be in Irrlicht soon? I notice a lot of artifacts with them right now. Will they work with RTTs as well, so we can use them with post-processing?
Thanks.
- Josiah
shadow mapping & better stencil shadows
-
- Admin
- Posts: 14143
- Joined: Wed Apr 19, 2006 9:20 pm
- Location: Oldenburg(Oldb), Germany
- Contact:
The stencil shadow code is still a little buggy. It seems to miss some volume polys, which still leads to artifacts and other problems due to wrong positioning of the shadow. But I am trying to be ready with the code for the 1.8 release. This will also include directional lights support.
the lack of stencil buffer in RTTs is not a problem of the current shadow implementation, but of the current RTT implementation. I am also working on extended texture flags, which would allow for anti-aliasing and stencil settings for RTTs. Not sure if I find a suitable solution for 1.8 here, though.
The shadow map code seems to miss the 1.8 release, as BlindSide has not enough time to finish it in time. Since we do not have the 1.8 release date fixed yet, this might still change. But chances are much lower than for the other parts.
the lack of stencil buffer in RTTs is not a problem of the current shadow implementation, but of the current RTT implementation. I am also working on extended texture flags, which would allow for anti-aliasing and stencil settings for RTTs. Not sure if I find a suitable solution for 1.8 here, though.
The shadow map code seems to miss the 1.8 release, as BlindSide has not enough time to finish it in time. Since we do not have the 1.8 release date fixed yet, this might still change. But chances are much lower than for the other parts.
The only ways to get good and detailed shadows are: either stencil shadows, which have to be improved, and can't handle the transparent parts of the meshes (leaves of the trees, perhaps), or any shadowmap wrapping algorithm like PSM, TSM or LiSPSM. The former is highly discouraged because of its many weak points, TSM is patented and the later is quite complex to handle from the point of view of Irrlicht, although it is perfectly posible, you must understand first how does it work, and how does it fit within the context of Irrlicht.I need shadows for my large outdoor scenes to be cast in a single direction regardless of position and with good detail. I can't achieve this with XEffects because the detail of the shadows is horrible whenever I try to get a decent distance out of them.
I'd suggest that you programed your own shadowmapping routines (for the time being) if you need it badly. It is not that complex, luckyly enough.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
Hi Mel. Thanks for the reply.
Could you give me a general idea of how I can accomplish, through my own shadow mapping code, shadows that are cast in one direction regardless of position?
It seems all I can find with Google is stuff that works like XEffects, which is great for indoor scenes, but for outdoor scenes like mine it doesn't suffice.
Also, for this I don't even need to do lighting. I can do that with other methods. All I need is shadows to be cast, but with no lighting simulation in my GLSL code.
Could you give me a general idea of how I can accomplish, through my own shadow mapping code, shadows that are cast in one direction regardless of position?
It seems all I can find with Google is stuff that works like XEffects, which is great for indoor scenes, but for outdoor scenes like mine it doesn't suffice.
Also, for this I don't even need to do lighting. I can do that with other methods. All I need is shadows to be cast, but with no lighting simulation in my GLSL code.
Forout door maps, prespective projection on the shadow map makes it ipossible to get decent detail especially if the light source like the sun is far away. Since the sun is so far away you canassume most of its rays are parallel, then you can use orthogonal shadow mapping which keeps a very nice resolution distribution. Blindside has a tutorial under code snippets on how to do this (rpg style shadows or something)
"Irrlicht is obese"
If you want modern rendering techniques learn how to make them or go to the engine next door =p
If you want modern rendering techniques learn how to make them or go to the engine next door =p
omaremad:
I'm using orthogonal projection with XEffects, but the shadows only work well if I position the light each frame to the position of the player's vehicle.
Depending on the near/far values (which I can change in realtime), the distance from the vehicle/shadow caster, and the resolution I set for the shadow map, the shadows can look really good for a very small relative area or missing shadows/really blocky shadows for a larger area (yet still very small compared to the actual map size).
Is there no way with the technique XEffects uses to make sure the light area hits the entire map and casts parallel shadows for all objects in the effective zone?
I doubt this is possible with XEffects, but it would be really nice if it was.
I'm using orthogonal projection with XEffects, but the shadows only work well if I position the light each frame to the position of the player's vehicle.
Depending on the near/far values (which I can change in realtime), the distance from the vehicle/shadow caster, and the resolution I set for the shadow map, the shadows can look really good for a very small relative area or missing shadows/really blocky shadows for a larger area (yet still very small compared to the actual map size).
Is there no way with the technique XEffects uses to make sure the light area hits the entire map and casts parallel shadows for all objects in the effective zone?
I doubt this is possible with XEffects, but it would be really nice if it was.
Games like call of duty use shadows from light maps for far away areas, for mid round areas they use a cascaded method, a low res light that cover the middle ground but not near objects
and near areas use a high res shadow map. So there are two shadow maps in total that as you said follow the active camera, one for near objects high res and one for middle ground. far away scenery just uses lightmaps.
and near areas use a high res shadow map. So there are two shadow maps in total that as you said follow the active camera, one for near objects high res and one for middle ground. far away scenery just uses lightmaps.
"Irrlicht is obese"
If you want modern rendering techniques learn how to make them or go to the engine next door =p
If you want modern rendering techniques learn how to make them or go to the engine next door =p