Best way to learn HLSL

I really want to learn HLSL programming but is really hard to find a good tutorial or complete article / documentation.

Can you suggest me the best way (site, on-line course, book, etc.) (or just share your way) to learn HLSL?

Thank you!

hei kronikle, start here: Of Effects and Shaders.


Tinker with existing shaders, experiment and see the result of making changes, look up what you don’t understand.

Have an idea you want to implement and try to figure it what you need to get it done.

graphics dx11 part, but so far visiting the NODE will give you the most in terms of understanding stuff


Thank you guys!
I’ve already started studying on vvvv site’s tutorial, vvekend vvorkshop and observing/modifying existing shaders and I will continue for sure!
I’ve even already created a patch based on my own shader and I really love this approach, so I want to get deeper on that.
For this reason I’m looking for something that should help me to understand the basics of HLSL syntax.

For example, what is the exact language that uses? The term “C-LIKE” is pretty confusing for me…

It means that is like the C programming language, but it’s not pure C.

dx11 useful links

looks like i can’t add that link directly
on syntax stuff check Documentation > Topics > Graphics > DX11 Useful Links > PDF’s

DX11 Useful links

i can recommend a super basic directx9 book for the beginning

something that can be found cheap on ebay

The language is HLSL (it has different version depending on Direct3D version).
C-like means the syntax is similar to the C family of programming language with variable declarations, function definitions and applications, code blocks etc look like they do in C. Curly braces, statements ending with semicolons and all that.

The language reference is here:

There you will find all details about syntax, built in functions and more.

The language syntax shouldn’t be that hard to learn, specially if you’ve programmed before.

You need to have a basic understanding about how the graphics processes data and the flow of data through the graphics pipeline, what the different shader stages are and how they interact, what the most used built in functions are and what uses they have. Shaders also tend to be fairly math heavy so some knowledge of trigonometry and linear algebra helps.

Best to start with D3D9 level of shaders using only vertex and pixel(fragment) shaders/stages.

You can also exploit that GLSL (OpenGL/OpenGL ES/WebGL shader language) is mostly similar with the same concepts and play around with resources like and learn by porting glsl shaders to hlsl

@antokhio, thanks for the really useful links

@beyon thank you. what I meant with “The term C-LIKE is pretty confusing for me…” is that I needed some more specific definitions, so thank you again.
in the past I’ve tried to look that msdn’s reference but I found it very difficult to consult it and apply the informations on my shader. Maybe I’ve to continue with tutorials and then try again.

excuse my last newbie question… the vvvv’s shader does support exactly the hlsl language documented on msdn’s reference or just some functions?

the vvvv EX9.Effect editor supports HLSL up to shader model 3 and the one from the DX11 pack supports up to shader model 5. so depending on the feature you want to use, you have to open one or the other…