Thursday, June 24, 2010

Updates for 24th June 2010

I've decided to drop the render-to-texture scaling down for the time being; there are occasional glitches with it where it draws on-screen at actual size, rather than stretching back up. It seems as though I'm not quite syncing some states up properly yet, so rather than complicate matters further while everything is still fairly fluid, it's easier to just temporarily remove it.

I've decided to clamp skybox textures to an absolute maximum of 512x512. I think that given the kind of machine that DirectQ is likely to be used on, that's not entirely unreasonable. Like I said, using a set of 1024x1024 textures for a skybox eats 24 MB of video RAM (less if you support compressed textures, of course) and takes an absolute age to load.

Another 20 FPS have been gained in ID1 timedemos due to some optimizations in transfer of vertex data to the GPU. Unfortunately this doesn't translate into a gain in the big maps where you're geometry-bound, but I have an idea building up that should resolve a good proportion of that.

It's always weird when I'm at this stage, and right now it's reminding me of the time I was bringing the original 1.8.0 up; I know very clearly what needs to be done, but working it around all of the wild and wacky special cases involved with the Quake data formats in a reasonably clean manner is quite challenging, and with plenty of opportunities to take wrong turnings.

Example: I'm currently on the 4th restructuring of the 1.8.5 renderer, and a fifth one is definitely in the works. Right now it uses a hardware capability that's not available on pre-D3D9 hardware, so that has just got to go. Plus there's that idea I mentioned, of which more later...

0 comments: