Sunday, February 6, 2011

DirectQ Update - 6th February 2011

The base Quake render is now more or less complete. A lot of cleaning up has been done too, but there's still quite a bit of that left. Next step is to start tackling alpha surfaces (alpha water is already done).

I've been only cursorily benchmarking it, as a benchmark of work in progress is not really valid. It does serve to identify any trouble spots where things might have gone wrong though. So far there's no real speed difference, but like I said, it's work in progress. I expect that real benchmarking will turn up minimal difference with ID1 maps but quite an improvement with more complex scenes; especially as there have been a lot of bandwidth savings (this should really help integrated cards).

Brush surfaces are the big saving; in most frames these surfaces are entirely stored in a vertex buffer and no longer need to be updated at all. Other savings were had with MDLs, sprites, GUI stuff, and particles.

I've dropped occlusion queries entirely. Code complexity was one reason, but there were others, including batch breaking. The single buggest one though was realising that the kind of hardware that could benefit most from them doesn't support them, whereas the kind of hardware that does support them doesn't really need them.

Direct3D 9 class hardware is now a must. Aside from the obvious HLSL (Shader Model 2) requirement, there are also other D3D9 features (like multiple vertex streams) being used. As I've said before, this raises the baseline for integrateds to an Intel 915. Recent integrateds (like on netbooks or anything bought within the past 5 years or so) will handle it fine, but this won't run on your cruddy old GeForce 4 MX. Time to spend the price of a few beers on eBay.

That's a trade-off. By raising the minimum requirement I can make use of more advanced features that lead to more efficient and cleaner rendering. Supporting 10-year old hardware has a cost in more than just code complexity; every feature that needs to be written at that level is a barrier to further expansion and enhancement.

5 comments:

Anonymous said...

So, any updates on when 1.9 will be released? It sounds like you're getting into some feature creep here :)

mhquake said...

More like ripping out a lot of the old features and cleaning things up, making them simpler actually.

MichealS said...

It'd be nice if businesses did this with their programs. Instead we see Office suites ranging in GBs, and Adobe's software hundreds of times bigger than they need to be. The last time I installed Adobe Reader it took around 2 minutes to start the program, before I could even think of opening a PDF file. Efficiency of code is definitely nice to see.

mhquake said...

Heh, seconded on Adobe Reader. Certainly a program that needs to be re-evaluated. Have you seen Foxit Reader by the way? Does nothing but read PDFs, more or less fully functional and launches in a flash.

MichealS said...

Yeah, been using Foxit for quite a while now. Infinitely better than Adobe's reader. Things are sounding great for your next release, I can't wait to see the improvements in action =D