室内シーンのレンダリング

  • 指定の形状をレンダリングに反映しない
  • イラディアンスキャッシュの使用
  • ラジオシティの使用

建物の室内シーンをレンダリングします。
室外の場合は数分でレンダリングが完了したのですが、室内の場合はほとんどが間接照明となることも多く、レンダリング時間がかかります。

ここでは、品質を保ちつつレンダリング時間を短縮していきます。
前回の「カメラ設定とライティング、レンダリング(室外)」で既にリニアワークフローのためのレンダリング調整は完了しているため、
今回は室内カメラの配置とレンダリングを行っていきます。

レンダリング時間を書いていくため、参考としてレンダリング環境のスペックを記載します。
CPU : Intel Core i5-2500 3.30GHz (4コア)
Memory : 16GB
OS : Windows 10 (64bit)
Shade3D : ver.17

室内カメラの設定

ツールボックスの「作成」-「光源/カメラ」-「カメラ」を選択し、上面図でドラッグして室内にオブジェクトカメラを配置しました。
形状名を「室内カメラ」に変更、焦点距離を人間の目に近い12mmとしています。
また、カメラウィンドウで「あおり補正」も調整しました。

シーンの調整

見栄えをよくするため、右の窓(サッシ)からカーテンをレンダリングに反映させないようにしました。
ブラウザの形状で左端の目のアイコンをクリックして灰色にすると、その形状は図形ウィンドウに表示されないようになります。
その右隣りの球のアイコンをクリックして灰色にすると、その形状はレンダリングに反映されないようになります。

このシーンでは、正面奥の窓から光が差し込むライティング設定になっています。
無限遠光源+背景が光源となります。
また、部屋の隅に木の棚とゴミ箱を配置しました。
床のマスターサーフェスは反射で映り込むようにし、荒さを与えるように調整しました。

Shade3Dでのレンダリングは表面材質の「反射」「透明」「荒さ」を併用すると、レンダリング時間が増加しやすいです。
これらを使用しないようにすると速度アップに貢献しますが、反射があるとリアリティに効果的な場合もあります。

レンダリング (イラディアンスキャッシュ未使用)

パストレーシング + パストレーシングでレンダリングします。
このとき、レンダリング設定で「イラディアンスキャッシュ」チェックボックスをオフにしてレンダリングしました。

「その他」タブの「視線追跡レベル」を10、「レイトレーシングの画質」を50としました。

イラディアンスキャッシュを使用しないパストレーシングのレンダリングは、
Shade3Dでは一番時間のかかるレンダリング手法の選択になります。
ただ、調整のための設定項目が少なく、時間をかけると確実な品質が出るため、
ここで最終目標としたい品質を確認し、
このレンダリング品質を保ちつつ時間をいかに短縮するか、という課題に取り組むことになります。

パストレーシング+パストレーシング(イラディアンスキャッシュなし)、視線追跡レベル 10、レイトレーシングの画質 50

レンダリング時間 00:10:14

色補正でガンマ2.2、ゲイン2.0としています。

室内シーンでは室外シーンと異なり、太陽は窓からの入射以外はほとんどさえぎられるため、室内光源がない場合は全体的に暗くなります。
そのため、「ゲイン」を上げることで明るさを底上げします。
これは、カメラや人間の目で言うと露出を調整している感じとなります。

このレンダリング設定の場合、ノイズ(高周波ノイズ)が結構あります。
前回と同じ「レイトレーシングの画質」を指定してます。
イラディアンスキャッシュを使用しない場合は、「レイトレーシングの画質」を上げることで品質が上がります。
半面、レンダリング時間がかかることになります。

次に「レイトレーシングの画質」を800と大きくしてレンダリングしました。

パストレーシング+パストレーシング(イラディアンスキャッシュなし)、視線追跡レベル 10、レイトレーシングの画質 800

レンダリング時間 15:06:25

この場合はレンダリング時間はものすごくかかりますが、高周波ノイズもかなり緩和されます。
まだノイズが見えますので、もっと「レイトレーシングの画質」の値を増やす必要がでてきそうです。
ただ、時間がかかるため「レイトレーシングの画質」を上げていって品質を向上させる方法は、現実的ではないかもしれません。

この高周波ノイズの間を補間して滑らかに見せるのが、「イラディアンスキャッシュ」の効果となります。
「レイトレーシングの画質」は、イラディアンスキャッシュを使用しないときよりも下げます。そのため、レンダリング時間は短くて済みます。
イラディアンスキャッシュを使用すると、ノイズは低周波となります。
ただ、サンプリング(レイトレーシングの画質)が足りない場合はムラが目立つ状態になります。
イラディアンスキャッシュを使用しない場合と比べて、調整次第で速度アップ、品質アップ(ノイズの低減)につなげることができるようになります。

レンダリング (イラディアンスキャッシュ使用)

次に、パストレーシング+パストレーシングでイラディアンスキャッシュを使用します。
「レイトレーシングの画質」を100としました。
室内シーンの場合は、イラディアンスキャッシュを使用する場合でもある程度の「レイトレーシングの画質」が必要になります。
イラディアンスキャッシュのパラメータはデフォルトのものを使用しています。

パストレーシング+パストレーシング(イラディアンスキャッシュ使用)、視線追跡レベル 10、レイトレーシングの画質 100

レンダリング時間 08:16:51

高周波ノイズは抑えられました。

レンダリング速度を向上させるための調整

まだレンダリング時間がかかっているため、以下の調整を行います。

  • 木の棚やドアの枠などで少しだけ表面材質の反射と荒さ要素を入れているため、反射と荒さを0に変更。
  • カーテンのわずかな透明を0に変更。
  • 「視線追跡レベル」を10から5に変更。
  • 「レイトレーシングの品質」を100から70に変更。

パストレーシング+パストレーシング(イラディアンスキャッシュ使用)、視線追跡レベル 5、レイトレーシングの画質 70

レンダリング時間 01:01:57

レンダリング時間がかなり短縮されました。
天井の角や右端の窓と壁の境目に黒いムラが見えますので、これを緩和します。

天井の角の黒いノイズを抑える

このシーンの場合、天井と壁の角となる廻りぶちあたりで、不正な黒いムラが見えます。
これは、イラディアンスキャッシュ設定で以下の変更を行うことで調整しました。

  • 「サンプル間隔」を「普通」から「細かい」に変更
  • 「サンプル感度」を0.3から0.4に変更
  • 「細部強調」チェックボックスをオンにしたときの「品質倍率」を1.5から2.0に変更


この指定により、イラディアンスキャッシュが密になるようにしてます。
品質は上がりますが、レンダリング時間が増加することになります。

レンダリング時間 02:43:37

イラディアンスキャッシュの設定で「サンプル間隔」を「細かい」にした場合は、特にレンダリング時間が増加しやすいです。

補助の面光源を室内に配置

速度と品質アップのため、もう一歩進めます。
部屋の角のムラが出やすいのは、室内が間接照明だけで充満しているからというのもありますので、補助の面光源をカメラの脇から少し斜めに入射するように配置しました。

面光源の「明るさ」は700と弱めにし、「可視」チェックボックスをオフにしてます。
この補助光源により、全体的に引き締まった感じにします。
レンダリング設定の「大域照明」タブで「サンプル間隔」を「普通」に戻してレンダリングしました。

レンダリング時間 01:19:18

以上で、イラディアンスキャッシュを使用したレンダリングは完了になります。

レンダリング (ラジオシティ使用)

イラディアンスキャッシュを使用したレンダリングまで行いましたが、室内シーンの場合はレンダリング時間がかかります。
少しカメラを動かした場合にも、再レンダリングする必要があります。
また、部屋の隅のムラが抑えられたとはいえ、若干気になります。

そこで「ラジオシティ」という手法を使ったレンダリングを行うことにします。
ラジオシティは、光源からのエネルギーを、熱力学的に処理していく大域照明のレンダリング手法の1つです。
前処理のラジオシティ計算として、各面に対して光の影響を焼き付けます。
レンダリング時は、その焼き付けられた情報を参照して最終的な結果として反映していきます。
一度前処理すると、後からカメラを動かしてもレンダリング自身は面に焼き付けられた光の情報を引き出すだけとなるため、レンダリングは短時間で済むようになります。

制限として、面の表裏を区別したり、光源としての背景は反映されない、などがあります。
そのため、室内の場合は窓の外から無限遠光源もしくは面光源を入射させるか、室内に補助光源を配置する必要があります。
ここでの室内シーンは、無限遠光源と室内に補助の面光源を配置しましたので、そのままのシーンでラジオシティのレンダリングを行うようにします。

ラジオシティを使ったレンダリング手順

メインメニューの「表示」-「ラジオシティ」を選択し、ラジオシティウィンドウを表示します。
左上の三角をクリックして設定を表示、「メッシュ間隔」で「初期間隔」を200mm、「最小間隔」を30mm、としました。
この「メッシュ間隔」は、ラジオシティ計算時の面を再分割する解像度を指定することになります。
小さい値にすると、それだけ品質が向上しますが前処理計算の時間がかかります。
「開始」ボタンを押すと、ラジオシティの前処理計算が開始されます。

ラジオシティの前処理計算 : 00:06:00

イメージウィンドウのレンダリング設定の「大域照明」タブで「ラジオシティ」を選択します。

レンダリングすると以下のようになりました。

パストレーシング+ラジオシティ、視線追跡レベル 5、レイトレーシングの画質 70

レンダリング時間 00:01:22

光源としての背景は反映されないため、パストレーシングのレンダリングとは異なります。
前処理のラジオシティ計算を加味しても、全体で7-8分でレンダリングできました。
後は、光源を追加することでリアルに近づけていけそうです。

以上で、建物のシーンのモデリングからレンダリングまで、一通り完了です。
かなり長くなりましたが、小さなモデリングの積み重ねで建物シーンは構築できる、というのが把握できれば幸いです。

今回のテーマでちらっと説明した、Unityに持っていくための形状のエクスポートなどは
別途テーマで解説できればと思います。
次回から、また別のテーマにチャレンジします。

カテゴリー: 建物を作る