Zacząć od prezentacji potoku renderowania!!!

OpenGL (strumień werteksów) -> Shaders -> Bufor koloru i głębokości

attribute variables - własności werteksu ustalane między glBegin i glEnd
(np. gl_Color, gl_Normal, gl_Vertex)
można definiować własne np. attribute vec3 tangent; attribute vec3 binormal; ale trzeba glVertexAttribARB
w GLSL nie ma semantyk

uniform variables - stałe dla shaderów ustalane w OpenGL (np. czas)
uniform float czas; - w OpenGL trzeba użyć glUniform1f[ARB]

Można definiować funkcje. Nie działa dyrektywa #include

Linki:
http://www.lighthouse3d.com/opengl/glsl/
http://www.lighthouse3d.com/tutorials/glsl-tutorial/
http://nehe.gamedev.net/article/glsl_an_introduction/25007/
