Euhm en fait quand tu programmes en C++ par exemple, ton code est transformé en binaire, et sera exécuté par ton CPU ( Central Processing Unit), les langages de shader sont des langages qui te permettent de programmer, de produire un ´code binaire´ qui ira au GPU ( Graphic Processing Unit, le CPU de ta carte graphique quoi). Il existe deux unités de traitement dans ton GPU, le vertex processor et le fragment processor, dans le premier on fait executer nos vertex shader, dans le second on fait effectuer nos pixel shader...
Le langage Cg a été inventé par nVidia, c´est un HLSL
High Level Shading Langage
un langage de shader haut niveau, qui te permet de donner des instructions a ton GPU mais dans un langage proche du C ( Cg
´C for Graphics´ ) , il existe d´autres langage comme celui ci, notemment le HLSL de Microsoft, et le GLSL d´OpenGL...
Voilà en gros c´est ça...