I've been working on a simple fps game which uses a custom c++/opengl engine for some time now [link to youtube video]:
I've reached a point where I need to decide what the best way would be to implement lighting for dynamic objects. The current build utilizes static lightmaps for static geometry (and doors and lifts, but that may need to change in the future as it does look a little off once they begin their translations if you're looking closely...as one would expect). I'm trying to decide if I should add functionality for fancy spherical harmonic light probes or attempt another solution. At one point I had considered doing away with the lightmaps and falling back to the classic sector based lighting which would simplify the problem, however I would loose the per-pixel lighting and shadows I get from the light maps and any "shadows" would have to be implemented at the geometry level and that would mean greater attention would need to be paid when designing levels.
I had read from a few different sources where people had solved this by casting a ray downwards from the player position and sampling the lighting directly underneath the player. I see where that would work for the player character, but when you account for the enemies and other dynamic objects in the scene that would mean needing to do this for every moving object which would wind up being quite expensive I would think.
Another potential solution I had thought of would be to insure that the level geometry all conformed to a strict grid layout (which it mostly does at this point) and then create "ghetto" light probes at the floor positions for each grid coordinate, bake lightmaps to those objects as well, then average the values at build time and load them into a 2d array which could be sampled at runtime based on the coordinates of the dynamic object in question...although as I'm typing this I'm realizing that would limit level design to be more doom-ish where you wouldn't be able to have traversable geometry on top of other traversable geometry...unless perhaps I used a 3d array...hmmm.
What I'm after is some way to accomplish this without complicating the level design process while retaining an acceptable effect.
Curious to know how others might solve this problem. Any ideas/suggestions greatly appreciated! :)