These are going to change the way DirectQ looks and how fast it runs so I want to shoot them out to the floor before doing anything.
First one is that I'm thinking of removing texture compression. I'm really starting to notice some quite severe compression artefacts on certain textures, and visually DirectQ compares disfavourably to other engines as a result. The brick texture on the floor of the start map is one example here; with texture compression it just looks messy and ugly, whereas without it looks more solid and clean. The conclusion is that Quake's low resolution textures just don't behave too well with texture compression enabled.
The downside is that there will be a loss of performance as a result; even a 64 x 64 texture will give a faster engine with texture compression enabled than without. I need to measure this with big maps to see how bad it's going to be, but right now I'm increasingly of the opinion that the trade-off just isn't worth it.
Before you say it, with earlier versions of the engine I had provided a cvar to let you switch it on or off. But owing to the way Quake caches textures it's not an immediate change; at the very least you would need to reload the map, worst case is restart the engine.
There have already been cases where I have had to remove compression from certain textures - the 2D HUD and menu graphics for example - owing to the quality loss being unacceptable. Doing a direct with/without comparison indicates that it's a global factor, not just something confined to these textures.
(Before you get too worried: texture compression is only one of the factors that give DirectQ it's high performance, and is probably the least significant of those. We're not talking about scenes that used to run at 200 FPS suddenly grinding down to 20 FPS here, more like 195. It's still going to be faster than 1.8.4 was.)
The second one is that I think DirectQ is too bright. This is a result of the fact that I apply the same default gamma scaling to the Quake palette as GLQuake does, but DirectQ is really the only engine that does this, and there are places where it really stands out badly. It also loses a certain amount of precision in the palette. It never really worked well with external textures either, and I had to resort to some evil hackery (including slowing down external texture loading quite a bit) to get it consistent.
This is probably more of a no-brainer to be honest. Brightness is a factor influenced by many things, including your video card, your monitor, the time of day, the lighting in your room, and even your eyesight. There is no "one size fits all" value here, and trying to find one is just an exercise in futility. However, doing it will give more of an immediate visual change than removing compression would.
The proposal is to remove the gamma scaling. If you want DirectQ to look brighter (or darker) you can always just use the brightness slider in the menu to find a value that works well for you.
In both cases I am inclining very strongly towards doing what I have proposed. Both cases involve some kind of trade-off, but you really do need to balance the pros and cons here, and it seems to me right now that the pros of removing them far outweigh the pros of keeping them.
Update:
OK, I've pretty much decided to keep the gamma scaling. Having run it without on a few different machines so far, it's just too big a difference, and too far in the opposite direction.
Texture compression is still a candidate for removal. To illustrate better, and because pictures tell more than words, here's an example of what I mean. The left-hand side has compression, the right-hand side doesn't. (You may need to click on this for the larger image to see it better).
Some benchmarks also. timedemo demo1 currently gives 328 FPS with compression and 324 without. The (in)famous ne_tower scene currently gives 100 FPS in both cases, no difference. Obviously in this one the bottlenecks are elsewhere and having texture compression enabled does nothing to help. This is really swinging me more towards removing it.
Sunday, July 11, 2010
Some proposed changes
Posted by
mhquake
at
3:01 PM
Subscribe to:
Post Comments (Atom)
2 comments:
Leave it without compression; anyone who needs compression that much may probably turn it on in their video card driver's options anyway.
Getting rid of it sounds good to me.
Post a Comment