Monday, May 2, 2011

Learning HLSL, and D3DX updates too often

If you want to learn HLSL, I highly recommend ShaderX2: Intro & Tutorials, specifically the article "Introduction to the DirectX High Level Shading Language".  The book, along with a couple of the other ShaderX books, has been made available for free over at http://tog.acm.org/resources/shaderx/ so you don't even need to purchase it!  You can also find that specific article on the MSDN at http://msdn.microsoft.com/en-us/library/ms810449.aspx.

I plan on avoiding D3DX in future projects.  There are of course the overhead and inflexibility concerns, but my main motivation is the fact that it gets updated much more frequently than DirectX.  Now, this isn't a bad thing if you are releasing a final product with an installer and everything, since you can package in the DirectX updater, but it is a real pain to deal with if you are just releasing demos.  The demos are usually packed up into a .zip file without an installer, which makes things easier on both the user and myself.  The problem I have encountered is that most users do not keep their copy of D3DX up-to-date, while I usually have the latest version.  This requires the user to install the update, either by downloading a separate "dependencies" file along with the demo or getting the update directly from Microsoft.  A lot of people don't want to bother doing that.

I only use D3DX for creating textures, so avoiding it won't be that problematic overall.  However, I will need to brush up on my bitmap format knowledge and figure out how to use libpng.

Today marks the last day of the "knowledge" phase of the R&D I am doing.  I will be entering the "experience" phase tomorrow, which involves actually using the information I learned.  The point of the "experience" phase is to get me more comfortable with the new techniques, and iron out the first big wave of unforeseen problems which inevitably rise up when doing something for the first time.  On a side-note, I suppose calling these the "research" and "development" phases respectively would be more fitting, but I like the more general feel of the other set of names.

No comments:

Post a Comment