RenderMan 的シェーダ言語

あとで書き直す

RSL的シェーダ言語にはちょっと抵抗があるなぁ。

  • 物理的な特性なのか、特殊効果的な強調なのか区別できない、混ざった形で記述されている。
    • 特殊効果的な強調はfirst-ray passでは許されるけど、GI計算で計算が発散する要因になりうる。
  • アルゴリズム記述と、物質特性の記述がごっちゃになっている
    • レンダリング方程式がシェーダ上に書かれるのはおかしくないか。
    • eg. illuminance loop
  • 無駄に自由度が高い
    • 最適化を妨げる。再利用性が失われる。etc.

RTSL: a Ray Tracing Shading Language
Steven G. Parker, Solomon Boulos, James Bigler, and Austin Robinson.
To appear IEEE Symposium on Interactive Ray Tracing 2007
http://www.cs.utah.edu/~boulos/research.htm

をななめよみしてみたけど、RSLからilluminanceループを引き継いでPhongマテリアル定義ってあたりで同じ問題を引き継いでる気がする。ただ、後ろの方でMaterial定義はshade()とBSDF()と分けた関数があったので、特殊効果と物質特性の分離は実装されてるのかも。全文に目を通す必要あり。

ここら辺の問題をnytrのアーキテクチャで解決しようとしているのだけれど、まだまだRSLっぽさが抜けきらない気がするなぁ。もっと研究が必要。