ホーム > ゲーム映像CGソフト > 製品一覧 > Softimage > サポート > Softimage FAQ

ゲーム映像CGソフト

Softimage FAQ / マテリアル、テクスチャ、レンダリング

Final GatheringのTips (v3.0以上)
〜 H15 1/31のXSI ユーザーカンファレンス/Rendering Optimizationパートから 〜

カンファレンスで使用したデータベースのダウンロード : User_Conference2003.ZIP


  1. FGを行うための設定内容
    • ライトプロパティのLight Contribution
    • Rendering OptionsのFinal Gatheringスイッチ
      Accuracy FGのスムースさ。間接光の計算のためにサーフェス上の計算点からヘミスフィアへ発射されるrayの数
      Min/Max radius FGの詳細さ。ポイントの上部に位置するサンプルされる半球の半径。Min/Maxの間では新たにFGサンプルが取られる可能性あり。
      Automatic compute Min/Maxの自動計算。シーンの全オブジェクトを包含するバウンディングボックスの平均の10%がMin radius、25%がMax radiusになる。
    • レフ版にはConstantマテリアルを
    • 各オブジェクトのマテリアルにてIndirect Illuminationを設定
      Radiance FGによるオブジェクト自体の輝度
      Translucent 半透明度
      Incandescence 白熱灯やネオンのような発光効果

  2. Image Based Lighting(IBL)

    FGはImage Based Lightingをベースにした技術。
    本来のIBLの設定手順はこちら


  3. FGの計算方法について

    Softimage

    黄色
    Eye Ray
    グレイ
    法線
    FG Ray(FG Sample)
    1. Eye Rayがサーフェスに当たると、ヘミスフィア(半球)が作られます。大きさはRadius Min/Maxで定義されます。
    2. 環境のサンプリングのため、交点からFG Rayが発せられます。この数はAccuracyで定義され、方向はランダムです。FG Rayは無限の長さを持ちますが、何かにぶつかるとそこで止まり、FG計算のための間接光輝度を拾ってきます(FG Sample)。

    Softimage

    1. 続いて別のEye Rayの計算をします。既存のヘミスフィアのMin Radiusの中にEye Rayが入ってきた場合は、新たにFG Rayは発せられず、2.で計算されたFG Sampleを再利用します。

    Softimage

    1. Eye Rayが既存のヘミスフィアの外側と交点を持った場合、新たにヘミスフィアが生成されます。
      このことから、Radiusが大きいと隣のヘミスフィアとダブる領域が大きくなり、陰影がボケてきます。Radiusが小さいとシャープになってきますが、多くのヘミスフィアが発生するので計算時間がかかってきます。

    Softimage

    注意すべきなのはFG計算が行われるのは”見えている部分のみ”であり、結果はFGmapへストアされます。このFGmapはファイルに残すこともできます。

  4. FGの計算方法について
    Radiusを小さくする
    FGによる陰影がシェープになる。 ヘミスフィアのオーバーラップが少なくなるので、Accuracyを大きくすることが望ましい。
    計算時間がかかるようになる。
    Radiusを大きくする
    FGによる陰影がぼけてくる。
    ヘミスフィアのオーバーラップが大きくなるので、Accuracyを小さくしても構わない。
    計算時間は少なくて済む。

    Low Radius

    High Radius

    Softimage
    ※両者のDifferenceを取ったもの


  5. FG RadiusとFG Accuracyの設定 (その2)
    Radius Accuracy レンダリング時間 コメント Rebuiltの設定
    (推奨)
    Small
    0.01-0.2
    High
    1000-3000
    最も遅い 最も高画質、フリッカが少ない ON
    Large
    1-100
    High
    1000-3000
    遅い 繰り返しの多いテクスチャに囲まれている環境で使うと良い。 ON
    Small
    0.01-0.2
    Low
    100-500
    早い 不適切。
    不自然でフリッカが多くなる
    クオリティが低いので論外
    Large
    1-100
    Low
    100-500
    早い FGを使ったImage Based Lightingに適している OFF

  6. Diagnostics Mode
    • Render Options - Diagnostics Mode - View Final Gathering
      Softimage

    View Final Gathering - ON

    View Final Gathering - OFF

    緑のドットはプリプロセス段階(Raytracing)で取られた初期のFG sampleを意味し、赤のドットはFGmapのサンプル点不足のため新たに追加で取られたFG Sample。
    赤いドットの部分はフリッカが出やすい傾向があるが、前後のフレームを考慮した結果ではないので、必ずしもフリッカの原因とは限らないことに注意。むしろ赤いドット部分を少なくすることによってレンダリング時間が短縮できると考えていただいた方が良い。


  7. FGのファインチューニング
    • Accuracyは20〜30くらいから始める。エフェクトは粗いが早い。だんだんupしてゆき、200〜300くらいまでup。最終的には1000以上でもよい。
    • RadiusはAutomatic Computeで得た値から始め、ノイズや不自然さがなくなるよう調整
    • タイルのようなノイズが出る場合にはAccuracyを上げ、Max radiusを下げる。
    • 斑点のようなノイズ、アニメーション時のフリッカが出る場合には、Max radiusを下げる。下げすぎると時間がかかるようになるので注意(1以下)
    • 不自然さが解消されない場合はAccuracyを上げ、再度Radiusを調整

  8. フリッカを防ぐには (その1)
    フリッカの原因
    • 周囲にオブジェクトが多数存在する。
    • 周囲にコントラストの大きい、高周波数(繰り返しの多い)のテクスチャが存在する
      (例 : チェッカーボード)
    • サンプル点不足
    解決法
    • シーンに大きな影響を与えないオブジェクトはHideする。(極端に小さい。極端に遠いなど)
    • 繰り返しの多いテクスチャマップが周囲の環境にある場合、FG Accuracyを高くする。
    • 反射オブジェクトとしてconstant shaded オブジェクトを使う
    • ray_type shader を使う(Node > Switch > Ray Type)

      例 :

      • 実際にレンダリングされるテクスチャと、FGの計算に使うテクスチャを別々にできる。
        (FG rayにフリッカが出にくいテクスチャを接続)
      • FG rayは大量に発生。FG Treeを簡略化して高速化を図ることも可能
        Softimage

    Softimage

    Softimage

    Softimage

      ぼけたテクスチャを使用 Constantマテリアルを使用
    Surface Treeのレンダリングイメージ(実際にレンダリングされるテクスチャ) FG Treeのレンダリングイメージ(FGの計算に使われるテクスチャ)
  9. フリッカを防ぐには (その2)
    フリッカの原因
    • フレーム毎に異なるFG mapを使ってしまう。
      (FG rayの方向はランダムなため、rebuildすると毎回異なってしまう)
    • サンプル点の不足

      フリッカ発生例

      フリッカの発生例

      FG map Rebuild : ON
      Accuracy : 100
      Radius Min/Max : 3.5, 1.3

  10. 解決方法1 : (全フレームを同じマシンでレンダリングする場合)
    • FG rebuildをOFFにする。FGmapの追記が可能になる。
    • スタート時にFGmapファイルが無いことを確認。最初のフレームで自動的に作られる。
    • FG Accuracyはあまり高くする必要は無い。(300〜500程度)

    フリッカ除去例

    FG map Rebuild :OFF
    Accuracy : 100
    Radius Min/Max : 3.5, 1.3

    視点が変わると新たに見えた部分のみFGmapが追加され、既に見えている部分はそのままのFGmapが使われるのでフリッカが起こらない。

  11. 解決方法2 : 方法1に続き、さらに以下の手順を追加
    • RebuildをOFF、シーン内のFGを見渡すようにカメラをOrbitし、まんべんなくRender Regionをかける
    • レンダリングをかける前にFGmapファイルをLock (Readonly)
    • FG mapを共有したレンダリングファームの構築が可能
  12. 解決方法3 : (フレームベースのレンダファームに適用。フレーム毎に異なるマシンでレンダリング)
    • FG RebuildをON
    • フレーム毎にFGmapを作り直すので、最も高画質なパラメータ設定にする。
    • Accuracyを1000〜3000、Radiusを0.001〜0.02
    • それぞれのレンダーファームマシンでFGmapを設定
      例 : C:\temp\$COMPUTERNAME

    フリッカ除去例

    FG map Rebuild : ON
    Accuracy : 1500
    Radius Min/Max : 0.001, 0.02

    毎フレームで高サンプルでFG mapを作り直すので、フリッカは少なく出来るが、非常に時間がかかる。


  13. RenderMap, RenderVertexへの応用
    1. RenderMapまたはRenderVertexを適用するシーンを用意します。
    2. View Render OptionsのFinal Gathering Mapにて、FG Mapのファイル名を指定、RebuildをOFFにします。FG Mapのファイルは存在しないファイルを記述して下さい。
    3. Region Renderを行います。カメラをorbitし、表裏ともまんべんなくRegion renderして下さい。
      (FG mapが作成され、Region Render毎にマップが追加されていきます)
    4. Render Optionsの方も、Final Gathering Mapにて、FG Mapのファイル名(2で設定したファイル名)を指定、RebuildをOFFにします。(RenderMapではRender Optionsの設定内容が参照されます)
    5. RenderMapまたはRenderVertexを適用したいモデルを選択し、Property > RenderMapにてRenderMap, RenderVertexを行って下さい。