ノードマテリアルに関する使用上の注意

Cinema 4DもR20からノードマテリアルを搭載しています.便利で強力な機能ですが,初学者にとっては少し混乱を招くことになる点があります. テストでインテリアシーンを作ったので,ノードマテリアルを使うときの注意点を紹介したいと思います.

ノードマテリアルが追加されたことにより,Cinema 4Dでマテリアルを作成する時,標準マテリアルかノードマテリアルを作成するかを選択できるようになりました.(特殊なシェーダは除いています.)

20181222_5

標準マテリアル

標準マテリアルはマテリアルマネージャの

新規標準マテリアル
新規PBRマテリアル

から作成できます.

PBRマテリアルについて

PBRマテリアルは標準マテリアルと同じですが,デフォルトの設定が異なります.〈カラーチェンネル〉がオフになっていて,〈反射チャンネル〉の中に「拡散反射レイヤー」が作成されていますが,これがカラーの代わりになっています.しかしこれはカラーを使わずに「反射する色」で色を計算する仕組みで,現実的な光の振る舞いに近いですが〈カラーチャンネル〉を使う場合と比べて基本的には計算時間が長いというのが現状です.(Cinema 4D標準レンダラ,フィジカルレンダラ使用時)

また,反射色で計算するので,マルチパスで〈マテリアルのカラー〉が出てきませんが,インターフェイスは標準マテリアルと同じなので,〈カラーチャンネル〉をオンにして〈拡散反射レイヤ〉をオフにすることもできます.

ノードマテリアル

新規ノードベースマテリアル
新規Uberマテリアル

ノードベースマテリアルは上記の2種類から作成できます.〈新規ノードベースマテリアル〉は最初から自分でノードを組む必要がありますが,対して〈Uberマテリアル〉はノードが内部に組み込まれた状態で,かつインターフェイスが標準マテリアルのような状態で使いやすい状態のものになっています.

この二つはノードマテリアルです.ノードマテリアルには標準マテリアルと決定的な違いがあり,それは

ノードマテリアルはカラーチャンネルがない

という点です.ノードマテリアルのインターフェイス上では必ず〈拡散反射〉を使うことになります.

デフォルト設定ではノードマテリアルを使用してマルチパスの〈マテリアルのカラー〉は出すことができませんが,〈プロジェクト設定〉にある〈ノードマテリアルでカラーチャンネルを使う〉を「オン」にすることで,〈マテリアルのカラー〉が出力できるようになります.(デフォルトでは「オフ」になっています)

20181222_8

ただし,このオプションをオンにすると,レンダリングを〈カラーチャンネル〉で行うので,レンダリング結果が変わる点も注意しなくてはなりません.

次のシーンでは壁,床,窓枠などをノードマテリアルで作成しています.

〈ノードマテリアルでカラーチャンネルを使う〉が「オフ」の場合

ノードマテリアルは拡散反射色で計算するので,レンダリング時間は長くなります.インテリアのようなシーンをレンダリングするのであれば,ほとんどの場合は「オフ」にしていないといつまでたってもレンダリングが終わらないということになります.グローバルイルミネーション(GI)の計算結果も異なります.Cinema 4D R20では拡散反射をイラディアンスキャッシュで計算する機能がまだありません.次のようなインテリアシーンをテストしました.壁,床,巾木といった箇所はノードマテリアルです.レンダリング時間は50分ほどかかっていますが,イラディアンスキャッシュを使ってもそもそも拡散反射の照度計算をしていないので,アーティファクトがないのが分かります.窓枠や窓枠下の壁など.

これはPBRマテリアルか,ノードマテリアルであればこのようになります.

20181222_3

上: イラディアンスキャッシュ計算中(真っ白ですが)

20181222_1

アーティファクトが無いのが見て取れます.

〈ノードマテリアルでカラーチャンネルを使う〉が「オン」の場合

この場合は,カラーとして計算します.GI計算も行われているので,イラディアンスキャッシュのアーティファクトも確認できます.しかしレンダリング時間は15分ほどで完了します.色味も少し異なります.入角も暗くなっています.両方ともアンビエントオクルージョンを使用していますが,こちらの方がイラディアンスキャッシュの影響もあり,より暗くなっています.

この画像ではアーティファクトを解消するために,イラディアンスキャッシュの設定を調整する必要があることは明白です.

20181222_4

上: イラディアンスキャッシュ計算中

20181222_2

このように,ノードマテリアルを使用する際は,カラーチャンネルとして計算するかどうかを検討した方がよいです.

ただし,これはCinema 4Dの標準レンダラまたはフィジカルレンダラをつかうことが前提です.サードパーティレンダラの場合はそれぞれのレンダリング手法にあった独自マテリアルを使うことになります.

それを踏まえてインテリアシーンを仕上げてみる

テストシーンではノードマテリアルを使うことを前提に作成していきましたが,色々と追加する小物アセットには標準マテリアルのものも多くあります.いくつかはノードで作り変えていますが,さすがに全て作り変えるのは時間がかかってしまいます.それにR20ではまだ標準マテリアルからノードマテリアルとの相互変換機能というのはありません.(今後実装されるとよいのですが)

ということで,ノードマテリアルと標準マテリアルが混在しているわけです.そのため,〈ノードマテリアルでカラーチャンネルを使う〉を「オン」にして,イラディアンスキャッシュの設定もしっかり行わなければいけません.

標準マテリアルとノードマテリアルが混在している場合

次の画像は右側の白い球体のみ標準マテリアル(カラーチャンネル使用)にしています.この球体は間接照明を計算するのでGI計算対象となりますが,ノードマテリアルである壁はGI計算を行うことができません.壁は鏡面(拡散)反射で描画するのみです.これでは,標準マテリアルとノードが混在している場合にライトが最初に壁(ノード)にバウンスして,その光が球体を照らすような表現ができなくなります.

ボックス左側からライトを照らしても,ノードマテリアルである壁は間接照明計算をしないので,白い球体の右半分を間接照明で照らすことができていません.混在しているとこのような問題が発生します.

20181222_6

上: 球体のみ標準マテリアルの場合,ノードマテリアルである壁からの間接照明が表現できません.

20181222_7

上: 〈ノードマテリアルでカラーチャンネルを使用〉を「オン」にすればノードマテリアルの拡散反射はカラーとして扱われます.

反射とカラーではレンダリング時間も大幅に異なります.

標準マテリアルとノードマテリアルが混在していると,カラーチャンネルを使っているその他のアセットがノードマテリアルからの間接照明を受け取ることができなくなります.したがって今作っているシーンでGIを使うなら〈ノードマテリアルでカラーチャンネルを使用〉を「オン」にするしかありません.シーン内がすべてPBRマテリアルまたはノードマテリアルであれば「オフ」のまま試してみたかったところですが…

レンダリング設定

テストシーンは夜のインテリアなので綺麗にしようとすると,かなりのサンプル数とレコード密度が必要になります.サンプル数は〈カスタムサンプル〉にして「1024」にしましたが,テストをすると光が良く当たっていない左上天井と壁回りのアーティファクトがなかなか取れそうにありませんでした.全体のサンプル数を「2048」にしても厳しい印象ですので,全体のサンプル数は「1024」に戻して,天井と壁にコンポジットタグを適用して,タグの設定にある

〈ストカスティックサンプルの倍率〉
〈レコード密度の比率〉

を上げました.これはタグのついているオブジェクトだけイラディアンスキャッシュの計算精度をレンダリング設定の数値から上げる役割がありますが,200,300,400%などして,2倍3倍しないと効果が出にくいです.

しかしそれでも天井のアーティファクトは厳しい結果となりました.やはり暗いシーンは難しいですね.ちなみに左側にあるアルコランプのシェード上部には穴が開いていて光が上方向にも少し抜ける仕組みになっているので,その光が天井を少し照らしています.

20181222_12上: イラディアンスキャッシュ+イラディアンスキャッシュの結果

これからアセットを追加して仕上げていこうかと思います.アーティファクトの解消に関しては,天井と壁だけコンポジットタグの〈強制QMCサンプリング〉を使う方法もありますが,最終的にはプライマリを「QMC」,セカンダリを「イラディアンスキャッシュ」にしようかと思っています.

X-Particles to Redqueen

Recently I purchased X-Particles (a famous particle plugin for Cinema4D ), so I test for a while. Of course, also bought Cycles 4D but it doesn’t formally support R20 at the moment ( may be scheduled for December 2018), so I will leave Cycles4D for the moment.

X-Particles have many functions particles, smoke, flame, cloth, fluid, and many modifiers. So, very powerful and flexible controllable to particles motion.

At the first, I try some basic tutorial.

And then, I wrote code convert X-Particles data to Redqueen particle. First, from X-Particles color data to Redqueen’s particle color, it was very easy and just done.

Next, the particle of Redqueen is the geometry of the sphere. Therefore, Redqueen’s material can be used as it. So, I called X-Particles shader in the material texture each component.

One problem was openVBD has not UV data, so it had to be generated internally code.

X-Particles to Redqueen from T_makoto on Vimeo.

Advanced Render と Arnold Renderer

.建築向けウェビナーの素材を作成している中で,Cinema 4D標準のAdvanced Render(以下AR)とArnold Renderによる比較を行いました.

ARはイラディアンスキャッシュのフリッカーを分かりやすくするのが目的なので精度はそこまで高くしていませんが,仮に高くしたとしても,このようなシーンではアーティファクトが分からないレベルにするのは難しいかと思います.

Arnoldは1パスのパストレーサーなので,分散ノイズは出ますがフリッカーは出ません.従ってデノイザーを使ってある程度のノイズは除去できます.ARでもQMCモードを使用すればこのような結果を得ることはできますが,レンダリング速度はArnoldの方が速いです.ARのイラディアンスキャッシュも静止画では綺麗ですが,動画を作るとなるとフリッカー対策がネックになります.精度をあげるほどレンダリング時間も長くなるし,難しいフレームではやはりフリッカーがでることが多く,その対応に多くの時間を奪われる可能性があります.アーティファクトもデノイザーである程度綺麗にすることはできますが,あまり当てにはできません.

アニメーションをレンダリングする場合,サードパーティレンダラを使うという選択肢を一つは持っていた方がいいかもしれません.

サードパーティレンダラに関してはCinema 4Dは豊富にそろっています.代表的な物を挙げてみますと,

V-Ray
Arnold
Octane
Redshift

あたりはそれぞれアルゴリズムやCPUかGPUかが異なるものの,スピードと品質やマルチパスなどの付加機能のバランスが優れていると思います.

Advanced Render,Corona,Arnold

Cinema 4D Advanced Render

イラディアンスキャッシュ設定の練習.プライマリもセカンダリもイラディアンスキャッシュ.

20180630

サンプルは1024でレコード密度はやや荒め.奥のライトがあるおかげで,レコード密度を上げでもサンプル1024ではやや足りない印象.特に天井の隅にアーティファクトが集中する.一応天井のディテールオブジェクトにはコンポジットタグでサンプルとレコード密度は部分的に上げたものの,それでも細かなアーティファクトが若干残っていた.

そこで,Neat Imageでアーティファクツのノイズを除去してみた.まぁまぁディテール残りますね.

20180630_2

Corona Renderer

次の画像は制作過程で試したCorona Renderとの比較.CoronaもキャッシュをとるレンダラだがCinema 4Dのようにシェーディングポイントを微調整する作業は皆無でとにかく楽.しかもパストレースとキャッシュの組み合わせなのにCinema 4DのQMC+キャッシュよりはるかに速い.

20180628-1

Cinema 4Dも設定を詰めれば綺麗な絵は出せるけど,シーンごとに最適値を探る必要がある.もちろん慣れると見極めも早くなるが,Coronaのように無設定でレンダリング開始するだけでそこそこ早いのは魅力だし,多少のノイズならデノイザーでかなり綺麗になる.

Coronaマテリアルはテクスチャをビューポートで確認できるのが良い.自分もカスタムマテリアルでこれを実現したい.

Arnold Renderer

次の画像はAronld Render.テストできる環境にしてもらったので時間のある時にいじってます.謝謝.

6_rendering_GIarea_Arnold

パストレースのみの1パスレンダラなので,インテリアでは綺麗な絵にしようとすると少し時間がかかるが,こちらも分散ノイズなのである程度のノイズはデノイザーで綺麗になる.品質に関する設定はほぼ無いので,レンダリング設定にかかる時間をレンダリング時間と思えば多少レンダリング時間がかかっても良いかもしれない.

 

 

Radeon ProRender for Cinema4D – 2

ブログを書く,という行為がもはやレトロを感じてしまうようになってきた…

いろいろなブログを探していた頃が懐かしい.もちろんCinema 4Dのブロガーにもお世話になったし,CG関連のブログもよく見ていましたね.

万年筆をモデリングを少し変えてProRenderで何枚かレンダリングした.背景の布らしき物はCinema 4Dのスカルプトで作成したもので,作り直しを含めるとこのシーンでは一番時間がかかったオブジェクト..

実際に生地を使ってペンを置いて写真撮って,というリファレンスをいくつか作成してイメージを固めてからスカルプトしてます.

青いマテリアルのフレーク層は反射チャンネルのレイヤマスクにノイズかけてます.

生地はシルクをイメージしたけれど,ProRenderは異方性反射にまだ対応していないので,フレネルシェーダで作成した.反射レイヤは2層とした.

20180624-1_1K

20180624-2_1K

20180624-3_1K