Doom3 & CryEngine 2 question...

The sun is approximately an infinite light source, not a point light source. Light bulbs and flash lights make small penumbras depending on the distance from the object to the light source. But IMO, distinct penumbras are usually pretty hard to see and not something to worry about. Getting shadows to look appropriately fuzzy should be higher on the agenda.
 
Vysez said:
As Rys pointed out already, Volumetric Shadow aren't anywhere realistic, for the reason that they're created (extruded would be the correct term in this case) from a "light source" (a point actually, point that can share the same coordinates with the light source) that is nothing but a point.

Obviously, in real life, there's no such thing as a light source that is a "point" (in the mathematical, intangible, sense of the term), light sources in real life are comprised of a multitude of "light points", that creates the effect known as penumbra.

Kinda off topic, but if you get a Luxeon LED Emitter without any optics on it, it's about the closest thing to a point source I've ever seen. (see http://www.lumileds.com/products/family.cfm?familyId=2)

Casts shadows with nearly perfectly hard edges, and that plus the bluish-white light makes everything look quite strange. Looks a lot like Doom 3.
 
It looks like stencils and buffers are the predominant techniques being used in games right now (and I think the DX9 Unreal Engine even allows the use of both). To me, the lowdown for stencils is that it's "accurate but rigid" while buffers allows "manipulations".

I have failed to find any significant shadowing technology that works as well (or as efficiently, re performance vs quality) as buffers, which leads me to my question : What shadowing future can we expect to see beyond buffers? And how can this be influenced by advancements in global illumination techniques?
 
Last edited by a moderator:
Rys said:
You're close to invoking B3D's "Reyes Law" with that question :)lol:) Ask not about true raytracing, but accelerating RenderMan on the GPU instead!
Okay, I know I was asking an unanswerable question so I'll ask what you wanted me to ask : Renderman on the GPU - How much power needed for real-time?
 
I always preferred stencil shadows myself, the mathematical accuracy outweighs the hard edges because shadows appearing where they shouldn't really gets on my nerves. It can give you an unfair advantage in MP games - notably in CSS, you see the shadow of somebody in the cieling above your head so you can shoot through the floor.

I'm sure pixel and vertex shaders could be used to make the edges soft, I don't think it's been investigated enough IMO.

The other argument is more an argument for the doom 3 implimentation - everything casting shadows, it's just stupid when you are casting a shadow from an obscured light source, which happens very often with SM. Also you might be standing next to a small wall and you shadow apears on the floor on the lit and unlit side of the wall, the wall casting nno shadow itself. Looks stupid.

Doom3 had perfect shadow rendering on *everything* except for the fact they had no penumbras.
 
Dave B(TotalVR) said:
I always preferred stencil shadows myself, the mathematical accuracy outweighs the hard edges because shadows appearing where they shouldn't really gets on my nerves. It can give you an unfair advantage in MP games - notably in CSS, you see the shadow of somebody in the cieling above your head so you can shoot through the floor.
Shadow Maps aren't easy to work with, as the bug you describe shows, but when used and implemented correctly, they provide the best results.
This explains why SM are being used in Offine Renderer while Volumetric Geometry base shadows are not.
Dave B(TotalVR) said:
I'm sure pixel and vertex shaders could be used to make the edges soft, I don't think it's been investigated enough IMO.
There's so much you can do with that, geometry remains geometry (If it doesn't, then we're back to Shadow Buffers).
Games like Silent Hill 3/4 or F.E.A.R., to name some examples, already do soft the edges of their Volumetric Shadows, but fact remains that it has a serious cost for a result that is barely 'okay'.
To attain more complex effects, you'd have to use a "brute force" approach with the Vertex shading, or opt for some sort of "post processing" filter, but I don't think that the latter would be convincing.
Dave B(TotalVR) said:
The other argument is more an argument for the doom 3 implimentation - everything casting shadows, it's just stupid when you are casting a shadow from an obscured light source, which happens very often with SM. Also you might be standing next to a small wall and you shadow apears on the floor on the lit and unlit side of the wall, the wall casting nno shadow itself. Looks stupid.
That's an implementation issue, not a limitation inherent to SM nature. It sure is more complex to get SM to look "right" that's the problem.
Dave B(TotalVR) said:
Doom3 had perfect shadow rendering on *everything* except for the fact they had no penumbras.
Doom 3, the game, doesn't actualy have shadows casted on everything from everywhere.
That was the original idea, but due to bug and performance reasons it's not present on the final game.
 
Would a geometry shader allow you to jitter geometry?
Stencil shadows could be jittered kind of how depth of field is applied.

You can do that without geometry shaders anyway, but why isn't it done?
 
K.I.L.E.R said:
Would a geometry shader allow you to jitter geometry?
Stencil shadows could be jittered kind of how depth of field is applied.

You can do that without geometry shaders anyway, but why isn't it done?

Well because...
1/There's no hardware with Geometry Shader on the market
2/When the first compatible hardware will arrive, it won't be that usable (ie not fast enough)
3/It takes time to add features to an existing engine (but much less to code demos, so ask Humus to showcase Geometry Shaders for you ;) )
 
K.I.L.E.R said:
Would a geometry shader allow you to jitter geometry?
I'd imagine this would be possible but very tricky to implement correctly. Ultimately you'd need to output a range of values to the stencil buffer and/or render-target. This is likely to be difficult to implement as you don't have a guarantee as to what order the triangles will be submitted to the actual rasterizer...

K.I.L.E.R said:
Stencil shadows could be jittered kind of how depth of field is applied.
Not sure I'm familiar with that form of DoF. I've always implemented it as an image-space/post-processing trick.


I don't have the URL to hand, but a while back someone posted a masters thesis on generating soft shadows via post-processing stencil shadows. You get the robustness of stencil shadows with the quality of shadow-mapping (iirc, the lack of projective texturing meant you got very little aliasing/resolution error). Only problem is that it was pretty damned slow :cry:

Still, demonstrating that such things work is usually only the start - someone will probably find a way of making it work fast(er).

Jack
 
Back
Top