Tips

DOKI for Shade3D(OSPRay)を使うにあたっての、現象と解決策の情報です。

レンダリングが開始される前、処理時間がかかる

Shade3DからOSPRayにシーンの情報を渡す工程が入るため、シーンが複雑なほど前処理の時間がかかります。
アニメーションレンダリング時ははじめの1フレーム目で全部の情報を送り、2フレーム目以降は差分のみ送るため前処理時間は短縮されます。
レンダリング時間を短縮させたい場合は、以下をご確認くださいませ。

  • NURBSや自由曲面の分割が細かい場合は粗くする。もしくは、あらかじめポリゴンメッシュに変換しておく。
    特に、NURBSはポリゴンメッシュに変換するまでの時間がかかります。
  • サブディビジョンサーフェス使用時、スクリーン上で見てレンダリング対象として小さい形状のサブディビジョンサーフェスを無効にする
  • マテリアルは形状に独立して与えるのではなく、マスターサーフェス(マスターマテリアル)化して共有できる部分は共有する
  • テクスチャイメージが大きすぎる場合は、影響のない範囲で小さくする
  • マテリアルのマッピングで、レイヤ数をできるだけ減らす(ベイク処理は負荷が高いです)
  • 同一の形状をたくさん配置する場合は、マスターオブジェクトとリンクで対応する

なお、これらの処理はShade3Dの標準レンダリングでも有効な最適化手段です。
最適化」もご参照くださいませ。

透過のない形状で不正な陰が出る

これはShade3Dの標準レンダリング(ver.20以降のPBRマテリアル)でも起きる現象です。

屈折率が1.0よりも大きい、ポリゴンメッシュの限界角度が大きく頂点法線の丸め込みが発生する場合に、
レンダリングすると不正な陰ができる場合があります。
比較的荒いポリゴンメッシュ形状で発生します。
tips_03.jpg

これはPBRマテリアルの特性になります。
「屈折率を1.0にする」か「限界角度を小さくしてフラットにする」ことで回避できます。
もしくは、形状情報ウィンドウでサブディビジョンサーフェスの「分割手法」を「カトマル・クラーク」に変更し「適用率」を0.1などの小さい値にすることで、
形状を保ちつつポリゴンメッシュが再分割されるため、これにより回避できます。
tips_04.jpg

レンダリング結果にグリッド状の点が見える

tips_01.jpg
これは、単純なマテリアル指定、屈折率が1.0よりも大きい場合、ラフネス(荒さ)が1.0よりも大きい場合に発生することがあるようです。
この場合は、レンダリング設定の「ピクセルサンプリング数」(デフォルト2)を5などの大きめの値に変更することで回避できます。
tips_02.png

「ピクセルサンプリング数」の数値を上げるとそれだけレンダリング時間がかかることになりため、
「ピクセルサンプリングの繰り返しの数」の数値を下げるなど、サンプリング数を調整するようにしてください。

鏡面反射する形状(メタリック 1.0)で反射が抜け出ない状態

これはShade3Dの標準レンダリングでも起きる現象です。

鏡面反射する鏡のようなマテリアルが存在する場合、反射が抜け出ない状態のときにレンダリング結果に乱れが見えてしまいます。
合わせ鏡や鏡面の筒などで起きやすいです。
tips_05.jpg
この状態でアニメーションレンダリングを行うと、鏡面反射している部分は激しくちらつくことになります。
この場合、光線追跡レベルをいくら上げても解決しません(レイ自身が鏡面反射から抜け出ることができないため)。

根本的な解決策ではありませんが、
ラフネス(荒さ)の値を0.2など指定し、反射時のざらつきを出すことで緩和することができます。
tips_06.jpg

内側だけラフネスを与えたい場合は、フェイスグループを使用し内側に別マテリアルを指定するようにしてください。
tips_07.jpg

マテリアルで発光(Luminous)使用時、明るさを0に近づけたときの表現

マテリアルの指定で「発光(Luminous)」を割り当てている場合、
「明るさ」を0に近づけると発光マテリアルを与えた形状自身は見えなくなります。

以下は「明るさ」1.0と0.0の比較です。
tips_08.jpg

これを解決するには、発光体形状を複製し一回り小さくします。
一回り小さくする方法として面ベベルを使用するのがいいかもしれません。
複製した形状をポリゴンメッシュに変換し、形状編集モード+面選択モードにします。
すべての面を選択。
ツールボックスの「編集」-「メッシュ」-「編集」-「ベベル」を選択し、ツールパラメータの「オフセット」ボタンを選択。
図形ウィンドウで下方向にドラッグして面を内側に押し込めます。
tips_10.png

ブラウザ上では、発光しない一回り小さい形状と、発光する形状が存在する状態です。
tips_09.png

発光しない一回り小さい形状で割り当てているマテリアルは、一般的なPBRマテリアルの設定を行います。
これで発光する側の形状のマテリアルで「明るさ」1.0と0.0として比較しました。
tips_11.jpg

面光源で裏面を発光させないようにしたい

これも前述のマテリアルで発光(Luminous)を使用した時の対処法と同じです。
以下のような部屋の天井に面光源がある場合を考えます。
tips_12.png

レンダリングすると以下のように面光源の天井側にも光が発生しています。
tips_13.jpg

そこで面光源を複製し、わずかに天井側に移動させて明るさを0にします。
tips_14.png

レンダリングすると、天井側への光の照射がある程度抑えられています。
tips_15.jpg