シェーダー
プロダクションレンダリングは、静止画あるいは動画の生成が最終目的であるが、動画の場合は複数枚の静止画をつなぎ合わせて最終的にコンポジットを行ない、動画を作り出す。
リアルタイム用途と比較すると、プロダクションレンダリングでは時間や資源の制約が少ない。例えば、映画作品の1シーンをレンダリングするために数時間から数日をかけ、高品質な映像を作り出してもかまわない。レンダリングのための膨大な一時情報(中間計算結果などのキャッシュデータ)がコンピュータの物理メモリに収まりきらない場合でも、ハードディスクなどの二次記憶領域に退避してレンダリングを続行することもできる。
プロダクション用途のシェーダーでは、時間はかかるが高品質でリアリティの高い結果を生成できる、レイトレーシングなどのより厳密な大域照明(グローバルイルミネーション)ベース・物理ベースの陰影計算モデルが用いられる。例えば、PIXARのRenderManはグローバルイルミネーションをサポートしている。
また、物体同士の相互反射光の計算や、ある物体から別の物体へ投影されるシャドウ(影)の計算は、シーン内のライト(光源)の数に比例して時間がかかるようになるが、プロダクションレンダリングではデザイナーの望む数だけ自由に光源を配置することができる。
GPGPU向けの汎用APIとして代表的なものはCUDAとOpenCLだが、OpenGL 4.3以降、OpenGL ES 3.1以降、およびDirect3D 11以降では、主にグラフィックス連携を重視したGPGPUのためのコンピュートシェーダー(Compute Shader、演算シェーダー)が搭載された。コンピュートシェーダーは前述のグラフィックスパイプラインとは独立して動作することのできるステージである。なお、コンピュートシェーダーは座標変換や陰影計算にとどまらない汎用計算が可能となっているため、「シェーダー」という命名はほかのシェーダーステージに合わせた便宜上のものである。Direct3Dのコンピュートシェーダーに関しては、Direct3D APIを含めた総称としてDirectComputeと呼ばれている。
コンピュートシェーダーがCUDAやOpenCLと比較して優れている点として、Direct3D(OpenGL)リアルタイムグラフィックスパイプラインとの連携がしやすい(シミュレーションの実行と可視化に向いている)、Direct3D/HLSL(OpenGL/GLSL)をすでに利用している場合は修得が容易である、などが挙げられる。