I’m lagging way behind the technology curve and so far I haven’t done anything at all with shaders. In fact, I really don’t understand much about them at all. I now have a couple of free days here at work and would like to take a ‘Shaders Crash Course’. Where should I start? Is there a good book that would hold my hand and lead me through all the issues? Is there a better resource on the web? Where did you start at when you first started learning about shaders?
I got my hands on my friend’s Addison Weseley “OpenGL Shading Language” - that was all I needed.
Instead of ordering a book and waiting for it you could use google - I searched for “GLSL tutorial” and first page found is this one: http://www.lighthouse3d.com/opengl/glsl/
This page is very good - it has everything described. If you read it carefully then you wil know almost everything you need to know.
When I started I had a basic idea what shaders are, so I only needed to learn the API and shading language.
Did you learn by perusing that site?
No, I relied entirely on the book, but I still recommend you that tutorial.
The book has one advantage over tutorial - you will find a list of all built-in variables and functions. This is very helpful.
As for contents of the book - it’s complete, compact and accurate in my opinion. Complete, because nothing important is missing there. Compact, because it doesn’t take too much time to get through this book. Accurate, because I haven’t found a single conflict between this book and the specs when I had doubts. When I wrote my code by this book and it didn’t work then it was a driver bug (3 years ago there were lots of bugs in GLSL implementations).
For example - most tutorials won’t say that you can call glDetachShader after you link your program - that’s because it would destroy your program on ATI GPU’s.
The same way, most tutorials won’t say that you should use glBindAttribLocation, because NVIDIA has some locations reserved.
So, the tutorial is shorter, and you don’t have to wait for it - it can get you started right away.
The book will arrive in a few days and then you will fortify your skills and knowledge.
One more thing - you can skip the whole API thing and use tools like Shader Designer ( http://www2.typhoonlabs.com/ )to write your own shaders without creating your own OpenGL application with support for shaders. This way you can avoid learning everything at once.