シェーダ 【shader】
シェーダは3DCGの描画(レンダリング)処理の過程で、物体の変形・移動、空間内での位置の決定などの演算が済んだ後の終盤で用いられる。表示する3Dモデルの画面上での具体的な見え方を決定するための様々な処理を行う。
用途や役割によっていくつかの種類があり、よく用いられるのは、モデルを構成する面の頂点の画面上での位置を決定する「バーテックスシェーダ」(vertex shader:頂点シェーダ)と、面を構成する各画素の実際の表示色を決定する「ピクセルシェーダ」(pixel shader)あるいは「フラグメントシェーダ」(fragment shader)である。
処理系によっては、プリミティブの加工を行う「ジオメトリシェーダー」(geometry shader)や「テッセレーションシェーダー」(tessellation shader)など、これ以外の処理や効果のためのシェーダが利用できる場合がある。処理系によって同じ処理を行うシェーダの名称が異なる場合がある。
プログラマブルシェーダ (programmable shader)
従来、主にOpenGLやDirectXなどのグラフィックスライブラリが提供する、機能や処理内容があらかじめ固定されたシェーダが用いられてきたが、近年ではGPU(グラフィックスプロセッサ)の演算ユニットを利用して開発者が独自に開発したシェーダプログラムを実行できる「プログラマブルシェーダ」が一般的になり、柔軟な処理が可能となっている。
プログラマブルシェーダの開発には、専用のプログラミング言語であるシェーディング言語を用いることが多い。米NVIDIA社の「Cg」のようにGPUメーカーが自社製品向けに提供する言語と、OpenGL規格の一部である「GLSL」(OpenGL Shading Language)のように特定の製品やメーカーに依存しない言語がある。