建築、デザイン、そして映画やアニメといったエンターテインメント業界まで、幅広く使われている3DCG。その仕上げともいうべきレンダリングにおいてどのソフトを使うかによって効率やコスト、さらには表現力などが大きく変わってくる。今回、マルチプラットフォームに対応したAMDの高性能レンダリングエンジンRadeon ProRenderについて、日本AMDのワークステーショングラフィックスR&D シニアソフトウェアエンジニアである池田 翔氏にProRenderの特徴や性能、さらにビジネスでの活用などについてお話しを伺った。
レイトレーシングを用い、物理的にレンダリングを行なうProRender
そもそもレンダリングとはどのようなことを行なうのか。3DCG画像を作るまでには、モデリング、カメラ・照明・材質の設定、そしてレンダリングという行程がある。モデリングは撮影対象自体を作成する行程。その撮影対象に対し、どのような角度で撮影するか、照明をどのように当てるか、材質は何にするかといった設定を行なった上で、実際に撮影をして最終的な画像を作成するのがレンダリングとなる。
簡単に言えば、モデルを連れてきて、どのような服を着せるかといったスタイリングをし、スタジオや照明を用意、その上で実際に撮影する行程がレンダリングということになる。CG画像の場合、その撮影において様々な計算を行なわなければならないため、よりリアルな画像を作ろうとした場合、高性能なレンダリングソフトが必要となってくる。
ProRenderではレイトレーシングという手法を用いて、物理現象に考慮したレンダリングを行ない、写実的な表現を可能にしている。レイトレーシングとは、光源から視点までの光の経路をシミュレートし、陰影や反射、屈折といった物理現象も計算する手法。例えば陰影であれば、中心は濃く、周囲にいくほど薄くなるし、周辺の物から反射する光もある。あるいは水などを通った光がどのように屈折するかを計算する。対象となるものが増えれば増えるほど、計算の負荷は高くなる。
このレイトレーシングにおける負荷に対応するため、ProRenderではGPUを使って高速化している。CPUを利用したレンダリングとGPUを利用したレンダリングのデモンストレーションを比べて見ると、その違いは一目瞭然。GPUでノイズを除去する時間はCPUに比べて圧倒的に早い。視点、つまりカメラの位置を動かした際には再計算が行なわれることになるが、GPUではすぐに反映される。
CPUレンダリング
GPUレンダリング
マルチプラットフォームに対応し、無料で使えるProRender
ProRenderの大きな特徴として、マルチプラットフォームに対応していることが挙げられる。OSではWindows、Linux、Macのいずれでも動作するほか、CPUやGPUのメーカーや種類にも依存しなく、IntelやNVIDIAでも動作する。ただし、GPUとCPUともに、AMD製品に最適化され、処理効率が高くなるので、AMD製品を使用した方が作業の速度は上がる。またGPUがなかった場合、CPU上でも動作する。
さらに一般的によく使われるソフト用のプラグインが数多く用意されているので、ProRenderを使うために新たな投資をする必要もない。また、Cinema 4DのようにProRenderが標準搭載されているソフトもある。つまり、いま使っているマシンの環境を変えずに使い慣れたソフト上で使うことができるわけだ。ProRender自体はWebサイトで配布されており、無料でダウンロードが可能で、使おうと思ったときにすぐ使うことができるのが魅力的だ。
ProRenderプラグインをMayaにインストールする方法
Mayaのレンダリング設定の解説
マテリアルについて
カメラとライトについて
MayaでProRenderを利用した例
使いやすさを追求したProRenderの特徴
ProRenderの機能についても説明しよう。まずは「Out Of Core Texture」。GPUにはデータをメモリ上にすべてロードしなければならないというレンダリングする際の制約がある。たとえば4.4GBのテクスチャがあった場合、4GBのGPUのメモリにはロードできず、レンダリングができなくなる。ProRederではそうした場合に必要な部分だけをGPUに読み込んで随時扱うようにできる。
「Out Of Core Geometry」ではVEGAアーキテクチャからサポートされているHBCCを用い、容量が大きくて読み込めないようなポリゴンデータなどをすべて読み込まない形でレンダリングする。HBCCでのメモリ制限はシステムメモリの空き容量まで使えることになる。
また、GPUが複数搭載されたマシンであれば、それらを使ってレンダリングを効率化する。下の画像はWX7100とWX9100が搭載されているマシンでのデモとなるが、一枚の画像を分割して、別のGPUでレンダリングしている。搭載されているGPUの能力によって、レンダリングする範囲を分割し、同時に表示できるように調整する。
レンダリングの効率化
複数のGPUではなく、GPUとCPUの組み合わせでレンダリング負荷を分散させることもできる。GPUはその処理をマルチスレッドで行なっており、大量の計算を行なうのは得意だが、条件分岐が苦手だ。例えば反射の計算回数が3回の場所と5回の場所があるなど、複数の条件が存在した場合、負荷の高いスレッドに合わせて、他のスレッドの処理が遅くなってしまう。しかしCPUは処理が終われば次に進める。こうしたGPUとCPUの良さを組み合わせてロードバランスを取ることで、より早く処理を終わらせることができる。
CPU-GPUレンダリング
さらに、AMDではProRender専用のフォーラムも開設しており、質問などがあった際にはそのフォーラムで報告する体制を整え、ユーザーサポートを行なっているのが心強い。
クラウドを使った新しい取り組み
ProRenderを使った新しい取り組みについても解説していただいた。そのひとつがクラウドレンダリングで、GENESISクラウドですでに稼働しているとのことだ。このクラウドレンダリングでは、クライアントからサーバに情報をアップロードし、GPU側はレンダリングだけを行なう。
最近は4Kや8Kといった映像表現が増加しており、それをすべて自社で処理できる企業は少ない。クラウドレンダリングを用いれば、数十台のマシンにGPUを設置し、スタッフはネットワーク上でレンダリングさせるといった環境が作れる。また複数のGPUを使って大きなレンダリングを行なうといったことも可能だ。
またレンダリングでつきもののノイズを除去するデノイザーについては、マシンラーニングベースのデノイザーをサポートしている。
Machine Learning デノイザー
さらに、ProRenderとゲームエンジンのハイブリッドとなるリアルタイムレイトレーシングにも取り組んでいる。ProRenderのようなレンダリングソフトでは美麗な画像を作ることができるが、その分時間がかかってしまう。ゲームエンジンはその描写が早く、ノイズもないように見えるが、実際は表現にフェイクが入っており、写真とは違うものになる。リアルタイムレイトレーシングはその中間の存在としていいとこ取りをする形となる。
具体的には、ゲームエンジンの早い描写の上にレイトレーシングを行なって反射や屈折、陰影などを付け加え、デノイザーを使ってリアルタイムにノイズフリーの画像を作成する。これにより、より写実的な表現でノイズのない画像をリアルタイムに表示できるようになるとのことだ。
リアルタイムレイトレーシング
3DCG業界の多くの恩恵をもたらすProRender
ProRenderは無料で導入できるほか、どのようなマシンでも動くので試すのが簡単なレンダリングソフト。導入における投資がかからないだけでなく、その導入による効果も高い。
例えば建築業界であれば、プレゼンの後に修正するのに1週間かかった完成予想図が翌日には完成、さらに日照によるシミュレーションなどをリアルタイムに表示させることができるので、インパクトの大きいビジネス展開ができるだろう。同様にインダストリアルデザインであれば材質シミュレーションに使えるし、映画やアニメといった映像業界ではゲームエンジンで映像を組み立てたあとにProRenderでレンダリング、結果を見ながら修正し、制作時間を短縮するといったことが考えられる。
池田氏は「ProRenderを使うとファイナルに近いプレビューが得られる。そしてそれは、リアルタイムではなくインタラクティブであり、結果をすぐ確認できて編集できるというのが強みです」と語り、「さらにそれが無料で提供されており、主要ソフトのプラグインという形でも多数提供されています。ユーザーはソフトさえ買えばいいし、プラットフォームのしばりがないので導入しやすい」とアピール。最後に「画像や映像を扱う業界ではとても便利ですし、広く使ってほしいです」とプッシュしていた。