Tuesday, January 5, 2010

Alias Models are Done

I bit the bullet and did the batch submission of multiple alias models in a single call using vertex indexes thing. Unfortunately it didn't have the full desired effect in ne_tower; there is still one scene where framerates fall a good bit, which is when you're right at the bottom of the tower (after the start passage) looking up and around. Even so, I only drop from 70-odd to 35-40, which is not that bad considering the huge overdraw in this scene, and also considering that I was getting 23 or so a few days back. I'd still like 50 though. (For the record, I've seen FitzQuake drop below 10 with this scene, on the same hardware. Not to knock FitzQuake, but to give an idea of the scale of performance increase I'm getting here).

What I'm really proud of with this map is the work done to get the huge cogs drawing efficiently. These were a bitch, and just looking at them murdered other engines I tested in. I lock at 72. (Huge cheesy grin.)

Of course the firefight at the end of that map is going to be totally silly, but I haven't really gotten round to stress-testing the engine with that yet. What I have done is flown around the general area using noclip/god/notarget, and confirmed that framerates also lock at 72 here.

What's really outstanding now is to go back and begin with sky, then work up through the draw order cleaning out a lot of the experimental/temp code I had written while building this up. There will also be bugs to be fixed and possibly more efficient ways of doing some things to be implemented (especially sky and water). I need to implement r_hlsl 0 water too, then take a good look at particles and see can I do anything better with them. I'll probably be writing about my woes with particles by early next week.

Bringing on the rest of the 1.7 feature set also still needs to be done, as well as some other items not specifically related to the renderer that I've been putting off while working on this. I'll write about those when I come to do them as I have some plans for a few things.

However, right now I'm thinking that I'll probably release the first alpha version incomplete, without those last items. Exactly how incomplete it's going to be remains to be seen, but I'll reveal all when the time comes (translation: I don't know yet).

I've been dangling this in front of your faces for long enough now, so as soon as I'm happy that it's not going to crash on you, and that it can at least do most of what GLQuake does, I'll put it out. Expect news on how soon that's going to be over the next week or two.

As I've said before, this will be followed by the beta, then 1.8.0 final. I have specific intentions for each of these testing stages that I'll also reveal when the time comes.

1 comments:

Coranth said...

Damn... you just keep coding, and coding, and coding... and your Quake Engine just keeps growing, and growing, and growing... When you sleep, do you dream in Assembly and "C"? j/k :)

I can't wait to play the new DirectQ when you release it!