Sunday, November 1, 2009

I'm guessing this is something a few of you won't like

I've just restored the original GLQuake gamma range. What this means is that DirectQ will now apply a gamma of 0.7 to the actual loaded palette entries on startup, which can then be further adjusted by differing values of the "gamma" cvar.

I've been unhappy with DirectQ's handling of lighting and colour for a good while now; while everything did look bright and vibrant it also had a tendency to look kinda washed-out, with dynamic lights in particular looking really poor.

So I was doing some work with the old 1.0 codebase when I observed that the overall look was far more to my taste. The same with some further work on the GLQuake codebase. Some experimenting revealed that the culprit was my use of GDI gamma ramps, which just did not give the same result. Plugging the old gamma back in did it though.

Now, the default value of the "gamma" cvar in DirectQ is and always has been 1. I've personally been adjusting it myself (to 0.7) in order to bring up my brightness, but from the next release onwards there will be no more need to. If you have it adjusted in your config you'll probably need to reset it to 1 and then experiment with values until you find a level you like.

A further consequence is that dark areas in DirectQ will now look a lot moodier, while bright areas likewise look brighter. This isn't some cheap and cheesy HDR effect I've hacked in, this is Quake's intended look as designed by ID. It might take some short time to get used to, especially if you're accustomed to engines (and I include DirectQ in this) that have been doing it wrong.

I'm sorry about that, but I view it as a small price to pay for getting the correct look back.

Fullbrights and overbrights are still supported and are unaffected by this, of course.

5 comments:

Andy said...

I actually look forward to that. Heck yes, that's great news.

"fecess" is my word verification. Priceless, that.

David Boucher said...

I didn't understand any of that at all! All I know is: when I play Quake with no Gamma, it just looks really dark.

Damn... you're like Tony Stark, with this thing, man; he constantly upgrades his armors, whilst you constantly upgrade your Quake, laying all the technical data down for us to see... "Hmmm, if I alter this piece of legacy coding with these statements I can shave a few seconds CPU time off processing the three-dimensional vertices! Jarvis? Hold my calls for today."

=peg= said...

I really enjoy the technical details actually, for it gives the non-expert-coders (like me) some insight in what's going on behind the scenes, without having to look at the source-code for them selves.

Combined with a birds-eye perspective on the decision-making process, this blog makes for a real good read/guide for anyone who is generally interested in game design/development.

mhquake said...

I quite enjoy putting up the techie details. Even if you don't understand them, I like to show that there is a reason behind most of the decisions I make, and if your favourite feature doesn't make it into the engine I figure that you have a right to know why.

Nathan said...

Technical details make your blog very interesting. All entries are well written, and I really enjoy your explanation effort. Good work :)