AOVsで楽をしよう!!

○AOVsとは
AOVsはArbitrary Output Variablesの略です。基本は同じでも各ソフトで名称が異なりArnoldはAOVs、VrayはRenderElements、MentalRayはRenderPassesと呼ばれるものがAOVsです。
CGは複数の計算要素が組み合わさって最終画が生成されますがその計算途中の要素を出力してコンポにも使用しようというのがざっくりとしたAOVsの概要になります。

○AOVsを活用するメリット

・レンダリング時間の短縮
以前は要素ごとにレンダーレイヤを作成していましたがAOVsを使えば一回のレンダリングで済み時間を短縮することができます。もともとmasterbutyを計算するために内部で生成したものを切り分けているだけなので要素を増やしても大きく計算時間が増えることはありません。AOなど新規に計算が必要なものはその分が増加するので要素の計算方法に注意しましょう。

画像1

AOVsでは上図の素材を一回のレンダリングで出力できます。
たとえば一枚5秒でレンダリング出来る場合、AOVsなら5秒、レンダーレイヤなら5秒×要素数となるのでAOVsを活用すればレンダリング時間の短縮につながります。
※レンダーレイヤでも複数の要素をまとめて出せるがAOVsほど簡単に出せないので割愛してます。

・レンダリング時間の短縮
最近のレンダラーでは主要な要素のプリセットが既に用意されているのでリスト欄から使用したい要素を移動させるだけで出力できます。便利だね。

画像2

・要素ごとに分析できる
最終出力(masterbuty)は複数の要素が組み合わさって計算されたものです。これだけをみているとどこに問題があるのか?何が原因でノイズが発生しているのかの判断がしにくいので各要素ごとに簡略化して分析することで解決への時間を短縮できます。
以前はcolorテクスチャだけだったCGも反射やIORなど複数の要因で作成する手法に変化してきてるのでこのように分解して考えると楽になりますね。
Arnoldは各要素でサンプリングを設定する方式なのでどの要素のノイズかを特定する事も重要です。
詳しく解説しているサイトがありましたのでご紹介:
https://area.autodesk.jp/column/tutorial/3ds_max_kitchen_stadium/maxtoa-04/

・オーバーライドしないのでデータが壊れにくい
Mayaのレンダーレイヤでマスク用にマテリアルをオーバライドを多用するとデータが壊れた経験はありませんか?またどのオブジェクトにアサインするんだっけ?とか。MskID等を使用すればいちいちマスク用の赤や青のマテリアルをアサインする必要が無くなります。

・コンポジットで調整しやすい
一番の理由が後からの調整のしやすさです。
理想はレンダリング画像=最終画といわれていますが(某ライトキャラの会社とか)一般的なフローではCGソフトから出力したレンダリング画像をコンポジットソフトで調整することが多いです。
コンポジットの工程からレンダリング工程に毎度戻っていたら時間が足りません。事前に要素ごとに出力しておけばそれを利用して時間の短縮につながります。

画像3

たとえばreflectionを無くしたい場合、MasterbutyからReflectionを引き算すれば除外することができ、引き算する値を50%にすればReflectionを半減させた画を再レンダリングせずに作成できます。初めからreflection無しの素材も作れますがその場合はReflectionの半減などは調整は出来ません。
ほかに人肌などをMasterbutyで調整すると全要素に影響しますがSSSを一度減算後、調整したSSSを加算することでSSS部分にのみコンポジットで調整が可能になります。やりすぎ注意ですが。
ケースバイケースで使いどころを考えて素材設計を行うことで余計な作業時間を削減できます。

各要素の計算式は公開されているのでそれを利用して素材数を減らすことも出来ますね。
Vray:https://docs.chaosgroup.com/display/VRAY4MAYA/RGB_Color
Arnold:https://docs.arnoldrenderer.com/pages/viewpage.action?pageId=98631714

○追加のAOVs

・RGBmsk
個別に調整する用のRGBマスク素材。昔はレンダーレイヤでマテリアルをアサインして作っていましたがIDを作成しておけばマテリアルオーバライドをせずにマスク用素材を作成できます。
レイヤでマテリアルオーバライドもしないので何故かマテリアルが壊れたとかも発生しませんね。

画像4

・Arnold
AOVsに専用のRGBマスクは無いのでCustomAOVを作成しSGノードのAOVsスロットから塗りたい色のマテリアルを挿す。挿す物にテクスチャも張れるので個別にAOなど組み合わせもできる。MentalrayのwriteToColorBufferみたいな使い方が出来るので応用が効く。
・Vray
Multi_MatteエレメントでRGBに対応するID番号を設定後、マテリアルなどにAddAttributesで番号を割り振ってあげる。Objectとmaterialの二つのIDを持てるのでうまく使い分けると楽。IDのみでコネクションは必要ないがRGBしか出せない。

※cryptomatteが対応してるのでコンポジットで使えるならこちらの方がいいかも。

・SelectLight
ライトごとの素材を出せばライトの明滅アニメーションなどをコンポでつけることができる。エフェクトの照り返し等に良く使います。

画像5

・Arnold
ライトのAOVLightGroupからグループを作成しCustomAOVに流す。
・Vray
Light_Selectエレメントに切り分けたいライトを接続する。

この記事が気に入ったらサポートをしてみませんか?