Get the daily SC news wire!

Starcraft II, Shaders and DirectX 10

Posted 23rd Sep 2008 03:08 PM by Kalos

Kalos’ Chronicles >> Starcraft II, Shaders and DirectX 10 >> (Page 1) | (Page 2) | (Page 3)

Shaders.jpg

Starcraft II, Shaders and DirectX 10

Greetings, it has been a while since my last instalment of the Kalos Chronicles. It has been difficult writing this one due to the depths of Pixel Shader technology not being written in any English known to man; but Leord assures me that my efforts are welcome and appreciated (He even promised to buy me Chocolate Fingers, how’s that for encouragement? :D ), so finally we have the fifth part of the Kalos Chronicles.


Shaders and Starcraft II

While there are many approaches to the ever increasing graphical awe and wonder we’re been able to witness as newer and newer games are released in the last ten or so years, one of the most interesting and intricate has to be the heavily developed field of shaders. Indeed, a large portion of the gaming APIs such as DirectX and OpenGL have become dedicated to this specific subsection of the 3D gaming world. It is curiously complicated, and I claim no expertise in this area, but I’ll try my best to be accurate and correct as and how I can be.

StarCraft II is set to push shader use to new extremes not just for Blizzard games but the whole RTS scene. Since the release of WarCraft III the field in terms of graphical capability has been revolutionised. This will be the first Blizzard game to require a minimum Pixel Shader 2.0 as Xordiah has informed us quite a while ago. Shader Models are essentially a language used for setting instructions to create certain effects and enhancements around more simple three dimensional objects. Lighting, shadows, heat warping, water reflections, basically overlaying alterations on to the basic premise of what is there that create a more beautiful playing field and some very impressive graphics.

We learnt from a recent technical leak from AMD (that we were lucky enough to first discover [Editor’s note: Kalos is very humble, HE found it!]) that Blizzard’s designers behind the game have placed an enormous emphasis on the use of shaders. This is perhaps sensible considering the advances in recent hardware. Back in 2002 when WarCraft III was released to the gaming public hardly anyone had graphics solutions even in expensive graphics cards for the day that had any hardware shader abilities at all. In terms of Nvidia graphics cards, the Geforce 3 was the first series to have even the earliest Pixel Shader version equipped for use, a product only released in 2001. As such WarCraft III was in no position to take advantage of the technology’s potential. It simply wouldn’t have been of any real advantage to develop advanced shader specifications that no mainstream player would have until several years after the game had been out on the market for.


So what’s this Pixel Shader Two anyway?

You’ve heard me mention it half a dozen or so times in previous articles, and countless times through other sources outside of this community, but what is Pixel Shader 2.0, apart from an annoying catchphrase?

Pixel Shaders are highly programmable components designed to address and vary the appearance of pixels, changing how they appear in a series of different manners. While this may not be very impressive on an individual pixel, controlling and manipulating groups or sets of pixels, or even the whole screen’s layout of pixels, allows for many illusions to be implemented such as enhanced shadows, increasing the apparent depth through the image on the (firmly 2D) screen, or lighting effects. Use of this form of graphical enhancements has increased dramatically in the last six years, to the point where graphics cards now commonly include dozens of pixel shader processors. If you look at the title image, the left white side is an example where shaders are used on top of models to create additional shadows and feeling of depth. The result is apparent on the right hand side.

However, it is a feature on users’ graphics cards and besides getting the right card, it isn’t something they have to worry about. Many different versions and revisions have been made to create a more complex and technically able shader rendering effect; each of them with their own unique numeral designation, ranging from 1.0 to 4.1, but many graphics cards did not have any such technology built into them. Geforce 2 graphics cards are an example as they were popular as we entered the 21st century but are now antiquated relics of the gaming world with no Pixel Shader hardware in its design.

Pixel Shaders are actually directly associated with another perhaps more common phrase, DirectX. The version of DirectX corresponding with Pixel Shader 2.0 is DirectX 9.0, released in 2002. This is not be confused with DirectX 9.0A or 9.0C or any other version, specifically 9.0. DX 9.0C actually is Shader Model 3.0, not Shader Model 2.0 (to avoid confusion at this point, the Shader Model designation is pretty much synonymous with the Pixel Shader title, very closely related). More on this will be said in a separate section.


Differences in Pixel Shader versions shown in video format and explanation on the inefficiency of using DX10 features on a DX9 production on Page 2.




 1 2 3 >

Comments

You must be registered and logged in to post comments.
Page 1 of 1 pages
BarneyBear
Posted 29, Sep 2008 01:12 PM
(0)
 

Right, this might be a bit late for a comment but I’ll give it a go.

An interesting article I must say, but one thing you might have overlooked (you didn’t seem to mention it in the article) is that all Blizzard games (including those under development) run both on OS X and Windows. In other words; the engine has to be able to render in both OpenGL and DirectX. That said, I have limited experience in programming with either of those two APIs but I’m fairly sure there’s at least a slight difference. I know OpenGL 2.0 is supposed to feature broadly the same functions as DirectX 10, however I’m guessing that this also is a limiting factor as to what shader models are being used.

Anyway, thanks for a well written and interesting article!

Reply
 
BarneyBear
Posted 29, Sep 2008 01:12 PM
(0)
 

Right, this might be a bit late for a comment but I’ll give it a go.

An interesting article I must say, but one thing you might have overlooked (you didn’t seem to mention it in the article) is that all Blizzard games (including those under development) run both on OS X and Windows. In other words; the engine has to be able to render in both OpenGL and DirectX. That said, I have limited experience in programming with either of those two APIs but I’m fairly sure there’s at least a slight difference. I know OpenGL 2.0 is supposed to feature broadly the same functions as DirectX 10, however I’m guessing that this also is a limiting factor as to what shader models are being used.

Anyway, thanks for a well written and interesting article!

Reply
 
BarneyBear
Posted 29, Sep 2008 01:12 PM
(0)
 

Seems like I managed to double post!

Reply
 
BarneyBear
Posted 29, Sep 2008 01:12 PM
(0)
 

Seems like I managed to double post!

Reply
 
Kalos
Posted 29, Sep 2008 01:54 PM
(0)
 

[QUOTE=BarneyBear;6668]Right, this might be a bit late for a comment but I’ll give it a go.

An interesting article I must say, but one thing you might have overlooked (you didn’t seem to mention it in the article) is that all Blizzard games (including those under development) run both on OS X and Windows. In other words; the engine has to be able to render in both OpenGL and DirectX. That said, I have limited experience in programming with either of those two APIs but I’m fairly sure there’s at least a slight difference. I know OpenGL 2.0 is supposed to feature broadly the same functions as DirectX 10, however I’m guessing that this also is a limiting factor as to what shader models are being used.

Anyway, thanks for a well written and interesting article!

Not too late, comments are always welcome, lets me know someone actually reads this stuff and I should continue writing.

Indeed, I should have mentioned the OSX/OpenGL necessity, it would have further eroded the base for a developed DirectX10 mode being reasonable or perticularly better. It was just too long (already had Leord pressing me to cut down further). I mentioned the link in my first article of analysis Starcraft 2 System Requirements, but you are correct, it should have been referenced at least in passing as it is important.

The OpenGL link is perhaps one of the main reasons they’ve had to heavily work on their shaders, not just simply to get good effects but to get them to work in multiple graphical API options, not to mention Shader Model 2.0 can be discribed as being more neck-and-neck with the current OpenGL generation.

I am glad for the comment, it means something that readers are furtherning the ideas here and thinking as they read, and that is brilliant.

Reply
 
Page 1 of 1 pages

Search StarCraft IncGamers

We are Here Where are You?

- StarCraft Videos

Loading...

StarcraftWire's Friends

SC2p.com

(view more)

Link to StarcraftWire with this image:

Syndicate