I was scaling the rays occlusion amount by how far away they hit something, but just casting multiple scattered rays gives largely the same effect, so I removed it.
I have been debugging some perf problems, and fixed some graphics glitches as well. The shadows are not showing up on the boned characters right now, so I added another viz mode to help debug it.
This mode shows the shadow casting & receiving frusta as near->far plane line segments.
This showed a surprising # of lights doing some shadow casting calcs wrt the player and other objects. Now, since these lights don't move, I precalculate the per-light ibs and bounding boxes to avoid casting or receiving shadows with geometry not involved with the light, so it's not as bad as it looks, but still, some of the frusta are quite large. I found that some of these lights have a 90 meter diameter, which is over half of the level!
I added some code to take the max light color into account in order to reduce the effective light bounds. In other words, if your light color goes to 0.5, 0.0, 0.0, then you know that the intensity can only go to 0.5 * attenuation, so you can shrink your bounding box in half without losing anything. This didn't help too much, but perf is still good.
On another note, I have been playing with the camera again, and have brought it really close. With the new much improved artwork, I gotta say, I like the look. Feedback welcomed.
As for the new camera position - I like it as well, puts the view more "in the action" for lack of a better term.
Although, the one thing that I noticed straight off (and it could be nothing) is that the graphics look a lot more blurry and less crisp than before.
You're using a softening/bloom like filter for post-processing, right? Could possibly do with toning that down?
This image:
Is a good example of the blurry - the floor on the RHS could do with being a lot sharper. Almost looks to me like it's a very aggressive form of mip-mapping?
hth
Jack