夜のインテリアシーンを使ったレンダラ比較

20181227-2

難しいとされる夜のインテリアシーンを

Cinema 4D フィジカル
Corona Renderer
Octane Rneder

にて比較してみました.レンダリング時間についてはハードウェアやレンダラの設定次第で長くも短くもできるので参考にはならないと思いますが,一応書き留めておきます.

なお,検証に使ったCPUは16コアでGPUレンダラについては1080Tiを使用しています.

レンダラとは

簡単に言うと3Dで作成したシーンを一枚の絵として書き出すためのものです.多くの3DCGソフトはレンダラを最初から搭載しているので,特に意識せず使用できるわけですが,プラグインとして使用できる高性能なレンダラも数多く存在します.

Cinema 4DではCPUベースの標準レンダラ,フィジカルレンダラ(Advanced Render)に加え,GPUレンダラのRadeon ProRenderも搭載されています.(Cinema 4Dのグレードにより機能制限あり)

サードパーティのレンダラは以下のようなものがありますが,すべてがCinema 4D R20に対応しているわけではありません.

Arion Render
Arnold Renderer
Corona Renderer
Cycles4D
Indigo Renderer
Iray
Keyshot
Lux Render
Maxwell Render
Octane Render
ProRender
Redshift
Thea Render
U-Render
V-Ray

これでも一部ですが,多いですね.どれもがそれぞれ特徴を持っています.どのサイトに行ってもサンプル画像は非常に綺麗です.

どのレンダラを使えばよいのか

Cinema 4D純正のAdvanced Renderでも十分綺麗な絵を出すことができます.もし思うように綺麗な絵が出なくてレンダラの変更を検討されている場合,他のレンダラを使って綺麗な絵が出るかというとそうでもないと思います.絵の綺麗さだけで言うとレンダラの問題ではなく,マテリアルやライティング,レンダリング設定などの知識が不足しているためです.

レンダラを変更する理由は,メモリ効率が良い,スピードが速い,設定が楽,パーティクルをレンダリングできる,などといった理由の方が比重が高いと感じています.また,仕事内容によってレンダラを使い分けている方も沢山いらっしゃると思います.

Advanced Renderひとつとっても,仕事によってはGIを使用せずに非常に早くレンダリングした画像をコンポジットで修正するケースや,GIを使った比較的長めのレンダリング時間でリッチなライティング効果を表現するなど,使い分けができます.また,Advanced RenderはCinema 4D純正レンダラなので当然ながらCinema 4Dとの親和性は高く,サードパーティレンダラでは難しい表現も簡単にできてしまうこともあります.

Advanced Renderのスピード

Cinema 4DのAdvanced Renderのスピードは遅いのか(たまに聞かれる),という問いに対しては単純に回答するのはとても難しく,答えはYesでもあり,Noでもあります.スピードに関しては他と比べると標準的だと思うのですが,設定次第で早くも遅くもなります.スピードが遅いと感じている場合,改善するためにレンダラがどの部分で遅くなっているのかを理解する必要があります.そうしなければどのパラメータを調整したらいいのかがまず分かりません.分からない場合,さらに適当にいじってしまうという悪手を誘発してしまうこともありますが,これはどのレンダラでも当てはまります.

より高性能なPCを使うという選択肢も当然ありですが,それよりも前にしっかりとマニュアルを読んで理解を深めることが大切だと思います.マニュアルに書いてある専門用語はGoogleで検索すれば大体のことは解決します.

レンダラについて知識がついてくると,レンダリングしようとするシーンが簡単なのか難しいのか,または特定のどの部分が難しいのかが分かるようになりますし,そのための設定値もだいたいつかめてきます.

これから紹介する画像のレンダリング時の解像度は2400*1600と1200*1600で統一していますが掲載画像は少し小さくしています.また,ライトの強度も同じではないので,明るさや色味,影の出方など若干異なります.

Advanced Render (Cinema 4D標準) (CPU)

ノードマテリアルの検証用に作成したシーンでしたが,せっかくなのでこのシーンを使います.レンダラはCinema 4Dのフィジカルです.

プライマリ: QMC
セカンダリ: イラディアンスキャッシュ

の組み合わせです.リファレンス用に高品質な画像を作ろうということで,プライマリにQMCを使うという思い切った設定にしています.当然ながらレンダリング時間はかなりかかりました.マニュアルによるとQMC+イラディアンスキャッシュの組み合わせはQMC+QMCよりもレンダリング時間がかかるというようなことが書かれていましたが,シーン設定により異なるでしょう.

私の場合はCinema 4Dでは基本はイラディアンスキャッシュを使用していますが,サンプルやレコード密度を調整したり,コンポジットタグであれこれGI設定を変えてもアーティファクトが解消しにくい場合はQMCで行うこともあります.

それにしても思ったよりもずっとレンダリング時間が長くなってしまいました.

20181227-1

20181227-2

気になるレンダリング時間ですが,1枚目(元画像は2400*1600pixel)は一台で計算して24時間,2枚目(元画像は1200*1600pixel)は23時間(被写界深度(DOF)あり)です.そんなにかかるの?と思われるでしょうが,高サンプルでQMCを使って夜のインテリアシーンだとこんなものじゃないでしょうか.DOFを綺麗にするためにはより高いサンプリング品質も必要です.

Advanced RenderでQMC+イラディアンスキャッシュで20時間以上かかるこのシーンをほかのレンダラはどのくらいのスピードでレンダリングできるのでしょうか.

ちなみにイラディアンスキャッシュ+イラディアンスキャッシュを使用した画像も記事の最後に掲載していますので,よかったら最後まで読んでみてください.

Coronaでレンダリング (CPU)

Corona Rendererは建築ビジュアライゼーションで定評のあるレンダラです.3ds MAX版はすでにVer 3がリリースされており,最近ArchiCADプラグインのアルファ版がリリースされました.やはり建築業界でシェアを伸ばしてきているようです.Cinema 4D版はまだ正式リリースはされていませんが,しかし少しずつ開発が続いており現時点ではCorona専用ノードマテリアルも使用できるようになっています.このノードシステムがなかなか良いのですが,この話はまた別の機会にでも.

Corona RendererはCPUレンダラで,レンダリング手法はパストレーシング,またはUHDキャッシュの2つから選択できます.UHDキャッシュというのがかなり賢いようで,難しいインテリアシーンでも設定値の試行錯誤をほとんど必要とせず,またアーティファクトの問題が発生しないような印象があります.

デノイザーやトーンマッピングも搭載していますし,建築シーンでは重要となるライトコントロールやAOVsも強力です.ヘアレンダリングもできますよ.

Corona Rendererの全機能リストです.

https://corona-renderer.com/features/features-full-list

肝心のレンダリング時間ですが,30分ほど計算させました.UHDキャッシュモードのフルバウンスGIでSampling balanceもデフォルト設定です.デノイザーのおかげでノイズは30分程度でかなり無くなります.Corona Rendererのスピードと品質のバランスは非常に良いと思います.ペンダントランプのガラスシェードのノイズが収束するまでにはより多くの時間が必要だと感じました.

20181230_corona1_30min

この画像で約30分+デノイズをかけた状態です.

20181230_gaming_room_corona_8h43m

上の画像は8時間ほどレンダリングしたものです.被写界深度(DOF)を使わなければ30分+デノイズで十分な画像は得られます.DOFのようなボケを真面目に計算するとレンダリング時間は大幅に伸びてしまいますが,これは大体どのレンダラでも一緒です.

20181230_gaming_room_corona2

DOF以外の部分は30分でも結構綺麗な状態になります.これはデノイザーが効いているためです.2時間かけてもボケ部はザラツキが残ります.

Octaneでレンダリング

OctaneはGPUレンダラーなので,レンダリング時間やレンダリングできるシーンの大きさは完全にGPU性能に依存します.テストでは1080Tiを1枚使用です.Octaneのレンダリングモードは

Directlighting
Pathtracing
PMC
Infochannel

から選択でき,GIは「Pathtracing」か「PMC」で使用できます.PMCは主にインテリアシーンで小さな光源やコースティクスのあるシーンで使用するモードとされていますが,Octane公式フォーラムを見るとスピードや品質に関してはPathtracingと比べて意見が分かれているように見受けられました.あとOctane4で搭載されたデノイザーはPMCではまだ使用できませんので,今回はPathtracingを使用しています.

20181230_6_gaming_room_1_octane

上の画像のレンダリング時間は26分です.デノイザーはかけています.

20181230_7_gaming_room_1_octane_hikaku

デノイザーがかかっていないと,画像左のような状態(Coronaも大体似たような状態)です.これをデノイザーなしで綺麗にしようとすると,レンダリングにもっと時間をかける必要があります.

20181230_8_gaming_room_2_octane

上の画像はレンダリング時間16分+デノイズした状態です.レンダリングを早く切り上げすぎたのか,デノイザーの設定がちょっと乱暴だったのか,少々ディテールが飛んでしまいました…

さすがに早いですね.しかしGPU性能に依存している点を忘れてはいけません.数万ピクセルの画像をレンダリングしたり,高解像度のテクスチャを使用するにはそれなりのGPUが必要になります.また,デノイザーはより多くのGPUパワーを必要とするため,レンダリングは終わったもののデノイザーがGPUのメモリ不足で適用できない,といった問題が出ることもあります.

現在のハードウェアの限界点も把握しておいた方がよいので,日ごろの練習やテストはやはり大切です.

Advanced Renderで時間短縮に挑戦

CoronaとOctaneでレンダリング時間だけ見ると相当早いなというか,Advanced Renderがめちゃくちゃ遅い印象じゃないでしょうか.ただし,この二つはデノイザーを併用している恩恵もありますし,Advanced Renderは品質は高いが遅い設定にしたためです.

他のレンダラもやってみようかと思いましたが,マテリアル変換がしんどくなったのでこの辺で終了.サードパーティレンダラを使うということはそのレンダラ専用のマテリアルを作る必要があるのが難点の一つです.

V-Ray,Arnold,Redshiftなどもあるので,興味があればまずはデモ版を入れて試してみるのが良いです.

最後は,Cinema 4DのAdvanced RenderではQMCを使って20時間以上かけた最初の画像をレンダリング設定を詰めて早くしてみました.

次の画像はプライマリ,セカンダリともにイラディアンスキャッシュを使用して2時間30分です.うまく短縮させるにはテストレンダリングする過程でどこに問題があるのか見極める必要があります.このシーンでは壁と天井の左上あたりのアーティファクトがなかなか取れないので,全体のサンプル値は押さえて,壁と天井にコンポジットタグを適用し,タグのGI設定でストカスティックサンプルの倍率とレコード密度の比率をあげることでその部分のみ計算精度を上げています.逆に特定のオブジェクトだけ計算精度を下げることもできます.このようにすれば無駄にイラディアンスキャッシュの計算をすることもありませんし,時間短縮できます.

とはいえ,今回テストしたCoronaやOctaneと比べるとスピードでは地力の違いもあり,見劣りします(デノイザーがやはり強力です)ので,より高性能なレンダラが必要だと感じたのであれば,サードパーティレンダラを使用したり,またはハードウェアを変更する方が作業効率も良くなると思います.

20181227-1_AR_2h30m

こちらはイラディアンスキャッシュ+イラディアンスキャッシュで2時間30分.