AOV interface in RMan

by syoyo

RenderMan、またそれに限らず他の最近のレンダラでは AOV(Arbitrary Output Variable) と呼ばれる、
任意のレンダリング画像の各要素を出力する仕組みがあります.

この機能を使うと、rgb, alpha, z, それ以外にも specular などの画像要素だけを出力することができます.

特に RMan 系はもうなんでもあり!なインターフェイスになっています.

http://wiki.aqsis.org/guide/aov

http://www.fundza.com/rman_shaders/secondary_images/index.html

RMan 系はシェーダ引数の output 変数でどのデータを書き出すか指定するようです.

この利点はシェーダを書けば何でも出せるところで、
欠点は「スペキュラー」要素など、シェーダコンパイラ側(レンダラ側)では判定できないようなコンポーネントを出せないところでしょうか.

ただ、3Delight とかはスペキュラー要素を出すことができるらしい.
たぶん predefined された shader のみとかで、それにはすでにどの要素がスペキュラーかアノテーションが入ったものになっているのではないでしょうか.

レンダラ側としては、「シェーダであとはよろしく、何でも出せるよ」というのは実装するほうは楽でいいのですけど,
せっかくシェーダコンパイラを書いているので、独自の構文解析を加えて「ここはなんだかスペキュラーっぽいぞ」と自動判定する仕組みを作るのも面白いかも.

Advertisements