Thursday, August 6, 2009

We're becoming complete

I think the only things remaining to be done are sky and water. Sky should be straightforward enough, but I'm still reasonably uncertain enough about how to proceed with water. Right now my thinking is that I'm just going to say "to hell with it" and go with render to texture. Calculations indicate that for a native 64 x 64 texture we're not really getting too much extra overhead on video RAM; the big killer is when you're using large external textures where it becomes about 20 MB per texture for a 512 x 512 texture. I might clamp liquid textures at 256 x 256 to mitigate this (overhead shrinks to 5 MB per texture).

I've previously done tests where I've updated mipmaps for these at runtime (using D3DXFilterTexture) and performance has been good, so I'm not too concerned about that part.

64 bit lightmaps have also yet to be tackled. I've followed up on my intention to use a modulate with a default diffuse of 0.5 though, so a semi-arbitrary sliding scale for lightmap intensity has been restored. This is achieved via a combination of the sliding scale (0 to 2, default 1, r_lightscale cvar) and the gl_modulate cvar (defaults to 2), giving full lighting range of 0 to 8 x. The default here is 2, so you'll be able to boost brightness quite a bit using these if you want.

Once I have those done I'm going to do a further review of the overall new renderer just to clean up unoptimized paths and shake out any bugs. Fortunately I've been able to just lift huge chunks of code from the Quake II engine (which was the reason I wrote it, so I'm happy with obtaining that objective) so most of it should be fairly good.

A lot of people will be happy that I've reduced the intensity of the underwater contents colour shifts quite a bit. They really were too strong, and it was virtually impossible to see where you were in many cases. The strange thing is that when I was recently fooling around with WinQuake I discovered that my colour shifts turned out to be identical to WinQuake's, so if GLQuake has lighter shifts it's GLQuake that's wrong. This however is one area where I'm prepared to say that the way WinQuake did it does NOT have priority.

One other thing I want to do - unrelated to the fixed pipeline path - is overhaul the menus. Parts of them are heading in the direction I want, but other parts use a very old-style menu division. Where I want to be is to have submenus of Options divided by what each submenu relates specifically to, so I'm talking about a lighting menu, a models menu, a texturing menu and so on. This will result in most menu options being more logically grouped together, whereas right now they're a bit scattered in places. I don't know yet if this will happen for the upcoming release or if it will happen later.

It's still too early in the game to indicate a release date, but I'm hoping it will be a small number of weeks.


I haven't said it yet but it's long overdue, so I want to yell out a HUGE "THANK YOU!" to everyone who downloaded DirectQ 1.6.3. I'm both shocked and flattered by the number of downloads here; 293 downloads (215 of which were the engine binary) is really good for what is at the end of the day a minority-interest engine for use with an ancient game. Even if you only ran it once and then deleted it, I don't mind. It's things like this that can help encourage me to keep going when I'm feeling a bit "meh" about it, so - again - cheers y'all.
Massive thanks also due to the regulars who - poor deluded souls that they are - seem to like this engine, seem to want to use it, and who offer me feedback on it. Testing is the hardest part of any development job, and any comment is worth it's weight in gold.

2 comments:

Anonymous said...

You're welcome!

Your DX engines rocks, and it turned my Laptop into a Quake machine (Intel chipset with slooow OpenGL drivers...).
I used to run FitzQuake or Aguire, but now I've almost switched to DirectQ.

By the way, I've notived a problem woth Quoth and all mods based on it: DirectQ crashes each time a flying robot is killed (protocol error)...

Do you plan to add fog into DirectQ? A lot of mods are using it, and when you get used to it, it's a must have...

Marc

mhquake said...

Fog is something that might happen but right now it's not on the list of potential features. It will certainly be easier to implement once I complete the switchover to fixed, although it could probably be easily implemented in the current release by hacking the shader files.