前回のベーシック編に続き、AMDがリリースしたRadeon ProRenderの最新の真価を、コロッサス Rスタジオの澤田友明氏(レンダリングスペシャリスト)に徹底検証してもらった。アドバンス編と題した今回は、Arnoldレンダラとの互換性や性能差、大規模レンダリングには欠かせないクラウドレンダリングの使い勝手、さらにはPixar Animation Studios(以下、Pixar)のUSDビューワとの親和性など、より広範囲かつ大規模な運用の可能性について探っていく。
TEXT_澤田友明 / Tomoaki Sawada(コロッサス Rスタジオ)
EDIT_尾形美幸 / Miyuki Ogata(CGWORLD)
PHOTO_弘田 充 / Mitsuru Hirota
▲左から、シニアソフトウェアエンジニア・池田 翔氏、マネージャー・森本竜英氏(以上、日本AMD)、レンダリングスペシャリスト・澤田友明氏(コロッサス Rスタジオ)
他レンダラとの互換性や性能差はいかほどか?
別のプロダクションと連携してDCCツールを使用するとき、一番困るのが「異なるレンダラを使用している」という問題だ。特にMental Rayが開発中止になった頃は、乱立するレンダラの中でどれを選択すればよいのか、混乱がみられた。しかし現在は、Autodeskに買収されたArnoldを使用するプロダクションが増加傾向にあり、CGを学ぶ学生は最初からArnoldでレンダリングを勉強しているため、Arnoldがレンダラのデファクトスタンダードになっていくことは間違いないだろう。ならば、Radeon ProRenderはArnoldとどれだけ互換性があるのか、レンダリング速度や画質を比較したときにどのような差が現れるのか、気になるところだ。
・自動シーンコンバート
Radeon ProRenderには、ほかのレンダラからマテリアルやライトを含めたシーンファイルをコンバートする機能が備わっている。Radeon ProRenderのメニューには、V-Ray、Arnold、Redshiftからコンバートできるコマンドがある。
▲【左】コマンドを選択すると、【右】シーンのコンバートに必要な時間が表示される。想像するよりかなり速く、ほぼ一瞬で処理されるため、変換されたことに気付かない場合もあった。しかしアウトライナーやハイパーシェードをみると、確かに変換されていた
ArnoldとRadeon ProRenderの互換性を検証
・シェーダ
ArnoldのStandard Surfaceシェーダのプリセットを上から順番にモデルに割り当て、Arnoldのクアッドライト1灯で上から照らしたシーンを自動コンバートしてみた。
▲Arnoldでレンダリングした画像 No.01
▲No.01のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
▲Arnoldでレンダリングした画像 No.02
▲No.02のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
▲Arnoldでレンダリングした画像 No.03
▲No.03のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
▲Arnoldでレンダリングした画像 No.04
▲No.04のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
▲Arnoldでレンダリングした画像 No.05
▲No.05のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
いかがだろうか。マテリアルに関しては、まったく同じ質感とはいえないものの、そこそこ良い感じにコンバートしていることがわかる。強いて挙げるとすれば、No.03の左端のTransmission Scatterや、No.05の左端のSSSカラー、右端のTransmission Roughnessなどのパラメータのコンバートが、もう少し上手くなればと思う。ライトに関しても強さは問題ないが、照射範囲は少し広がってしまっている。また、カメラの被写界深度は再現されていない。そういったところに差異はみられるが、個々のパラメータを微調整すれば、ほぼ近づけることはできるだろう。
[[SplitPage]]ArnoldとRadeon ProRenderの互換性を検証
・テクスチャマップ
続いて、テクスチャマップを貼ったマテリアルを使用したシーンの自動コンバートもテストしてみた。
▲Arnoldでレンダリングした画像 No.06
▲No.06のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
シェーダのカラーやメタリック部分に若干差はみられるが、テクスチャマッピングは問題なく再現されている。
▲Arnoldを使用した、No.06のシーンのハイパーシェード
▲Radeon ProRenderに自動コンバートした後の、No.06のシーンのハイパーシェード
シェーディングネットワークを比較してみると、名称も含め、なかなか上手く変換していることがわかる。
・グローバルイルミネーション
グローバルイルミネーション(GI)を使ったフォトリアルなレンダラは、建築パースなどの用途で使われることも多い。内観パースで多用されるような、キッチンのモデルデータのシーンをコンバートしてみた。
▲Arnoldでレンダリングした画像 No.07
▲No.07のシーンをRadeon ProRenderにコンバートしてレンダリングした画像
グローバルイルミネーションの雰囲気は上手く変換してくれているが、ひとつだけ難点が! MayaのカメラのFilm OffsetをRadeon ProRenderはレンダリングできないようだ。建築用途では必ず使われる機能なので、ぜひ対応していただきたい。
レンダラの変更にともなうシーンの入れ替え作業では、オブジェクト、ライト、カメラ、マテリアル、レンダー設定など、膨大なアトリビュートを変更しなければならない。全部を手動で変換するとなると気が遠くなってしまうが、Radeon ProRenderが前述のレベルまで自動変換してくれれば、後は微調整を行うだけで再現できるので大変助かる。このようにシステム上の差をソフトウェアが吸収してくれると、アーティストは本来の創造的な作業に時間を割くことができる。
[[SplitPage]]ArnoldとRadeon ProRenderの、レンダリング速度&画質を比較
Radeon ProRenderは、OpenCLを使用した、GPUでもCPUでもレンダリングできるフォワードパストレーサーだ。対してArnoldは、元々はCPUベースのフォワードパストレーサーだったものを、NVIDIAのGPUでも動くようにしたものだ(2019年7月現在、Arnold GPUレンダラは開発中であり、検証にはベータ版を使用した)。
OpenCLと、NVIDIAのCUDAひとつとってみても、単純に比較できるものではないが、ユーザーからみれば、どちらもGPUを使うレンダラだ。単純なシーンと、テクスチャやライトを多用した複雑なシーンの2つを用いて、レンダリング速度と画質を比較してみた。なお、画像サイズはいずれも1,920x1,080とした。
・Maya 2018+Radeon ProRender 2.6.294.の検証環境
CPU:Ryzen Threadripper 1950X, Core i9-9900K
GPU:RTX 2070, Radeon Ⅶ
・Maya 2018+Arnold MtoA 3.2.1.1.の検証環境
CPU:Ryzen Threadripper 1950X, Core i9-9900K
GPU:RTX 2070
・単純なシーン
▲シーンデータ。Maya 2018のコンテンツブラウザにある、MASH_greeble.maにレンダラ専用の標準シェーダを割り当て、IBLでライティングした
▲レンダリング結果
▲【左】ArnoldはStanderd Surfaceシェーダ、【右】Radeon ProRenderはRPR Uber Materialを割り当てた。それぞれのシェーダの値は同じにしてある
- ◀レンダリング時間はレンダリング設定によっていくらでも変わってしまうため、あえてレンダラの開発元が設定したデフォルトの値でテストしている。サンプリングのクランプは、両者ともOFFにして条件を合わせた。左はArnoldのレンダリング設定
▲Radeon ProRenderのレンダリング設定
▲レンダリング速度の検証結果
Arnold+GPU(RTX 2070)のレンダリングは飛びぬけて速いが、Arnold+CPUでは逆に遅い。サンプル数によってレンダリング時間が増減するArnoldとはちがい、Radeon ProRenderは指定したイテレーション数に達するまで計算を行うので直接比較はできないが、Radeon ProRender+CPUのレンダリングでは、なぜかCPUを変えてもレンダリング時間に差が出なかった。
▲画質を比較するために一部を拡大してみた
ArnoldはCPUベースで開発されたレンダラなので、CPUを使った場合には、レンダリング時間はかかるがノイズは少ない。一方で、GPUを使った場合には、レンダリング速度はかなり速くなるが、デフォルトのサンプル数ではノイズが目立つ(前述したようにArnold GPUレンダラはベータ版のため、仕様が変わる可能性がある)。
Radeon ProRenderは、OpenCLベースで開発されているため、GPUでのレンダリングが速いのに加え、ノイズが少ない。ただしCPUを使った場合には、Arnoldより短時間でレンダリングできるものの、ノイズが目立つ。
・複雑なシーン
▲複数のテクスチャとライトを使用した、複雑なシーンデータのレンダリング速度も比較してみた
▲レンダリング結果
▲レンダリング速度の検証結果
複雑なシーンになると、Arnold+GPUのレンダリング時間も常識的な範囲に収まってきた。一方で、Radeon ProRenderの場合は、複雑なシーンでもレンダリング速度がそれほど落ちていない。両者ともCPUとGPUではノイズの収束に差がみられたが、同じような見え方に近づけた場合は、ArnoldはGPUのレンダリング時間が、Radeon ProRenderはCPUのレンダリング時間がさらに長くなる。
つまり、Radeon ProRender+GPUのレンダリングが、一番スピードと画質のバランスが優れていると言えるだろう。
[[SplitPage]]クラウドレンダリングの使い勝手を検証
GPUを活用したレンダリングは、CPUを使ったそれよりもレンダリング速度が速い点がメリットだ。ただし、アニメーション付きのシーンデータをレンダリングしようとすると、それなりに時間がかかってしまう。Radeon ProRenderはCPUを使ったレンダーファームでもレンダリング可能だが、できればGPUで構成されたレンダーファームを使いたい。
- そこで、A.L.I. Technologiesが開発中のRadeon ProRenderに対応したGPUクラウドレンダリングサービスのベータ版を使用してみた(ベータ版は7月1日にリリースされたばかりで、現在ユーザーを募集中。問い合わせ先:brf-info@ali.jp。正式リリースは2019年9月の予定)。
・A.L.I. TechnologiesのGPUクラウドレンダリングサービスの特徴
■ Radeon ProRenderに対応している
■ レンダーライセンスが必要ない
■ 専用のディスパッチャは必要ない
■ Webブラウザベースなので、どこからでもアクセス可能
■ 従来のクラウドレンダリングサービスにはない、新サービスが予定されている
▲使い方はいたって簡単で、Webブラウザ上から専用サイトにアクセスすれば、クラウドレンダリングの準備は完了だ
▲レンダリング用のデータは、MayaのRadeon ProRenderのメニューから、専用フォーマットのRPR形式で出力する
▲RPR形式に変換したファイルを全て選択し、ひとつのZIP形式に圧縮。そのデータを、前述の専用Webサイトにドラッグ&ドロップする
▲レンダリング画像のサイズやフォーマット、AOV、イテレーションなどを設定し、アップロードバーをクリックするとデータ転送が始まる
▲ネット環境にもよるが、1Gbps程度の回線であれば、ものの数十秒で転送が完了し、レンダリングの前処理が始まる
▲レンダリングの前処理が完了すると、レンダーファーム上のGPUに展開され、レンダリングが始まる。1フレームごとに詳細なデータがリアルタイムで表示されるため、安心して任せられる。各フレームのプログレスバーに加え、全体のプログレスバーが最上部に表示されるため、レンダリング時間を把握しやすい点も嬉しい
▲レンダリングが完了すると、右上にダウンロードアイコンが表示される。そのアイコンをクリックすると、ローカルPCに全てのレンダリングイメージファイルがダウンロードされる
▲単純なシーンと複雑なシーンの両方で、このクラウドレンダリングサービスを試してみた。単純なシーンだと、ものの数分で全フレームの計算が終了する。たとえ複雑なシーンであっても、最新のベータ版では200枚のGPUでの並列処理が可能で、データをGPUへ割り振る処理も速くなっているため、ローカルPC上で1フレームにかかる計算時間とほぼ同じ時間で全フレームのレンダリングが完了した。単体のGPUを使用する場合の約200倍の速度だ
A.L.I. Technologiesのクラウドレンダリングサービスは、Webブラウザ上から簡単に操作できるので、ほかのサービスと比べて圧倒的に使いやすい。また今後のアップデートで、オプション設定と情報表示がさらに充実するとのことなので期待したい。
将来的には、特定のレンダリングサーバにジョブを処理させるのではなく、世界中のPCをつなげ、余っているコンピューティングパワーを集結させ、クラウドレンダリングサービスに活用できるしくみを構築する予定だとも聞いている。まるで分散コンピューティング・プロジェクト SETI@homeの、レンダリング版のような構想だ。それが実現できれば、飛躍的にレンダリング速度が向上するだろう。
[[SplitPage]]USDビューワとの親和性を検証
Radeon ProRenderは、Mayaに限らず、3ds Max、Blender、SOLIDWORK、PTC Creo、Unreal Engineなど、様々なアプリケーションからの利用が可能だ。昨今話題になっているPixarのUSDビューワ上でも、Radeon ProRenderが使えるようになった。USD(Universal Scene Description)は、『トイ・ストーリー』シリーズで有名なPixarがオープンソースで公開している汎用的、かつ非破壊編集可能なシーン記述フォーマットで、映像制作のパイプライン上にある大量の3Dデータを、様々なアプリケーション間でやり取りできる。
▲USDビューワはUSDディストリビューションの一部として出荷されているイメージングビューワで、USDデータを視覚化するために最適化されたHydraで描画される
▲Radeon ProRenderは、ビューワ上で動作するパストレーサーとしてUSDへの組み込みが可能で、Hydra並みの速度で、よりリッチな描画を実現している。USDと共にビルドを行えば、ビューワ上のメニューにコマンドが表示される
▲Radeon ProRenderでの描画結果
▲AOVやデバッグ用の表示機能も備えている
Radeon ProRenderの未来
以上の検証結果を踏まえれば、無料で使える汎用的なGPUレンダラであるRadeon ProRenderは、ほかのレンダラに勝るとも劣らない魅力を秘めていると言えるだろう。また、USDとの親和性を活かし、KATANA(※)などのルックデヴ&ライティングツールにRadeon ProRenderを組み込んで使用するパイプラインが普及すれば、映像制作のゲームチェンジャーとなる可能性も出てくる。A.L.I. TechnologiesによるGPUレンダーファームの新サービスが、その可能性をリアリティあるものに変えてくれるだろう。
※KATANAの詳細は筆者による下記記事で紹介しているので、合わせてご覧いただきたい。
KATANAによるパイプライン・ワークフロー改善
さらにハードウェアメーカーであるAMDは、この夏、マルチコアを倍増した新型CPUのRyzen 3000シリーズと、次世代GPUアーキテクチャのRDNAを採用したRADEON RX 5700シリーズを発売した。これらのコンピューティングパワーの進化にスケーラブルに対応し、優れたレンダリングパワーを発揮してくれるであろうRadeon ProRenderの未来に注目したい。