GLSL
GLSLコード内における変数の宣言・使用方法は、C言語でのそれに似ている。
変数の修飾子は4つある(以下バーテックスシェーダー、ジオメトリシェーダー、フラグメントシェーダーをそれぞれVS, GS, FSと示す)。
const 変化しない。
uniform 全てのシェーダーで使用可能なグローバルな読み出し専用変数。
in 入力変数。VSではOpenGLから渡される頂点情報セットを表す(旧attribute)。GSではVSによって計算された頂点情報セット、FSではVSまたはGSによって計算された頂点情報が補間された値を表す(旧varying)。
out 出力変数。 VSではGSまたはFSへ(旧varying)、GSではFSへ渡す頂点情報セットを表す。FSでは最終的にピクセル単位で出力する色情報を表す。
inout 入出力変数。
GLSLは、C言語に見られるif/else if/else、for、while、do-while、break、continueなどの繰り返しや分岐といった制御文もサポートしている。
いくつかの組み込み関数(ビルトイン関数)のほか、ユーザー定義関数もサポートしている。GPUベンダーは、必要に応じて組み込み関数の実装をハードウェアレベルで最適化することもできる。組み込み関数の多くはexp()やabs()のようなC言語の標準ライブラリで見られるものとよく似ているが、一方でsmoothstep()やtexture2D()のようなグラフィックスプログラミングに特化しているようなものもある。