チュートリアル / 宋さんの3ds Max キッチンスタジアム
第31回:3ds MaxでArnold / 基本的なレンダリングの設定方法
- 3ds Max
- Arnold
- コラム
- チュートリアル
- レンダリング
- 学生・初心者
最初に使用する3ds Maxは必ず最新版のUpdateを入れるようにしましょう。UpdateプログラムはAutodeskアカウントのページからダウンロードが可能ですよ。
また、最新のMAXtoAプラグインはUpdateインストーラーにも含まれていますが、Solid Angle社では頻繁にプログラムの更新をかけていますので、念のため以下のサイトから最新版をダウンロードしてMAXtoAプラグインを更新しておくと安心です。更新するときは念のため古いバージョンをアンインストールしてから更新して下さいね。
https://www.solidangle.com/arnold/download/
では 設定操作に入りましょう。
当然ではありますが、レンダリング設定ダイアログから使用するレンダリングエンジンをArnoldに設定します。
Arnoldを使用する際は、Active Shadeを活用すると設定が楽になるので、”ターゲット:”の設定をActive Shadeにも切り替えて、そちらもレンダラーを”Arnold”に設定しておきましょう。実はこのレンダラーの使い熟す上でとても重要なのです。
毎回レンダラーを設定するのは面倒だなあ~と思われる方は以下の設定を行うと、設定したレンダリングプログラムがデフォルトの(既定の)レンダリングプログラムに設定されますよ。
[共通設定]タブ>[レンダリングを割り当て]ロールアウト からプロダクションとActiveShadeのレンダラーを[Arnold]に設定して、最下部にある[既定として保存]をクリックします。
この設定を行うと、3ds Maxを終了し、再度起動しても設定したレンダラーがすぐに使えるようになります。Arnold以外のレンダラーも同じように設定することができますよ。
Arnoldに設定を変えると6つのタブが表示されます。左から「共通設定」、「Arnold Renderer」「System」、「AOVs」、「Diagnostics」、「Archive」です。
「Arnold Renderer」タブは一番使用頻度が高いサンプリングの設定や画像生成に関わる最も重要なパラメータを含みます。サンプリングって何?という方もいるでしょうから、その辺も詳しく解説していきますね。
「System」タブはレンダリングに必要な外部ファイルのパス設定やバケットのサイズ(メモリーのサイズ)などを設定します。何もいじらなくても最初の計算では問題有りません。
「AOVs」タブは前回解説した通り、従来のRender Element(レンダリング要素)に相当するものです。
「Diagnostics」タブはその名の通り、計算をかけるシーンの診断結果をどのように把握するかを設定します。エラーが発生したときにどういう振る舞いをするのかといったところです。
「Archive」タブはArnoldのコアファイルというべきシーンのソースファイルを保存する場合に使います。mental rayでは3ds MaxやMayaで作成したシーンファイルをmental rayのコアに送り込む場合、必ず内部的にMRファイルというものに変換してレンダリングしていましたが、Arnoldでも同じようにArnold Rendererが読み取れるシーンファイルに変換しています。このファイルを「Arnold Scene Sauce file」と呼び拡張子は「.ass」ファイルとなります。作成した3ds Maxのシーン情報を.assファイルで書き出して、コマンド操作を使いArnoldスタンドアローンでレンダリングするとか、MayaなどArnoldに対応したソフトウエアに.assとしてシーンを送り込むとかができるわけです。
複雑怪奇に見えますが、とりあえず始めてみようというレベルであれば「Arnold Renderer」タブと「AOVs」タブを理解すれば大丈夫でしょう。
「Arnold Renderer」タブ
では最初の「Arnold Renderer」タブの説明から入りますよ
Arnold Rendererタブは最も設定項目が多いタブになります。それだけにとても使用頻度が高い設定項目と言えます。
まずは最上段にMAXtoAのバージョンを確認できるロールアウトがあります。複数人数で同じプロジェクト作業を行う場合は必ずここで使用するバージョンを確認して下さい。
次のロールアウトであるSampling and Ray Depthロールアウトはレンダリング品質と計算時間の直結する最も重要で使用頻度の高いパラメータが含まれています。
こんな感じのUIです。
まず、このユーザー インターフェースを見てみると、下図のように4つのグループに分けられます。
左から1ピクセル当たりの[Samples](サンプル数)、[Ray Depth](レイ-光線の反射回数)、[Min](結果として生じるレイの数)、[Max](結果として生じるレイの最大数)といった意味です。
なんかよくわかんねー!という方もいると思うんでわかりやすく説明しましょう。
Arnoldはパストレーシング レンダラーなんです。これまた なんのこっちゃわからん!!という方もいると思うので、以下の図を見てください。
まずは簡単なレイトレースの概念図です。もうCGの基礎中の基礎の図ですが、カメラからレンダリングする画面(フレームバッファ)の各ピクセルに対して光線(レイ)を飛ばして空間中に存在するオブジェクトにヒットさせてピクセルのRGBの値を求めるのがレイトレーシング法ですね。基本すべてのピクセルに対してレイを飛ばしていきます。
ただこの方法だと物体の質感はパキっとした質感でシャドウもエッジのきいたシャドウしか表現ができません。
そこでカメラから発射したレイの数を分散させ、なおかつ反射した際も分裂するように計算させると下図のような光の動きになります。
このような考え方で分散したレイの情報を統合すると、滑らかなオブジェクトの表現や現実的な表現が可能になるわけですね。
では、これらの基本的な原則をパラメータに置き換えて説明してみましょう。
パラメータの中で分かりやすいものとしてDiffuseの値を見てみます。
まず一番左のSample数ですが、初期設定値は「2」となっています。Rey Depthは1ですね。でも左から3番目の合計の値は「36」と表示されます。なんで!?
これはサンプルの値は縦横に関する値となるので、2x2=4という値になります。では、なんで36になるかというと、カメラから放出するレイの数が影響しています。
パラメータの上部に[Camera(AA)]というパラメータがあります。
これはスクリーン上のピクセルのサンプリングに用いる値なのですが、この数が「1」であればDiffuseの結果は「4」になります。つまり特定のフレームバッファ内ピクセルに向けてカメラから発射されたレイが、発射した段階で分裂した場合のレイの数です。
カメラからのレイのサンプリングはレンダリングスクリーン(フレームバッファ)のピクセル対してのサンプリングなので最後に(AA)と書かれているのは、(anti-aliasing)の(AA)という意味をあらわしているんですね。
Diffuseのサンプリングが4であってもCamera(AA)の規定値が「3」になっていますので、カメラから放出されるレイが3x3で9個のサンプリング、さらにDiffuseの2x2で4のサンプリング数になるので、それぞれを乗算して9x4で36となります。
なんか、面倒くさい感じですが、この原則を理解すればパラメータの設定はとても楽になります。
Arnold Rendererの特徴の一つにパストレースのサンプル設定をその物体の光の構成要素ごとに設定できる点があります。構成要素とは光の拡散反射光や鏡面反射光といった属性ですね。これは前回までのPBS(フィジカリ ベースド シェーダ)の解説で説明してきた内容です。
Specular(鏡面反射)やTransmission(透過光)、SSS(サブ サーフェス スキャッタリング)などを全て個別のパラメータで設定できるわけです。
通常のパストレース型のレンダラーが全体のサンプリング設定しかできないのに対して個別の設定が出来るという事は、一見 設定が面倒に見えますが、レンダリングコストを抑えたい場合に威力を発揮する利点があります。でもレンダリング設定を追い込んでいく場合には常に最終レベルの品質でレンダリングするわけではないですよね。レンダリングは粗くてもいいからライティングのバランスを確認したいというケースもあります。
その際にCamera(AA)の設定は全体のサンプリングのバランスを保ったまま相対的にサンプル数の上げ下げを行うことができるわけですね。これはとても便利です。
ついでに、一番上にあるPreview(AA)というパラメータはレンダリングの前に同一フレームバッファ上で低レベルに設定したCamera(AA)を使って一度計算をかけるというものです。
Camera(AA)を含めて各サンプリングを毎回いじらなくても、必ずここで設定した値のレンダリングを一度行い、最終設定のサンプリング数で再度計算をかけるようになっています。ライティングの調整やライティング設計を含んだ全体の構図などを短時間に確認する場合には、このパラメータを利用すると とても便利です。ただし、最終的には不要な計算を事前に一度行う形になりますので、計算時間はその分長くなります。特にレンダリング設定が済んだデータを最終的にレンダリングする場合には不要ですので、そういった場合はこのチェックを外しましょう。
では次回は実際にサンプル数を変えてみてテストしてみましょう。