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っぽさが抜けきらない気がするなぁ。もっと研究が必要。
EASTLがすごい件
via FumuFumu-Q
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
intrusive container実装とかfixed_vectorとかpush_back(void)とか、他にもSTLに違和感を感じているひとがいたみたい。