昨年2019年末にリリースした、Maya2020ではArnoldレンダーのバージョンが4になり、Arnold-Coreは6になりました。 それまでオープンベータで公開されていましたが、このバージョンで正式にGPUレンダリングができるようになりました。今回からその解説をしていこうと思います。
まず、テストシーンです。Arnoldの公式チュートリアルの車のシーンです。
Maya2020の約125万ポリゴンのシーンで、Areaライトが1つのスタジオです。
ArnoldメニューのAboutで確認します。
MtoA(Maya to Arnold)は4.0.0、Core6.0.0.0であるのが確認できます。
そのままHD1080でレンダリングしたのが以下の画像です。 レンダリング時間は2分23秒でした。
画像はフルサイズでアップロードしてあります。詳細をご覧になりたい方はダウンロードしてみてください。
サンプリングの設定は以下です。
使ったGPUは以下で6コアのi7-8750です。レンダリング中は当然ですが、フル稼働になります。
上記のレンダリング結果ではノイズがあるので、サンプリングの設定を少し上げてみます。
今度は綺麗に仕上がりましたが、約13分かかりました。
では、GPUレンダリングを試してみます。まず重要なのはGPUが対応しているかどうの確認です。Maxwell以降のGPUであれば対応しているようです。
以下のURLで確認できます。
NVIDIAのシステム情報で確認します。ドライバも対応したバージョンにしないとレンダリングが開始できませんので最新版をインストールします。
次に、GPUレンダリングの手順です。GPU用にシーンのシェーダとオブジェクトキャッシュを作成します。Arnoldメニューから、「Utilites」→「Pre-population GPU Cache」を実行します。
図のようにキャッシュ作成を開始します。数分ほど待たされますが、これを最初に一回だけやることによりGPUレンダリングがかなり高速になります。
「Time Remaining」の表示時間はあまり正確ではありません。図では31分とありましたが、急に減り、終了します。
キャッシュはオブジェクトやシェーダを追加、削除しなければ再作成の必要はありません。ライティングやカメラアングル、質感変更に関してはキャッシュをそのままGPUが高速に再計算します。
GPUレンダリングの設定は1か所だけです。RenderSettingのSystemを「GPU」にするだけです。
わずか8秒で終了します。ノイズはありますが、IPRにすれば、カメラやライト、質感を高速に変更してプレビューできます。
なぜか明るさが変わってしまうのは原因を調査中です。
CPUは24%程度しか稼働していません。CPUレンダリング中のPCでは何もできませんが、これでしたらある程度別作業が可能です。
ノイズが多いので修正します。GPUレンダリングではサンプリングの設定が「Camera(AA)」のみになる仕様です。
それ以外では、下にある「Adaptive Sampling」を使います。
この設定がデフォルトです。
「Max Camera(AA)」を上げることでノイズ減ります。公式マニュアルでは30~50、場合によっては100まで上げる記述があります。 「Adaptive Thredshold」は小さくするとノイズが軽減されます。0.01が最小です。
レンダリング結果です。1分44秒ですが、かなりボディのノイズは軽減されています。
今度はAdaptive Samplingを切って、単にCamera(AA)を上げてみます。
綺麗な仕上がりになります。計算時間が4分です。
GPUレンダリングは100%になってからしばらく待ちますのでご注意ください。
さらに、Max Camera(AA)をアップし、Camera(AA)を下げた状態でレンダリングしてみます。
かなり高画質になりますが、計算時間が8分を超えてしまい、GPUのメリットが薄くなります。
Max Camera(AA)を25まで下げると3分13秒になりますが、ノイズが少し目立ちます。レンダリング時間のコストと画質をこのように調整して運用していくことになります。
今回使用したのは、RTX2070 Max-QというノートPCのGPUです。デスクトップのGPUと比較して約7割程度の速度ですので、GPU次第ではさらに高速なります。
高性能で高額なCPUを大量に用意するのではなく、比較的安価なGPUを導入してArnoldの高画質なレンダリングを短時間で行い、制作に生かすのはいかがでしょう。
次回、さらに大きな解像度や、新しいシェーダーなどでGPUとCPUの比較を紹介しようと思います。