Skip to content

カテゴリ: 照明基礎

R14用: 照明基礎01: ライト

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分で写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
041 1_ライト ライト、デフォルトライト、影、エリア、シャドウマップ、レイトレース、reset_pos_rot、リニアワークフロー、減衰、GI、グローバルイルミネーション、HDR、GIアニメーションの設定 2013.1.12
次の章

 

Step 1

ライトオブジェクト

 これからライトについて説明します。それではサンプル041aを開いて、「ビューをレンダリング」してみて下さい。

図041-1

 

 最初の一歩とはいえ、何とも殺風景な絵です。このシーンにはまだライトオブジェクトがありません。しかし、ライトがないのになぜオブジェクトが見えているのでしょうか。ライトがなければ何も見えないはずなのに。

 それは、「デフォルトライト」という仮のライトが働いているからです。何も見えないと不便なので、ライトがない場合は自動的にカメラの左側にデフォルトライトが発生してシーンを照明するようになっています。

 デフォルトライトはオブジェクトに表示されないので、明るさや色を変更できません。また、ライトオブジェクトを追加したり、GI(グローバルイルミネーション)設定すると自動的に消えます。

また、強制的にデフォルトライトを消して、真っ暗なシーンを作りたい場合は、「レンダリング設定 -> オプション -> デフォルトライト」のチェックを外して下さい。

図041-2

 

それでは「オブジェクト -> シーン -> ライト」を選択して、シーンにライトオブジェクトを追加しましょう。CINEMA 4Dのメニューには7種類のライトが用意されていますが、全て同じオブジェクトです。ただ設定が違っていたり、エクスプレッションがついているだけなので、どのライトから始めても目的とするライトを作れます。

追加したライトはシーンの原点(つまり床の中心)に発生します。まず名前を「light」に変更し、「light_base」オブジェクトの子にし、位置を合わせ、「ビューをレンダリング」してみて下さい。

図041-3

 

まだまだですが、ライトの位置がカメラから天井に移動したことで、少しは立体感がでました。

また、ここでオブジェクトの位置を合わせるために、「reset_pos_rot」というカスタムスクリプトを使いました。「reset_pos_rot」には「cmd + /」というショートカットが割り当てられています。これをインストールするには、以下のページの説明にしたがって下さい。

講習会で使うCINEMA 4Dのカスタム設定について

 

 

Step 2

 次に、ライトが影を落とすように設定します。CINEMA 4Dのライトには3種類の影がありますが、一番よく使うのは「エリア」です。「シャドウマップ」は、一番計算が速いので昔はよく使いましたが、「細かい影を描けない」とか「無限遠光に使えない」等の欠点があるので現在はほとんど使いません。「レイトレース」は、エリアより速い代わりに「影のエッジがシャープすぎる」という欠点があります。したがって、弱い光源を大量(数百個以上)に置く場合等に使います。それでは、「light」を選択し、属性マネージャの「一般」タブで「影のタイプ」を「エリア」に変更し、「ビューをレンダリング」して下さい。

図041-4

 

影の中が真っ黒ですが、影が生じたことで床に対する接地感がでました。

従来であれば、この影の中に陰影を付けるため、補助的なライトを何個か追加しました。現在でもGIの使えない「CINEMA 4D Prime」ではこの手法を使いますが、GIを使えばより簡単に正確な陰影を表現できます。したがって、今回は補助ライトを追加せずに、話を次に進めます。

 

また、現在の影をよく見ると形がいびつです。これは、エリアライトの形状と向きがシーンに合っていないからです。現在エリアライトは正方形で、垂直に立っています。これでは自然な影になりません。

ライトの「詳細」タブで「エリア形状」を「球」に変更して下さい。「エリア形状」を「球」にしておけば、ライトの方向を気にする必要がありません。したがって、ライトの「放射タイプ」が「全方向」の場合、普通はエリア形状を「球」にします。

また、「詳細」タブで「サイズX、Y、Z」を「100」に変更して下さい。これは、エリアライトの上端が天井に干渉するのを防ぐためです。エリアライトの一部がオブジェクトの内部に入った場合、その部分は「シーン全体に対して影を落とす」ことになり、結果的に砂目状のノイズが発生します。

図041-5

 

 

 

Step 3

減衰

 次に、ライトから放射された光が減衰するように設定します。CINEMA 4Dは R12以降、レンダリングの計算をリニア空間で実行するようになっているので、光の減衰は現実と同じように「(距離の)2乗に反比例」を選択します。ただし、R11以前のファイルを開いた場合等はリニア空間を使わない古い設定になってしまうので、必ずプロジェクト設定を開いて、「リニアワークフロー」をチェックし、「入力カラープロフィル」を「リニア」に切り替えて下さい。それでは、「light」を選択し、属性マネージャの詳細タブで「減衰」を「2乗に反比例」、「減衰基準距離」を「300」に変更し、「ビューをレンダリング」して下さい。

図041-6

 

依然として影の中は真っ黒ですが、壁の上部に比べて床が暗くなり、ライトの存在感が増しました。

 

これでライトの設定は終わりです。3DCGにおけるライトの働きは、簡単に言うなら「光を放射すること」ですが、もう少し詳しく言うと「直接光を出すこと」です。

現実世界でもライトは直接光を放射するのでこの点は同じです。しかし現実世界では、壁に当たった光は自然と反射され「間接光」になります。この間接光による照明が「間接照明」ですが、「レイトレーシング」の計算では壁に当たった光はそこで消えてしまいます。つまり、間接光は発生せず、したがって間接照明も表現されないわけです。これが、「影(陰)の中が真っ黒」である理由です。

これは、絵的には大問題なのですが、ライトオブジェクトの仕事は「直接光」を出すことだけであり、その後「間接光」がどうなるかまでは決められません。理由は、間接光の性質が「マテリアル」に大きく左右されるからです。

そこで、次のステップでは間接照明を扱うための機能である「GI(グローバルイルミネーション)」について説明し、影の問題を解決します。また、間接光とマテリアルの関係については、次の章や、「GI基礎」の講習で詳しく説明します。

 

 

Step 4

GI(グローバルイルミネーション)

 次に、GIを使ってレンダリングしてみます。GIという言葉の元々の意味は、「光が持っている性質を全て(グローバルに)計算して、自然な照明(イルミネーション)を再現する」ということでした。したがって、基本的にはレイトレーシングによる光の鏡面反射や屈折の表現もGIに含まれます。しかし、現在3DCGの世界で使われる「GI」という言葉はもう少し限定されていて、パストレーシングによる「オブジェクト間の光の相互反射」または「間接照明」を意味します。というわけで、このテキストでも「GI」と「間接照明」をほぼ同義の言葉として使います。ただし、技術の進歩とともに「GI」という言葉の意味も変っていくと思われるので、この点は注意してください。それでは、レンダリング設定で「特殊効果」から「グローバルイルミネーション」を選択し、「ビューをレンダリング」して下さい。

図041-7

 

「明るすぎる」という問題があるものの、ずいぶんリアルな絵になりました。

しかしGIの計算は、レイトレーシングの計算に比べて時間がかかります。たとえば私のMacBookAirでは、ステップ3の計算に2秒しかかかりませんでしたが、GIの計算には13秒もかかりました。

一般的に、GIの計算には単純なレイトレーシングの計算の数十倍の時間がかかります。例えば、ステップ3のシーンで影のタイプを「レイトレース」にすると1秒以下で計算が終わります。

 

しかし、ここ数年で「単純なレイトレーシング」を使う機会はかなり減りました。例えば「エリアシャドウ」、「ぼけた鏡面反射、屈折」、「アンビエントオクルージョン」、「被写界深度」、「モーションブラー」といった特殊効果を使うことが多くなり、これらは、GI程ではないにしてもやはり「単純なレイトレーシング」の数倍の計算時間がかかります。

これらの計算には「分散レイトレーシング」という技術を使うのですが、ここでは「複雑なレイトレーシング」と呼ぶことにしましょう。そして、複雑なレイトレーシングを組み合わせてシーンを作っていくと、いつの間にかGIを使うのと変らない計算時間がかかるようになり、「これならGIを使っても大差ないな」という「消極的な理由」から私はGIを使うことが多くなりました。

そして、一度GIを使ってしまうともうレイトレーシングには戻れません。なぜなら、GIで得られる自然な絵をレイトレーシングの機能だけで得るのは不可能だからです。また、GIを使った方が簡単にシーンを作成できます。これは、現実には存在しない「補助的なライト」や「補助的なマテリアル、テクスチャ」を置く必要がないからです。

 

GIを使いこなすための基本は、「GIの設定を最適化する」ことにつきます。ところがこれが難しい。GIの設定が難しいのは次のような理由があるからです。

1. GIの計算に向いたシーンと向かないシーンでは、計算時間に数十倍の差が出る。

仕事を始める前にこれを見切れないと納期や予算を見積もれません。また、現状ではGIを使えない場合もよくあるので、こういう場合は速い段階で仕事の内容を変えるか、断る必要があります。

2. どんなシーンであれ、適切な設定と不適切な設定では、計算時間に数百倍の差が出る。

まずCINEMA 4Dのデフォルト設定やマニュアルに書いてある設定は全く役に立ちません。このテキストでは、格段に実用的な設定を説明しますが、それでも万能ではありません。最適な設定は、シーンの構成や仕事の内容によって大きく変わるからです。この部分は各ユーザが努力して調整するしかありません。

またこのような性質から、GIの計算において「速いコンピュータを買う」というのはほとんど意味がありません。「速い」と言ってもせいぜい5倍です。これを10台買っても50倍に過ぎません。速いコンピュータを10台並べても、「最適な設定」には全くかなわないのです。

むしろ、速いコンピュータを買うと「コンピュータが速いから、GIの設定は適当でいいだろう」という「慢心」や「油断」が生じ、ロクな絵を作れない場合がよくあります。

3. GIの多くのパラメータに「最適値」があり、それより大きくしても小さくしても計算時間が長くなる。

ここがGIの一番難しいところです。GIの設定については、次の照明基礎02で詳しく解説します。

4. アニメーションを作るのが難しい

静止画もアニメーションも基本的な設定方法は同じです。しかし、GIのアニメーションでは計算誤差による「ちらつき」が発生するので、これを抑えるためにより的確な設定が必要になります。

GIのパラメータを理解する前にアニメーションを作っても全く勉強にならないので、まずは自由自在に静止画を作れるようになることを目標とするといいでしょう。

 

 

Step 5

32bitの画像フォーマット(HDR)

 ここでは、ステップ4で残っていた「明るすぎる」という問題を解決します。まず、「明るすぎる」という問題は、画像フォーマットを32bit(HDR等)にすることで簡単に解決できます。従来の8bitや16bitの画像フォーマット(JPEGやPNG、QuickTime等)を使う場合、シーンの明るさはレンダリング前に調整しておく必要がありました。理由は、これらのフォーマットが「白より明るい色を記録できない」からです。言い換えると、これらのフォーマットで絵の中の白く飛んでしまった部分を後から調整するのは不可能でした。しかし32bitのフォーマットを使うと、この「白く飛んでしまった部分」を後からどうにでも調整できるのです。それではやってみましょう。まず、レンダリング設定の「保存」タブで、「ファイル」に適切なファイル名を指定し、「フォーマット」を「Radiance(HDR)」に変更し、「画像表示にレンダリング」を実行します。

図041-8

 

ここで画像表示ウインドウを見ると、ステップ4でレンダリングした「明るすぎる」画像が表示されているはずです。しかし、ウインドウ右にあるフィルタ機能を有効にし、「露出」の値をたとえば「-1」にすると、全体が暗くなり、球体の上部や壁の上部等の白く飛んでいた部分の色が正しく表示されるはずです。

図041-9

 

また、露出の値をプラスにすれば、立方体の陰の中の暗い部分が明るくなります。また、ここでガンマを変更することもできます。そして、このように明るさを大きく変更しても階調が粗くなることはありません。

このように、HDRを使えばシーンの明るさを気にせず作業を進められます。HDRフォーマットからPSDやJPEGフォーマットへの変換は、CINEMA 4Dの画像表示でもできますし、PhotoshopやAfterEffects等の画像編集ソフトでもできます。したがって、アニメーションを作る場合でも、いきなりQuickTime等でムービーファイルを書き出すのではなく、一度HDRの連番画像で保存し、各種の調整をした後でムービーに変換した方が効率よく作業を進められると思います。

サンプル041b

 

次の章

R14用: 照明基礎02: GIの設定

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分でも写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
042 2_GIの設定 心構え、GIモード、拡散反射回数、フルスクリーンモード、エリアシャドウ、計算精度、最小サンプル数、最大サンプル数、サンプル、イラディアンスキャッシュ、プレパス、コンポジットタグ、GIエリア、GIポータル、レコード密度、最小レート、最大レート、半径、最小半径、密度コントロール、GIアニメーションの設定 2013.1.12
前の章 次の章

 

Step 1

心構え

 この章では、照明基礎01で作成したシーンを使って、GIの設定の基本を説明します。初めに「心構え」について説明します。なぜこんなことを書くかというと、「GIがうまく使えない」とか、「GIが遅い」という人の話をよく聞いてみると、「絵作り」とか「技術」以前にここで間違っている人が多いからです。1. これはGIに限ったことではありませんが、「知らない機能はいじらない」というのが鉄則です。「知らない機能を適当にいじってリアル絵ができることは絶対にありません」。また、「知らない機能を適当にいじると元に戻せなくなります」。つまり、「知らない機能を適当にいじった段階で、リアルな絵ができる可能性は消滅する」ということを肝に銘じておいて下さい。

3DCGの機能の中には、理解しなくても使えるものや、適当にいじっているうちに理解できる簡単なものもたくさんあります。しかしGIは、専門知識のない人間が適当にいじって理解できる程簡単ではありません。

 

2. 次に、これもGIに限ったことではありませんが、「知らない機能」に対応するには二つの方法があります。

一つは「物理」、「数学」、「プログラミング」等の専門書をたくさん読んで、何年もかけてその機能を真に理解して使う方法です。もう一つは、「マニュアル」や「このテキスト」、「書籍」、「Webで公開されているチュートリアル」等の情報を信じて、その機能を理解しないまま使う方法です。

どちらの方法で対応するかは各自の責任で決めて下さい。また、後者の場合にどの情報源を信用するかも各自でテストして決める必要があります。

 

 

Step 2

一般 -> GIモード

 CINEMA 4Dには多くのGIモードがありますが、R14で実用的なのは「IR(静止画)」だけです。静止画に限らず、カメラアニメーション、フルアニメーション、及びそれらのNETレンダリング全てにおいて、「IR(静止画)」を使うようにして下さい。この点に関して、マニュアルや他のチュートリアルでは、「状況に応じて最適なモードを使う」ように書いてありますが、私の経験によれば、全ての状況に対して「IR(静止画)」が最も適しています。

 

Step 3

一般 -> 拡散反射回数

 本来、基礎の講習でパラメータの最適化等の細かい話はしないものですが、GIの場合パラメータのバランスによって画質やレンダリング時間が大きく変わります。そこで、いくつかの重要なパラメータに関して、「具体的な数値」を「レンダリング時間」と比較しながら説明します。また、ここから先は、レンダリング時間を厳密に比較するため、エディターへのプレビューレンダリングではなく、「画像表示にレンダリング」機能を使ってレンダリングします。まずサンプル042aを開いて、「画像表示にレンダリング」して下さい。これは照明基礎01で作成したサンプル041bと全く同じです。レンダリング時間は「27秒」でした。


図042-1

 

ここで、CINEMA 4Dでは「フルスクリーンモード(control + tab)」を実行すると、選択したウインドウを最大化できます。

 

次に、この絵はまだ不完全です。なぜなら図042-1では間接照明を1回しか計算していないからです。つまり、ライトから出た「直接光(0番目)」が壁に当たると、そこから「間接光(1番目)」が出ます。しかし、この「間接光(1番目)」が壁に当たっても、そこから「間接光(2番目)」が出ないのです。

これはレンダリング時間を短縮するために省略されているのです。もちろん、間接光を際限なく計算するのは無駄ですが、省略し過ぎると「GIらしい絵」になりません。

それでは、「拡散反射回数」の値を「4」に増やして、結果を比べてみましょう。


図042-2

 

どうでしょうか、拡散反射を4回計算することで、影の中がずいぶん明るくなり、立体感が増しました。レンダリング時間は少しのびて「30秒」になりましたが、絵の「品質」を考えると、やはり拡散反射回数の値は4回以上にしたいものです。

ただし、シーンの構成によっては拡散反射回数の値を「4」にすると、レンダリング時間が何倍にものびる場合があります。それは、奥まった部分やガラスのような屈折するマテリアルを多く含んだシーンに多いのですが、このような場合は、この値を「3」、「2」と減らしてみて下さい。

 

 

Step 4

エリアシャドウの最適化

 それでは次に、図042-2(レンダリング時間30秒)を基準として、画質を落とさずにレンダリング時間をどこまで短縮できるか検討します。まず最初に、エリアシャドウの設定を最適化します。エリアシャドウは、厳密にはGIとは異なる機能ですが、GIと併用することが多く、レンダリングのアルゴリズムも似ています。ここで、エリアシャドウの設定を変える際に、GIの計算をする必要はないので、 レンダリング設定で「グローバルイルミネーション」特殊効果のチェックを外し、再度「画像表示にレンダリング」します。


図042-3

 

レンダリング時間は「7秒」でした。これを何とか半分ぐらいに縮めます。

まずエリアシャドウには「計算精度」、「最小サンプル数」、「最大サンプル数」の3個のパラメータがあります。そして、あるピクセルを計算する際に、その周囲の「明るさの変化」が小さければ最小サンプル数が使われ、変化が大きければ最大サンプル数が使われます。そして、その「明るさの変化」の度合いを決めるのが計算精度の値です。

ここで、「サンプル数」というと難しく聞こえますが、要は「光を何本飛ばすか」ということです。

さて、デフォルトでは「最小サンプル数」が「8」、「最大サンプル数」が「100」になっています。これは、「白い床に黒い影が落ちる」といった最も難しい条件を想定して決められた値なので、「光が弱い場合」や、「床の色が濃い場合」、「GIを使う場合」、「アンチエイリアスを使う場合」などは減らせます。今回もGIを使っているので、「4」と「32」ぐらいに減らしてみましょう。


図042-4

 

計算時間を「3秒」に短縮できました。確かに影が粗くなっていますが、GIやアンチエイリアスをかければほとんどわからなくなるはずです。一般的に、これらの値は「2 – 16」から「6 – 48」ぐらいの間で調整するといいでしょう。

なお、計算精度の値は「75」のままで十分です。

 

 

Step 5

サンプリング -> サンプル

 次にGIの「イラディアンスキャッシュ(IRの記録)」を最適化します。イラディアンスキャッシュというのは、GI計算のプレパスで表示される「白い点々」の集まりのことで、これらの点一つ一つの中にその部分の明るさの情報が入っています。つまり、GIを正確にレンダリングするには、以下の二つが重要となるわけです。1. 白い点々の中に含まれる明るさ情報が正確であること。2. 白い点々が十分に細かいこと。

そして、この白い点々の「正確さ」を決めるのが、「サンプル」の値です。

それでは、このサンプルの値を「中」から「低」に下げてください。


図042-5

 

サンプル数を減らしても、レンダリング時間はが「26秒」とほぼ変っていません。それでは、イラディアンスキャッシュを生成するための「プレパス」だけを比較してみましょう。


図042-6

 

イラディアンスキャッシュの精度が悪くなったかわりに、計算時間は「6秒」短くなっています。ところが、イラディアンスキャッシュの精度が悪くなると、最終レンダリング時にそれを補間するのが難しくなり、結果的に全体のレンダリング時間は変らなくなってしまうのです。

GIの設定をしていると、こういうことがよくあります。これがGI設定の難しさです。というわけで、サンプルの値は「中」に戻しましょう。

 

一般的に、サンプルの値は「中」か「高」のどちらかで使います。「低」にしても速くなりませんし、「高」より上げてもきれいになりません。

ほとんどの場合、静止画は「高」で十分ですが、アニメーションでは「高」でも画面のちらつきが気になる場合があります。しかし、そのような難しいシーンで単純にサンプルの値を上げても、レンダリング時間がのびるばかりで、画質はそれほどよくなりません。したがってそのような場合は、後の章で説明する「コンポジットタグ」や「GIエリア」、「GIポータル」といった機能を使って、「部分的に計算精度を上げる」戦略を取るようにして下さい。

 

 

Step 6

イラディアンキャッシュ -> レコード密度

 次に、ステップ5で説明した白い点々の「細かさ」を決めるのが、「レコード密度」の値です。レコード密度には、大きく分けて2種類のパラメータがあります。1. プレパス計算のサイズや回数を指定するパラメータ(「最小レート」、「最大レート」)。2. 白い点々の密度を決めるパラメータ(「半径」、「最小半径」、「密度コントロール」)。

「プレパス計算」というのは、最終レンダリングの前に白い点々を計算することで、解像度を上げながら何回かくり返されます。たとえば、「最小レート」の値が「-3」で「最大レート」の値が「0」の場合、「解像度1/8」、「解像度1/4」、「解像度1/2」、「等倍(フルサイズ)」の4回プレパス計算がくり返されます。

レコード密度のパラメータは、シーンに細かいオブジェクトが存在する場合細かくする必要があります。しかし、今回のシーンにはそれ程細かいオブジェクトが存在しないので、「低」にしてみます。


図042-7

 

レンダリング時間は半分以下の「11秒」となりました。しかし、明らかに細かい部分の画質が低下したので少しだけパラメータを戻します。それでは、「半径」の値を「16」にして下さい。


図042-8

 

レンダリング時間は「13秒」にのびましたが、影の部分の「光漏れ」が解消されました。

GIの設定において、レコード密度のパラメータは最も重要です。それは、最も画質に影響し、最もレンダリング時間に影響を与え、最も値を決めるのが難しいからです。

また言いかえれば、レコード密度の値が適切でないかぎり、他のパラメータをどんなにいじっても絶対にいい絵はできないということです。心して設定して下さい。

 

一般的に、レコード密度の値は「低」を基本として、「半径」の値だけを「2 – 16」の間で変えることをお勧めします。それ以外のパラメータは、その意味を十分に理解していない限り触らない方がいいです。

サンプル042b

 

前の章 次の章

R14用: 照明基礎03: GIエリア

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分でも写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
043 3_GIエリア GIエリア、発光するマテリアル、レイトレーシング、直接光、間接光、発光、ボリュームイフェクト、IBL、HDRパノラマ、実写合成、アンチエイリアス、マイナス成分をクリップ、GIエリアライト、GIポータル、GIアニメーションの設定 2013.1.12
前の章 次の章

Step 1

GIエリア(発光するマテリアル)による照明

 この章では、照明基礎02で作成したシーンを元にして、「ライトを使わない照明(GIエリア)」について説明します。まず、サンプル043aサンプル043bを開いて、画像表示にレンダリングして下さい。サンプル043aは、照明基礎02で作成したサンプル042bと全く同じものです。

図043-1

 レンダリング時間は、043aが「13秒」、043bが「15秒」で大差ありません。

この二つの画像は、見た目はよく似ていますが、シーンの構成には「非常に大きな違い」があります。それは「ライトの有無」です。043aはライトによって普通に照明されていますが、043bにはライトが存在せず、その代わり「発光するマテリアルを適用したオブジェクト(GIエリアライト)」によって照明されているのです。

図043-2

 この違いは、レンダリング設定で「グローバルイルミネーション」特殊効果のチェックを外して、レイトレーシングだけでレンダリングしてみるとよくわかります。

図043-3

 この二つの画像は、大きく違っています。しかし、GIを適用してレンダリングすると、図043-1のように似た画像になるのです。これは別に画像が壊れたり、リンクが間違っているわけではありません。

このような違いが生じる理由について次のステップで説明します。

 

 

Step 2

レイトレーシングとGIの関係

 まず、「レイトレーシング」という計算方法では「ライトから出た光(直接光)」による照明だけが計算されます。したがって、GIを切った043aでは天井や壁は照明されているものの、立方体や球体の陰は真っ暗です。さらに、043bでは、ライトが存在しないので照明が全くありません。唯一、発光するマテリアルを適用した「GI_area_light」オブジェクトだけが見えています。次に、「GI(グローバルイルミネーション)」という計算方法を追加すると「それ以外の光(発光や間接光)」による照明も計算されます。ただし、GIはライトから出た光を計算しません。これはとても重要な点です。つまり、ライトから出た「最初の光」はレイトレーシングが計算し、オブジェクトによって反射された「2回目以降の光」をGIが計算するのです。言い換えると、レイトレーシングは「直接光だけ」を計算し、GIは「間接光だけ」を計算するわけです。したがって、「GIの計算は、レイトレーシングの結果を元にして始まる」と言えます。また、「GIの結果は単独では意味を持たず、レイトレーシングの結果に加算されて初めて意味を持つ」とも言えます。

たとえば、マルチパスレンダリング機能を使って、図043-1の絵の中のGI成分だけを取り出すと下のようになります。つまり、これらの絵を図043-3の絵と加算合成すると、図043-1の絵になるわけです。

図043-4

 

まず、上左の絵の天井中央部分に注目すると、ライトからの直接光が計算されていないことがわかります。次に、上右の絵の天井中央部分に注目すると、「発光するマテリアルから出た光」が天井を照明していることがわかります。

つまり、CINEMA 4Dの世界では「発光するマテリアルから出た光」というのは、「間接光」と同じ扱いになるのです。この他、ライトの「可視照明」や、「PyroCluster」などのボリュームエフェクトから出た光も「間接光」として扱われます。

また、一つ上の図043-3の2枚の絵を比較して、どちらの方が「その後のGIの計算が楽か」と考えてみれば、直感的に右の真っ暗な絵の方が大変であるとわかるでしょう。

 

 

Step 3

GIエリア(発光するマテリアル)の利点

 そのためには特殊なHDRパノラマ画像を用意する必要がありますが、適切な画像が得られれば、通常のライトやオブジェクトの組み合わせでは表現できないようなリアルな絵を、簡単に表現できます。また、画像を使って照明すれば、レンダリングした画像が元の画像によく馴染むので、3DCGの画像を実写画像に合成する目的でもよくIBLが使われます。

 このように、通常のライトで十分間に合うようなケースで発光するマテリアルを使う利点はありません。しかし、次のようなケースでは大きな利点があります。1. ライトが大きかったり、形状が複雑である場合

たとえば、サンプル043-1で天井の「GI_area_light」を消し、両側の壁を発光させると次のようになります(サンプル043c)。

図043-5

 レンダリング時間は「7秒」でした。このようなケースでは、無理にエリアライトなどを使うよりも、発光するマテリアルを使った方が、シーンの作成が楽です。また、レンダリング時間や画質の点でも有利です。

 

2. ライトが無数にある場合

たとえば、高層ビルの中の天井に配置された無数の蛍光灯や、巨大な橋や塔に取り付けられた無数のイルミネーションを全てライトオブジェクトで表現するのは無理です。

このようなケースでも、無数のライトをポリゴンやテクスチャで表現し、発光するマテリアルを適用してGIでレンダリングすれば、それら無数のライトによる照明を十分な品質で表現できます。

 

3. IBL(イメージベースドライティング、照明基礎04を参照)

IBLは、ライトオブジェクトの「代用品」として発光するマテリアルを使うのではなく、もっと積極的に「発光する画像だけでリアルな背景を表現する」ことを目的としています。

図043-6

 

そのためには特殊なHDRパノラマ画像を用意する必要がありますが、適切な画像が得られれば、通常のライトやオブジェクトの組み合わせでは表現できないようなリアルな絵を、簡単に表現できます。

また、画像を使って照明すれば、レンダリングした画像が元の画像によく馴染むので、3DCGの画像を実写画像に合成する目的でもよくIBLが使われます。

 

 

Step 4

GIエリアライト

 それでは、サンプル043bに戻って、このシーンのGIパラメータを最適化することを考えましょう。まず、043bの「GI_area_light」オブジェクトの周辺を見ると「黒い縁」があることに気がつきます。これは発光するマテリアルが非常に明るいため、そのアンチエイリアスの「マイナス成分」が0を切っているからです。アンチアイリアスにマイナス成分が発生するのは、画像をシャープに見せるためで、R13から追加された機能です。この問題を解決するには、「レンダリング設定 -> アンチエイリアス -> マイナス成分をクリップ」をチェックします。

図043-7

 

次に、043bにはかなりムラがあります。図043-1右図の天井の隅を見るとそれがよくわかります。そこで、なるべくレンダリング時間を増やさずに、このムラを消す方法を考えます。

まず最初に思いつくのは、「ストカスティックサンプル」の値を大きくすることです。「ストカスティックサンプル」は、「GIのプレパスで計算される白い点々に含まれる明るさ情報の正確さ」を決定するパラメータです。それでは、この値を「中」から「高」に上げて「画像表示にレンダリング」してみましょう。

図043-8

 

レンダリング時間は「34秒」に伸びましたが、確かにムラが少なくなりました。

それでは、次に「GIエリアライト」というパラメータを追加してみます。

ここまでのGIの設定では、GIはシーンの明るさを「手探り」で計算していました。つまり、どこに明るいオブジェクト(このシーンでは「GI_area_light」)があるのかわからないので、明るさを調べるための光を、全ての方向に「均等に」放射していたのです。この光の本数が「ストカスティックサンプル」の数です。

しかし、「もしGIを計算する前に明るいオブジェクトがどこにあるのかわかっていれば」話は簡単です。明るさを調べるための光を、そのオブジェクトの方向に「重点的に」放射すればいいのです。この「明るいオブジェクトがどこにあるのかをGIに教えるためのパラメータ」が「GIエリアライト」です。

「GIエリアライト」はマテリアルの中で設定します。それでは「light」マテリアルをダブルクリックし、マテリアル編集ウインドウを開いて下さい。そして、「GIと照明モデル」ページで、「GIエリアライト」をチェックします。

これで、「このマテリアルは非常に明るい」ということをGIに教えることができました。そして、このマテリアルが「GI_area_light」オブジェクトに適用されています。

と同時に、「ストカスティックサンプル」の値は「高」から「中」に戻しておきましょう。この状態で「画像表示にレンダリング」して下さい。

図043-9

レンダリング時間は「14秒」と短くなったにもかかわらず、「ストカスティックサンプル」の値を「高」にした場合と同じか、それ以上にムラなくレンダリングできました。

結論として、GIエリアライトを使うことによって、レンダリング時間を半分に短縮できたことになります。これだけでも十分な効果ですが、実は次のステップ5や、照明基礎04で扱うようなコントラストの高いシーンでは、GIエリアライトをうまく使うことで、レンダリング時間を1/10以下に短縮できます。

ですから、コントラストの高いシーンをGIでレンダリングしていて、計算時間が異常に長くなったり、ムラが消えない場合は、まずこの「GIエリアライト」を適切に設定してみて下さい。

 

 

Step 5

GIポータル

 「GIポータル」は、非常に重要なパラメータです。GIポータルの「ポータル」は、「入り口」という意味で、CINEMA 4Dの中では「(GIの)取り入れ口」つまり「(GIの)窓」というような意味で使われます。GIポータルの働きは、基本的に前のステップで説明した発光するマテリアルに対する「GIエリアライト」と同じですが、「窓である」点が異なっています。つまり、発光するマテリアルに「GIエリアライト」を指定した場合、GIはそのマテリアルに注目し、そのマテリアルの明るさを計算します。これに対して、「GIポータル」を指定した場合、GIは同じようにGIポータル(窓)を注目しますが、計算されるのは「GIポータルの先に見える外の風景の明るさ」なのです。

ある人は、「それなら、外の風景全てに直接GIエリアライトを指定すればいい」と考えるかも知れません。しかし「外の風景全てに注目する」というのは不可能で、結局「何も注目しない」というのと同じことです。

「窓から見える風景だけ」に絞ってGIに注目させる。そこにGIポータルの利点があります。そしてこの時、「窓から見える風景」というのは壁や床の位置によって大きく変わります。

それでは、サンプル043dを開いて下さい。

このサンプルでは、部屋の天井の真ん中に天窓が作ってあります。そして、窓の上には発光するマテリアルを適用した「GI_area_light」オブジェクトが浮かんでいます。

このシーンを前のステップと同じGIの設定で「画像表示にレンダリング」すると次のようになります。

図043-10

 

レンダリング時間は「16秒」ですが、シーンのコントラストが上がったため、お化け屋敷のような質感になっています。

それでは、「ストカスティックサンプル」の値を「高」に上げて「画像表示にレンダリング」してみて下さい。

図043-11

 

レンダリング時間は「36秒」に伸びましたが、あまりよくなっていません。おそらくレンダリング時間が10倍になるほど値を上げてもムラは消えないでしょう。

 

それでは、次にGIポータルを設定してみます。

まず、「GI_portal」マテリアルをダブルクリックし、マテリアル編集ウインドウを開いて下さい。そして、「GIと照明モデル」ページで、「GIポータル」をチェックして下さい。このマテリアルは「Window」オブジェクトに適用されています。

と同時に、「ストカスティックサンプル」の値は「中」に戻しておきましょう。この状態で「画像表示にレンダリング」して下さい。

図043-12

 

レンダリング時間は「22秒」と短くなったにもかかわらず、かなりよくなりました。これがGIポータルの効果です。

 

 

前の章 次の章

R14用: 照明基礎04: GIエリア

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分でも写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
044 4_IBL IBL、イメージベースドライティング、実写合成、HDRパノラマ、空オブジェクト、空/スカイを個別サンプリング、スカイサンプラー、全ピクセルでサンプル、砂目状のノイズ、カスタムサンプル数を使う、サンプル数、GIアニメーションの設定 2013.1.12
前の章

 

Step 1

IBL(イメージベースドライティング)

 イメージベースドライティングというのは、「画像を使ってシーンを照明する」ことであり、これによって「画像を使って環境を作る」ことが可能になります。照明基礎03では「発光するオブジェクトを使ってシーンを照明する」方法について説明しましたが、それをさらに一歩進めた方法だと言えます。まずIBLの利点について三つ説明します。

1. 画像を使って照明するので、3Dオブジェクトの色や陰影がその画像によく馴染む。

したがって、実写画像に3DCGの画像を合成する際によく使われます。

図044-1

2. 照明だけでなくハイライトや鏡面反射もリアルに表現できる。

したがって、周囲に写り込むオブジェクトを作る必要がなく、シーンの構成が非常に簡単になります。

図044-2

3. 写真を扱うことで絵作りの勉強ができる。

実はこれはとても重要なことです。3DCGでリアルな画像を作るには、技術以前に「リアルとは何か」を理解しておく必要があります。そして、この理解は現実の世界を注意深く観察することによって得られます。写真そのものは現実ではありませんが、現実を注意深く観察するための手段として、また観察力を養うための訓練方法としてとても有効です。

 

下の写真は今回のサンプルファイルに使用するHDRパノラマ画像で、私が撮影しました。-10EVから0EVまで5段階に露出を変えて撮影した合計150枚の写真を合成して作っています。カメラはCanon EOS kiss X4、レンズはSigmaの15mmを使いました。

図044-3a

HDRパノラマ画像をダウンロードする(約9MB)

HDRパノラマ画像の明るさを変えたムービーを見る

150枚の元画像を見る(約500KB)

図044-3b

HDRパノラマ画像をダウンロードする(約9MB)

HDRパノラマ画像の明るさを変えたムービーを見る

 

次にIBLの欠点について三つ説明します。

1. そもそもIBL用の画像を作るのが難しい。

IBLに使う画像は二つの点で特殊です。一つは、シーン全体を覆って照明するため「パノラマ写真」であること。もう一つは、太陽などの明るい部分の情報を正確に持っている「HDR画像」であることです。

15年前にフィルムカメラを使ってHDRパノラマ画像を作るのは本当に大変でした。しかし、現在ではデジタルカメラで数十枚の写真を撮影し、それをつなぐことで比較的簡単に作れます。また、そのためのハードウエアやソフトウエアもいろいろ市販されています。IBL用にHDRパノラマ画像の素材集もいろいろ市販されていますが、私としては、絵作りや写真の勉強も兼ねて自分でHDRパノラマを作ることをお勧めします。そんなに難しいものではありません。

2. レンダリング時間が長い。

GIを使ってコントラストの高いシーンをレンダリングするので、どうしてもレンダリング時間が長くなります。ただし、同様の品質の背景を通常のオブジェクトとマテリアルで作る場合に比べたら、はるかに簡単に制作でき、短時間でレンダリングできます。

3. 空など遠くにあるものは問題ないが、地面や壁など近くにあるものは扱いが難しい。

これはIBL用の画像を空オブジェクト(無限球)に貼付けた場合、「それに触れない」からです。この問題は、特にオブジェクトを床に置いて影を描かせる場合に顕著になります。

このような場合は、床だけ通常のオブジェクトで作成し、どこかで背景とスムーズにつなぐ必要があります。

 

 

Step 2

IBLを使ってレンダリングしてみる

 それでは、さっそくIBLを使ってレンダリングしてみましょう。まずステップ1に戻ってHDRパノラマ画像を2枚ダウンロードしてください。次にサンプル044aを開いて下さい。このサンプルには、GIの効果を確認しやすいように中庭のある建物を簡略化したオブジェクトが入っています。また、HDRパノラマ画像は発光チャンネルに入れて「空」オブジェクト(無限球)に貼ってあります。それでは画像表示にレンダリングして下さい。

図044-4

 

最初は、照明基礎02と同じGIの設定でレンダリングしてみました。レンダリング時間は「6秒」で画質もまあまあです。R13まではこの画質を得るのに非常に面倒な設定が必要でしたが、R14ではあっけない程簡単です。

それでは、IBLをもう一枚のHDR画像に切り替えてみます。このHDR画像は非常にコントラストが高く、最も難しい部類に入ります。

図044-5

 

レンダリング時間は「7秒」でした。影が甘いのが気になりますが、特に目立つようなムラはありません。

それでは、ストカスティックサンプルを「高」、レコード密度の半径を「2」にして再度レンダリングしてみましょう。

図044-6

 レンダリング時間は「43秒」と長くなりましたが、だいぶ影がシャープになりました。

 

 

Step 3

空/スカイを個別サンプリング

 前のステップでは、画質を上げたい場合は「ストカスティックサンプル」や「レコード密度」の値を上げる、という基本にしたがって、影をシャープにしました。それに対してこのステップでは、影をシャープにするためのもう一つの方法を説明します。さて、R13までのCINEMA 4Dには「スカイサンプラー」という大変使いやすいGIモードがありました。しかしR14ではこの「スカイサンプラー」が廃止され、他のモードの中に組み込まれてしまいました。この統合にはいい面と悪い面の両方があります。いい面、他のGIモードとスカイサンプラーを同時に使えるようになった。悪い面、設定が面倒になり、レンダリング速度が遅くなった。

 

そして、このステップで説明するのは、このスカイサンプラーの機能を使う方法です。とは言っても、実は「IR(静止画)」モードを選択すると、既にスカイサンプラーの機能は働いています。だからステップ2で簡単にきれいな絵ができたのです。

というわけで、ここではスカイサンプラー機能の詳細について説明します。スカイサンプラーの機能は、「サンプリング -> 空/スカイを個別サンプリング」という部分にあります。そして、この中には二つのオプションがあります。それでは「全ピクセルでサンプル」をチェックして下さい。

と同時に、「ストカスティックサンプル」と「レコード密度 -> 半径」の値を「中」と「16」に戻します。この状態でレンダリングしてみて下さい。

図044-7

 レンダリング時間は「24秒」にのびましたが、非常にシャープな影が描かれています。

R12用のテキストでは、影をシャープにするためにライトを追加する方法を説明したのですが、R14ではライトを置かなくても十分にシャープな影を描けます。

しかし、「全ピクセルでサンプル」を使うと、スカイサンプラーの場合と同様に「砂目状のノイズ」が目立つようになります。そこで、二つ目の「カスタムサンプル数を使う」オプションをチェックし、サンプル数を「256」に上げてレンダリングしてみます。

図044-8

 

レンダリング時間は「52秒」にのびましたが、砂目状のノイズが減りました。このシーンは非常に計算が難しいので、52秒というのは妥当な時間だと思います。

最後に、アニメーションを描かせてみましょう。アニメーションではわずかなムラでも不快なちらつきの原因になります。そこで、「ストカスティックサンプル -> 精度」の値を高よりも高い「120」、「レコード密度 -> 半径」の値を「2」に上げてレンダリングしてみました。

図044-9

 

レンダリング時間はMacMini2台のNETで108分でした(1枚当たり22秒)。まだ多少ザラついていますが、十分実用的な画質とレンダリング速度だと思います(サンプル044b)。

 

 

前の章