I just put some of the final touches on it today and have been putting it through it's paces with some test maps. The most recent items to go in were a migration of r_shadows 1 mode and the non-HLSL sky to my VBO setup and a fairly quick 'n' dirty fog implementation.
I've made my points about r_shadows before, but for now I'm leaving it in. I do remain quite unconvinced that it is something that's in any way essential for the Q1 experience, but those of you who like it seem to like it very much. I might at some stage - prior to the final 1.8.0 release - fix the sloped-plane issues; with the beta however if you see a bad guy walking on a sloped surface you can expect his shadow to be cut off. As I said before, nothing outside of shadow volumes or shadow maps will work on steps, so don't expect anything wonderful.
I don't know if I've mentioned this before but you can use intermediate values (between 0 and 1) for a more subtle effect.
Non-HLSL sky in the VBO was easy, nothing to say there.
Fog is largely based on the old 1.7.x implementation, with the usual cvars to control it. One feature of 1.7.x that I haven't ported is the interaction of fog with sky. Back then I faded off fog quite a bit when drawing sky, but this time I've just left it at full intensity. This is really something for the mapping community to call the shots on, and I have a feeling that with most maps the intention is for fog to be at full intensity on sky. I don't know for certain though.
Performance-wise there are still some scenes in some maps that stress this engine a little. By this I mean framerates might drop to 40-50. Dynamic light updating seems to be the sole remaining bottleneck I can deal with at the moment, but this is a bit of a balancing act. I'm fairly certain that it's my changed lightmap size, but reverting this would mean breaking my primitive batching, which would mean a return to framerates in the 20s.
As a compromise I included the r_fastlightmaps cvar in the alpha, but didn't say too much about it at the time. This can be used to help with dynamic lights by slowing down the rate at which they are checked for changes: instead of checking every frame it will check every second frame. My thinking is that at 72FPS, checking for lightmap changes 36 times per second is adequate.
A value of 0 is the same as regular Quake, 1 will check true dynamic lights (explosions/etc) every second frame, 2 will check animating lightstyles every second frame, 3 will check both every second frame.
Right now the default is 0, but I'm thinking of making it 3. Any comments?
Sunday, January 17, 2010
Expect the Beta release REAL soon
Posted by
mhquake
at
8:29 PM
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment