どうも!Maya太郎です。
昨日、Arnoldに特化した
オートデスクさん主催のウェビナー(ネットで視聴できるセミナー)がありました。
平日14時にネットに張り付いて視聴できるひとが
約200~300人(同時視聴者数)
スケジュールが合わなかったり、ご存じなかったなど、
見逃した方たちにもAREA JAPANのページで後日視聴できるようになると思いますが
■追記■こちらから視聴できます
有益な情報でしたので、皆様にも分かりやすいように
旬ネタのうちに要点をまとめ、掲載しておきます。
Maya太郎のフォローも少し混ぜておきました。(特に青部分)
興味ある方は参考にしてくださいね。
分かりやすいように
実例のサンプル画像など用意しようと思いましたが、力尽きました…
What’s Arnold? ~Arnoldレンダラーとはなにか?基本から説明します!~
■ 開催日時:2017年 1月19日(木) 14:00 ~
▼スピーカー
オートデスク株式会社 新 様・大垣(開発担当) 様
株式会社コロッサス 澤田(ユーザー代表) 様
▼目次
現状のArnoldでのレンダリングについて
Arnoldの特徴とは?
Arnoldのアルゴリズム、パストレーシングって?
Arnoldのレンダー設定
Arnoldのライトの使用方法
Arnoldの基本的なマテリアルの設定
Arnoldの複雑なマテリアルの設定
Arnoldのインスタンスの使用法
クラウドレンダリングソリューション、Zyncとは?
▼現状のArnold(MtoA)でのレンダリングについて
Maya2017ではローカルのレンダリングのみ可能。
他のマシンやバッチレンダリングには、ライセンスが必要になる。
ライセンスがない状態だと、ウォーターマーク付きでレンダリングされる。
(シーケンスレンダーでは連番ファイルでレンダリングできるが、
バックグラウンドで動作しないなど利便性がよくない)
▼Arnoldの特徴とは?
●安定している(落ちにくい、バグが少ない)
非常に大きなジオメトリ、テクスチャに対応。
●シンプル
レンダリング時間が予測しやすい。
UIの設定項目も少ない。(これは実感しています)
●プログラムがきれい(プログラマ向け利点)
シェーダやプラグインの開発がしやすい。
●CPUのコアに比例して計算が速くなる
(コア数の多いマシンが欲しくなる)
●ログの内容が充実している
エラーの原因がわかりやすい。
(例えば、シェーダの記述の何行目がおかしいというように具体的に表示される)
どの処理の部分に時間がかかっているのかもわかる。
→プロダクション向け(ちょっと高度かも…)
▼Arnoldのアルゴリズム、パストレーシングって?
Arnold →ユニディレクショナルパストレーサー
●現実世界
光からフォトンが発生して目・センサーに入る。
●パストレーシング
目からレイを投げて反射させる、光に到達するまで計算する。
目からレイを投げてぶつかった点からライトを探す。
空からの照明に関しては、ある点からランダムにレイを飛ばす際に
計算のリソースを最適化するために光があたったところから重点的にレイの反射を行わせる。
→Arnoldはこのパストレーシングのみ
(他のレンダラーは複数の方式を切り替えて使う物が多く、そこが初心者に理解しづらい点もある。
Arnoldは選択肢がなく何も考えなくてもいいのでフォトリアルCGデビューに最適)
▼Arnoldのレンダー設定
●ログ機能を有効にする
DiagnosticsタブのVerbosity Level をWarning + Infoにするとログをファイルに保存する。
レンダリング中、その経過を記述し続ける。
→クラッシュしてもログがファイルとして残るので原因の調査に役立つ
●ノイズ削減のための手順
Samplingを調整することでノイズの量と計算時間のバランスを取りながら設定を行う。
いくつかにわかれており、ここまで分けているのもArnoldの特徴。
●「Camera AA 」…すべてのレイが増加するので最後の手段にする。
(ヘアやモーションブラーを使用しているシーン等では上げる必要がある)
●AOVの活用
ノイズの原因要素を特定することが重要。
AOVsでディフューズ、スペキュラなど、レンダリング要素別にパスを出力し、
ノイズのおおい要素のパスのサンプル数を調整する。
参考ページ:
https://support.solidangle.com/display/ARP/Removing+Noise+Workflow(英語)
(Maya太郎も今後検証して、ノイズ軽減の効率を上げたいと思っています。)
▼Arnoldのライトの使用方法
Maya標準のライトに対応。
(Arnoldのアトリビュートが追加されてるので、そこでArnold用に拡張された機能が利用できます)
専用のライトもいくつかある。
●ポータルライト
(スカイドームライトを屋内シーンの窓の部分から効率的に配光させるような表現に使うライト。
見た目や使用感はエリアライトに似ているが、
設定はスカイドームライトに依存する、独自の設定は出来ない)
● aiSkydomeLight
Arnold専用ドームライト、IBL(イメージベースドライティング)などで利用。
利用するIBLマップの明度分布に応じたレイを飛ばすので効率が高い。
(明るい部分にサンプルを多く配分する)
背景としてレンダリングされないので
aiSkyシェーダーを別途設定して、背景用の別の手続きが必要。
(ここがArnold特有の通過儀礼の一つ)
表現上、IBL(スカイドームライト)と背景(aiSKy)を異なった画像にしたいことも多いので
そいう場合にこの使い分けは便利。
Lightのサンプル数に関して
ライト側でもサンプル数の設定が可能。、
サンプル数は増やすごとに時間と品質も線形で上がっていく。
ライトに関して、direct diffuse、direct specularのAOVで見て、ノイズが多ければ調整することで
必要な品質を求めることができる。
デイレクショナルライト、ポイントライトは影をぼかさなければサンプルは1で問題ない。
ライトの近くで細かなオブジェクトがある場合は比較的大きなサンプルが必要になる。
サンプル数は通常、多くても3か4でいいらしい。、
▼Arnoldの基本的なマテリアルの設定
●aiStandard
標準シェーダー(髪の毛、SSS以外のものに関してはこのマテリアルで良い)
クロムやガラスなどいくつかのマテリアルプリセットは選べる。
(aiStandardの簡単な設定例)
Diffuse
Roughness 0では Lambartのような結果になる。
Specular
表面がざらざらしているか、つるつるしているかを設定
ArnoldではSpecularを0以上にするだけで、周辺の移りこみが自動で生じる。
(通常、他のレンダラーではReflectionをオンにする必要がある)
つるつるになると回りが映りこむのは自然な現象
Anisotropy(異方性反射)
金属研磨特有のヘアライン表現
特有の模様の方向性はRotation で設定できる。
反射、屈折
ガラスを表現する時にもaiStandardを使用する。
Refrection,Refraction Weightを上げるなどで調整
IOR(屈折率)は水1.33 ガラス1.6ぐらい。
透明表現をする場合、オブジェクトのアトリビュート「Arnold」内の
Opaque(不透明度)のチェックを外し、透明オブジェクトとして扱えるようにする。
レンダー設定でのRayDepthでのレイトレース深度を上げたり
「反射に現れる」「屈折に現れる」系の設定も適切にすることが重要。
(ガラスはプリセットに用意されているので、参考にするといいです。)
●aiHair
髪の毛に関しては、aiStandardを使用すると非効率のためこちらを使用する)
テクスチャマッピング
キャッシュシステムによって比較的スムーズにレンダリングするように設計されている。
内部では独自の.txフォーマットで処理をしている。
他のフェイル形式はレンダリング開始時に自動変換している。
最初にArnoldを始めた人がレンダリングが長いと感じるのは、これが原因。
(あらかじめ.txに変えておくことで毎回のレンダリング時間を短くすることができる。)
プロシージャルテクスチャ
pref(Position reference)を適用することでアニメーションしたオブジェクトに
プロシージャルテクスチャ適用した時のテクスチャの滑りを改善する。
バンプマッピング
aiBumpノードを使用する。
ディスプレイスメントマッピング
ディスプレイスメントの精度はオブジェクトのアトリビュートエディタでArnoldタブを開き、
SubdivisionのIterationsを調整する
▼Arnoldの複雑なマテリアルの設定
●作成方法
・ノードを組み合わせて工夫する
(自由度が高いが複雑にすると遅くなる)
・シェーダを開発する
(複雑で速いシェーダをなんでも作ることができるが、開発コストがかかる)
・サードパーティ製のシェーダをダウンロードする
(突然仕様が変わってしまうことがある)
●標準のシェーダとRaySwitchとUtilityを組み合わせる
・Utility
面の向き、Object IDなどさまざまな機能がある。
・RaySwitch
このノードを持つシェーダを通したもののレイの色や結果を変える
●シェーダを作成する
APIリファレンス
https://trac.solidangle.com/arnoldpedia/chrome/site/Arnold-4.2.16.0/doc/api/index.html
プログラムを軽く組んだことがあれば書きやすいようなわかりやすいコマンド
●サードパーティ製シェーダ
リファレンスとしても参照しやすい
例:
・AlShaders by Anders Langlands
http://www.anderslanglands.com/alshaders/index.html
・Obq Arnold Shaders by OnliqueFX(※アクセス不可)
http://s3aws.obliquefx.com/public/shaders/index.html
・Zoic Arnold Camera Shader
http://zenopelgrims.com/zoic/
・Kettle Shader
https://bitbucket.org/Kettle/kettle_uber/wiki/Home
▼Arnoldのインスタンスの使用法
Stand-inを使用する
インスタンス対象のオブジェクトを選択
Prefixにチェックをして出すことをお勧めするしていないと、読み込んだときに同じ名前のシェーダができてしまい、色が変わる等の問題が発生することがある(澤田氏の経験談っぽい)
▼クラウドレンダリングソリューション、Zyncとは?
Arnold、Renderman、V-ray等に対応。
突然レンダーサーバー、ソフトウェア、ライセンスが足りないという時でも、Zyncで対応することができる。
自分のマシンで作成したシーンファイルのレンダリング結果が自分のマシンに帰ってくるので便利。
エラーログも確認できる。
使用した分だけが請求される。
→Maya 2017のみでは現状Arnoldのレンダリングを他のマシンで行うことができないが、Zyncを使用すると他のマシンでのレンダリングが可能になる。
おわり。
続編の開催も期待しております!!!
ではまた!