シェーディング言語
RenderManシェーディング言語 (しばしばRSLないしSLと省略される) は、RenderManインタフェース仕様で定義されており、プロダクションレンダリングを行うのに最もよく使われているシェーディング言語である。また、この言語は最初に実装されたシェーディング言語でもある。
この言語は6つの主要なシェーダーのタイプを定義している。
Light source shaders 光源上の点から照射面上の点への光の色を計算する。
Surface shaders 照射されるオブジェクトの光学的特性モデル。入射光と物体の物理的特性を考慮することにより、照射点における最終的な色と位置を計算する。
Displacement shaders は表面の図形をその地点の色に独立して操作する。
Deformation shaders 全体の空間をある定義された図形に変換する。唯一RenderManにのみ実装されているAIR rendererは実際にこのタイプのシェーダーを実装している。
Volume shaders ボリュームを通して際の光の色を操作する。これらはフォグのような効果を生み出す。
Imager shaders 色を最終画素値に変形する。これはイメージフィルタのようなものであるが、imager shaderは量子化前のデータを操作するので、出力デバイスに表示するよりもより広いダイナミックレンジを持つ。
NVIDIAによって開発されたこの言語は、簡単かつ効率的にプロダクションの作業パイプラインを統合できるようにデザインされた。この言語の特徴はAPI独立であることと素材管理を改善する非常に多くのフリーなツールからなっていることである。
CgはOpenGLおよびDirect3D両環境で動作するプログラムを記述できる。2012年4月を最後にバージョンアップは終了し、開発者へのCgランタイム自体の提供自体は継続されるものの、将来の新しいハードウェア機能をサポートしないため、新規開発での採用は推奨されていない。なお、CgはNVIDIAがMicrosoftと緊密に協力して開発した言語であるため、HLSLと似た構文になっており、ある程度の互換性も確保されている。
最初のCg実装はハードウェア部を抽象化するが故により制限が多かったが、それ以前の方法に比べても革新的であった。Cgという言語自体は、最終製品にはめったに使われることはなかったが、より新しいシェーディング言語へのつなぎとして生き残っており、Adobe Photoshop、MayaやLightWaveでの採用など、主にデジタルコンテンツ作成現場では一定の地位を確立している。なおPlayStation 3の標準シェーディング言語はCgであり、他にもAAAタイトルWindowsゲームやUnityのようなゲームエンジンでも採用実績がある。
Cgの特徴としては「コネクタ」、つまり様々な処理ステージを結びつける特別なデータ構造として使われることである。ここでのコネクタとは、アプリケーションから入力されたデータを頂点処理ステージに受け渡し、フラグメント処理への入力する際に補間を行う。