Thursday, June 16, 2005

Me Like Shaders *Grunt*

The title of this post
sums up most of what I'll be discussing, so if you don't like long-windedness 1) why are you at my blog? and 2) just read the title once or twice and be on your way.

I'm not ashamed to say that the concept of shaders took some time for me to understand. And I'm sure my knowledge of them is extremely sparse. Most of what I've found on the Internet assumes a solid background in programming and shader concepts.

I've read about two basic types of shaders: pixel and vertex. There may be more out there, I'm not sure. I've seen reference to surface shaders but can't tell if these just use techniques from the other two.

Here's a pretty good breakdown of concepts, but it's still kind of confusing. "Pixel shaders often have to be "driven" by the vertex shader." Hm?

My own concept of a shader (and forgive me if it's stupid, wrong, awkward or all three) is that it determines an object's final appearance in a game. It is essentially a method of image-processing, and it seems to me that the difference between a shader and simply rendering a scene is the idea of reactivity. That is, a shader contains properties that will be expressed visually under changing conditions.
And I fucking love shaders.

The thing I really love about them is that they make my games look great without substantially impacting system performance. I play most stuff in 800x600 and am completely happy with the results. World of Warcraft uses low-polygon models and relies on scene composition, evocative textures and simple-yet-effective shaders to present a gameworld that still makes me stop at times and mutter, "Damn, that's pretty."

Half-Life 2 actually made me say the phrase, "See how they make this tin roof look just like a rusty, corrugated tin roof?" Then I spent about five minutes moving back and forth and watching how light played across its surface. And said similar phrases throughout the whole game.

I'm not trying to suggest that every game needs them or that throwing them all over a game will somehow improve it. Just that, when used in a manner befitting their abilities, they make me feel like I could just leap into my monitor. The knots on my forehead attest to that.

Which, of course, brings us to the oft-linked "Graphics Don't Matter (and other assertions)" post by Andrew Phelps.

I agree with a lot in that post. I definitely don't think he's saying anything world-shaking, but maybe that he's saying some obvious things that often get denied by the "Gameplay trumps all" side of the fence. His conclusion, where he calls for balance is, while 'duh', presented well and reasonably. The Buddha would approve.

But, of course, there shouldn't really be any kind of Graphics/Gameplay split. Other than a few voices, I haven't heard many gamers taking the stance that graphics are completely irrelevant in this industry.

Where I get irked, however, is when a game presents itself as a vehicle for its graphics. I feel the same way when a movie presents itself as a special-effects demo. Visuals are not worthless, by any means, but unless your only goal is presenting a purely visual aesthetic experience, then there must be some other substantial element(s).

The phrase 'eye-candy' is often tossed out, and can be apt in certain situations. In games where the graphics are supposed to be the fundamental experience and the gameplay is so sparse as to be almost nonexistent, sure. A game like Dragon's Lair. I can't really think of any modern games where this would apply, however. I see many more examples of 'game-candy' (which sounds like a new line of deer-flavored Skittles) - short, sweet experiences based around simple concepts. Just roll over to MSN games or Popcap.

I propose the phrase 'eye-dessert' to refer to particularly awe-inspiring game graphics. This phrase attempts to illustrate that graphics, while sweet and rich, do not themselves make a meal. And, of course, that the best graphics are those that compliment the other courses.

Back to shaders for only a second.

Because I am a glutton for tools I can't possibly comprehend, I went ahead and downloaded a whole bunch of shader stuff off Nvidia's site. The stuff is free! As in beer!

No comments: