RenderMan Shading Language

Renderman Shading Language (略称:RSL) はRenderMan Interface Specification(英語版)のコンポーネントであり、シェーダーの定義に使われる。この言語の構文はC言語風となっている。

RSLで書かれたシェーダーは Pixar の PhotoRealistic RenderMan、DNA Research の 3Delight、Sitexgraphics の Air、オープンソースソリューションの Pixie や Aqsis のような RenderMan 準拠レンダラーであれば改変なく使用可能である。

RenderMan Shading Language では、独立関数と5種のシェーダー型(サーフェス、ライト、ボリューム、イメージャー、及びディスプレイスメント)が定義されている。

金属サーフェスを定義するサーフェスシェーダーの例:

surface metal (float Ka = 1; float Ks = 1; float roughness = 0.1;)
{
  normal Nf = faceforward (normalize(N), I);
  vector V = - normalize (I);
  Oi = Os;
  Ci = Os * Cs * (Ka * ambient() + Ks * specular (Nf, V, roughness));
}

シェーダーは Cs(表面色)、N(与えられた点での法線)、Ci(最終的な表面色)などの特殊変数を読み書きすることで、その動作を表現する。シェーダーの引数はモデルの複数オブジェクトにアタッチされる大域パラメータである(つまり1つの金属シェーダーを異なる金属などに使用できる)。シェーダーには戻り値が無いものの、関数は引数を取って値を返すように定義可能である。例えば次の関数はドット積演算子「.」を使ってベクトル長を算出する:

float length (vector v) {
  return sqrt (v . v); /* .はドット積 */
}

参考文献

  • Upstill, Steve (1990). The RenderMan companion : a programmer's guide to realistic computer graphics. Reading, Mass: Addison-Wesley. ISBN 0-201-50868-0. https://archive.org/details/rendermancompani00upst 
  • Apodaca, Anthony; Gritz, Larry (1999). Advanced RenderMan : creating CGI for motion pictures. San Francisco: Morgan Kaufmann. ISBN 1-55860-618-1. https://archive.org/details/advancedrenderma00apod_0 
  • Cortes, Rudy; Raghavachary, Saty (2008). The RenderMan shading language guide. Boston, Mass: Thomson Course Technology. ISBN 1-59863-286-8 

外部リンク

  • Shading Language (RSL)のドキュメント
3Dレンダリング
レンダリング手法
レイトレーシング
  • レイトレーシング
  • パストレーシング(英語版)
  • 不偏レンダリング
  • ボリュームレイキャスティング(英語版)
  • ボリューメトリックパストレーシング(英語版)
  • フォトンマッピング
  • スペクトルレンダリング(英語版)
  • ビームトレーシング(英語版)
  • コーントレーシング(英語版)
  • 分散レイトレーシング(英語版)
  • メトロポリス光輸送法(英語版)
  • Bezier clipping
ラスタライズ
その他
ライティング/
シャドウイング
シェーディング
サンプリング及び
アンチエイリアス
  • マルチサンプルアンチエイリアシング(英語版)(MSAA)
  • スーパーサンプリング
  • 超一様分布列(英語版)(LDS)
  • 時間的アンチエイリアシング(英語版)(TAA)
  • 高速近似アンチエイリアシング(英語版)(FXAA)
レンダリングAPI
ハイブリッド
  • Vulkan
  • Direct3D
    • DirectX Raytracing(英語版)
  • Metal
ラスタライズ
レイトレース
  • OpenRL(英語版)
  • OptiX(英語版)
レンダリング
ソフトウェア
  • 表示
  • 編集