RenderMan Shading Language

この項目「RenderMan Shading Language」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。（原文：en:RenderMan Shading Language）
修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。（2021年3月）

|

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

ラスタライズ|

* Zオーダー法
* Zバッファ法
* スキャンラインレンダリング（英語版）
* Reyesレンダリング（英語版）
* 遅延シェーディング
* ステンシルバッファ
* タイルレンダリング（英語版）

その他|

* ラジオシティ
* ニューラル・ラディアンス・フィールド
* ガウシアン・スプラッティング
* ライトマップ（英語版）

ライティング/
シャドウイング|

* ピクセル単位ライティング（英語版）
* イメージベースドライティング
* 球面調和ライティング（英語版）
* シャドウマッピング
* シャドウボリューム（英語版）
* ボリュームライティング（英語版）
* セルフシャドウ（英語版）

シェーディング|

* シェーディング
* シェーダー
* シェーディング言語
* GLSL
* HLSL
* RSL
* OSL
* 物理ベースシェーディング
* 測定マテリアル
* 非写実的レンダリング
* セルシェーディング
* グーチシェーディング（英語版）
* 古いシェーディング手法
* グーローシェーディング
* フォンシェーディング

サンプリング及び
アンチエイリアス|

* マルチサンプルアンチエイリアシング（英語版）（MSAA）
* スーパーサンプリング
* 超一様分布列（英語版）（LDS）
* 時間的アンチエイリアシング（英語版）（TAA）
* 高速近似アンチエイリアシング（英語版）（FXAA）

レンダリングAPI|

| ハイブリッド|

* Vulkan
* Direct3D
* DirectX Raytracing（英語版）
* Metal

|

ラスタライズ|

* OpenGL
* OpenGL ES
* WebGL
* WebGPU

レイトレース|

* OpenRL（英語版）
* OptiX（英語版）

レンダリング
ソフトウェア|

* Arnold
* Cycles
* V-Ray
* RenderMan
* Indigo Renderer
* Maxwell Render
* LuxCoreRender
* Mental Ray
* Iray
* Octane Render（英語版）
* 3Delight

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています（PJ:コンピュータ/P:コンピュータ）。

|

* 表示
* 編集