Part 3: Learning the Programmable Pipeline

Published June 28, 2005
Advertisement
Evening all, Another entry charting the initial steps of my messing with the Direct3D programmable pipeline. Remember: You can catch up on the whole thing as a single document here

For those people reading this it will probably be useful if you know what resources I'm using. There are bound to be a number of ways you can develop/learn the programmable pipeline, but as of current I'm using the following:

Printed Material
I usually do all my learning from digital resources, for the simple fact that the internet is usually an amazingly good, free, resource. However, for this I decided to get myself a book. There are loads to choose from, and after browsing a few reviews, listening to some recommendations I settled for the following title.



At the time of writing this, it is priced GBP20.96 but came to around GBP23-GBP24 once delivery was included. I went for this title for two main reasons -

Firstly, I own quite a few CRM published titles and I've always been impressed with the quality that they have to offer. Even though I have spotted at least three typo's in the first 40 pages of the above book!

Secondly, Wolfgang Engel's name seems synonymous with books on pixel and vertex shaders. He's the author of a couple of other titles, and also the current editor for the ShaderX series of books.

I opted out of the ShaderX series as a first text because, to be honest, they don't look like they'd cover what I want - when I've learnt more about shaders (such that I could call myself an intermediate level shader programmer) I'll definitely pick up a couple of them. The first ShaderX book seems targetted at beginners, so might well be good but it also seems to be a bit dated now.

Since getting the book delivered this morning I've read about 40 pages and I'm liking it so far - it's covered the right things in the right order so far, which can only be a promising sign.

Digital Material
The internet is a great resource, as ever - Google is your friend - and all that.

I've already found a few good sources of information, firstly I'm hoping that the people in the GameDev.Net DirectX forums will be able to answer the odd question. My next resource is going to be the slides (and exercises) from the Microsoft run HLSL workshops at SIGGRAPH, GDC and Meltdown events. They can be downloaded, for free, from this page.

The next resource is going to be the DirectX SDK - theres various bits and pieces in the helpfiles but of primary interest are the various samples included as part of the SDK:
  • BasicHLSL - As the name implies, the basic stuff
  • CompiledEffect - A process where you can load D3DX Effects from binaries, presumably so you don't have to ship the source code with the final release
  • EffectParam - Parameter configuration is a big part of effects by the looks of things
  • FragmentLinker - An optimization process to take bits of shaders and create a final shader that matches the underlying hardware as best as possible
  • HLSLWithoutEffects - A good sample to get my head around HLSL before embarking on the effect framework
  • StateManager - Another optimization process aimed at reducing state changes


Software and Hardware
Obviously, software is a necessary part of the process! Although, for the most part this doesn't affect the learning process I'm registering it here should it cause any issues...

I currently have this software:
- Microsoft Windows XP Professional (With Service Pack 2)
- Microsoft Visual Studio .Net 2002 Enterprise Edition
- Microsoft DirectX 9.0 SDK (December 2004)

Because of the hardware dependencies that the programmable pipeline has, the following is my actual setup:
- Intel Pentium IV 3.06ghz CPU
- 1024mb DDR RAM
- ATI Radeon 9800 Pro (128mb)

For those who aren't familiar with the hardware side of things, my Radeon 9800 will limit be to the 1.x and 2.0 shader models - it does not support shader model 3.x. Hopefully this won't be a problem, but if it does I can always use my research machine at the university (equipped with a GeForce6600).
0 likes 3 comments

Comments

Daerax
Nice, nice. Interesting stuff - btw, Daerax > jollyjeffers < Spongebob Squarepants

EDIT - corrected blatant mistake... I suck at math.
June 29, 2005 03:25 PM
jollyjeffers
Quote:Daerax > jollyjeffers < Spongebob Squarepants.

[lol] but what is this "spongebob squarepants" you talk of??

Jack
June 29, 2005 03:28 PM
Daerax
June 29, 2005 03:36 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement