Advertisement Jump to content
  • Advertisement
  • entries
  • comments
  • views

Part 2: Learning the Programmable Pipeline

Sign in to follow this  


Before I continue with my new project - learning the programmable pipeline, a couple of random comments.

Firstly, I found a perfect quote to put in my forum signiture. Was sent to me by a friend, my understanding is it's from an early(ish) episode of the TV series 'Buffy the Vampire Slayer'..

I'll never leave. Not even if you kill me
- David "Angel" Boreanaz

I bring it up as it seems to sum up my presence on the DirectX forums these days [lol]

At the time of making this journal entry it seems I "own" both of the stickies (Thanks to Coder, mind) and appear to have had the final word on 11 out of 47 topics listed [oh]

Anyway, on with the main point of this entry. Remember that you can read all progress so far from this page

Okay, so before I get down to some actual learning I've given some thought to what I want from this whole adventure. The logic being that if I know what I want from this, that I can focus on the parts that are going to be most relevant.

  1. High level, not low level
    I have a dislike of assembly-level programming, I appreciate that is at times a necessary evil but I usually think to myself "Why are we writing code this way when we could use a high-level language". Consequently I'm planning on using HLSL as much as possible.

  2. Possible future usage
    Obviously, if I'm gonna learn this stuff I want to use it at the end of the day. As mentioned in the introduction, I do know a fair bit about the concepts and theory of the programmable pipeline so I'd like to think that what I want to achieve is at least possible.

    Firstly, I want to explore some aspects of terrain blending - I have a distinct interest in terrain rendering, and the usage of pixel shaders could well be very powerful. Terrain data, for the most part, is static so the possibilities for vertex shaders here are a bit limited - but there might be some scope for enhancing various LOD algorithms.

    The other big thing that has got me all excited graphics-wise in recent times is HDRI (High Dynamic Range Imagery). Being a fairly advanced, and somewhat involved, set of algorithms theres a lot of pixel shader usage in most implementations. I've hacked together the SDK sample(s) to do what I want, but I'd like to take it a bit further.

    I do quite a lot of 2D related work, and there is a fair bit of scope for some funky post-processing effects via pixel shaders and render-to-texture algorithms. With a good understanding of pixel shaders, I can let my imagination abuse the pixels in previously unheard of ways!

  3. Effect files
    D3DX has a lot of very cool shader-related functionality, one of them is "effect files". From my current understanding, these are a fairly high level scripting/configuration tool that you can combine all of the necessary shader goodness with. Seems from the outset that they'll complement HLSL very nicely, so best add them to my list of things to look at..

  4. Shader-related optimization
    Efficient and optimal usage of the various aspects of Direct3D is no small challenge - often it takes a lot of experience, effort and profiling before you can proclaim a top-performing engine. The more efficient it is, the more room you (potentially) have to leverage the power of your GPU to create even better graphics! As such, I want to spend some time with the various shader-related optimization topics.
Sign in to follow this  


Recommended Comments

D3DX has a lot of very cool shader-related functionality, one of them is "effect files"
Oh yes do use these. You can have so much control over not only shaders but the scene too. I built custom semantics and annotations to accommodate resource loading and automatic parameter binding. The DX Effect editor and FX composer both have similar systems.

It would be nice if there were an equivalent for GLSL.

I'll look forward to the optimization part too. [smile]

Share this comment

Link to comment
I like seeing people progress - thats why my favorite game genre is RPG. You pimiping that DX board like it yo b**ch huh, yo.

Share this comment

Link to comment
I'll look forward to the optimization part too.

I've thought of some algorithms for this before (A modified MST and/or travelling salesman), just haven't tried them out yet. Then again, they could well be similar to (or identical) well known ones though!

You pimiping that DX board like it yo b**ch huh, yo.

[lol] Given that I've been playing GTA-San Andreas lately that's even funnier...


Share this comment

Link to comment
If you plan on discarding assembly shaders, don't target shader model 1. I've yet to see an SM1 assembly shader generated from HLSL that I couldn't hand-optimize in some way. It seems to be particularly bad at applying modifiers.

Share this comment

Link to comment
If you plan on discarding assembly shaders, don't target shader model 1.

Thanks for the tip - I'll bare that in mind [smile]


Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!