OOPR、シーン処理、モデルサイズ縮小: SU Podiumがクラッシュする要因とその対策

    Podium V2.xのOOPR: Renderアイコンをクリックすると、起動されるべき処理

    Renderアイコンをクリックすると、SU Podium V2が最初に実行するのは、SketchUpマテリアルとサーフェス処理(シーン処理)開始とOOPR(Podium Render Manager)との接続開始です。上イメージ参照

開始から終了までに表示されるべきステップ
  • シーン処理、OOPRが開く シーン処理の進捗バーにはマテリアルやサーフェスのエクスポートの進捗が表示されます。このとき、OOPRはアイドリングし、「receiving from network client....」というメッセージを表示します。
  • シーン処理が終了すると、レンダリングエンジンが計算を開始します。
  • OOPRが、グローバルPM計算と同時にプリレンダリングを開始する
  • プレレンダリングが終了すると、OOPRはレイトレーシングを開始します。このとき、Previewをクリックすると進捗を表示できます。
  • OOPRがリサンプリング(アンチエイリアシング)を開始し、これが終了すると、レンダリングイメージが保存されます。
    • OOPRは、SketchUpに依存しないアプリケーションです。お使いのコンピュータ上でサーバーのように動作してSU Podium SketchUpプラグインと情報をやりとりします。プラグインが接続を求めると、OOPRは常にその要求を承認し、接続が行われます。その後、クライアント(Podium SketchUpプラグイン)がOOPRにコマンドと処理シーンスクリプトの両方を送り、これが受信されると、プレレンダリング、レイトレーシング、リサンプリング処理が実行され、最後にレンダリングイメージを保存します。

      OOPRが表示されない、またはシーン処理中にクラッシュする

      お使いのコンピュータ上のあまりにも厳しい設定のファイアーウォール、あるいはアンチウィルスプログラムがシーン処理とOOPR間の接続をブロックしたり、ついにはOOPRをクラッシュする場合があります。また、お使いのコンピュータのネットワークポート上で動作中の別のソフトウェアがこの処理を遮断している可能性もあります。Mac上のWacomタブレットドライバはOOPRをブロックすることで知られる一例です。SU Podium自体のジオメトリキャッシングが干渉する場合もあります。

        Podium 64ビットのMacユーザー: V2 Mac 64ビットバージョンにはTIFFファイルに関わる不具合がありましたが、V2.5 Plusでは修正されました。このTIFFファイルバグは、V2.5 Plusより前のMac64ビットバージョンにだけ起こる問題です。モデルにTIFFテクスチャイメージ(マテリアル)がある場合、シーン処理時にOOPRがクラッシュします。V2.5 Plusへのアップグレードについて

      上記が生じる場合、アンチウィルスプログラムあるいはファイアーウォールがOOPRをブロック、あるいはクラッシュさせているかどうかを調べる手順を試してください。

        1. 3Dの立方体、あるいはこうしたテストモデルのいずれかをレンダリングします。
        SU Podiumはイメージレンダリングを完了しますか? 完了する場合、ファイアーウォールやアンチウィルスが問題ではないようです。この件については、Cadalog, Inc.のサポート、または販売代理店にお問い合わせください。問題はモデル上の特定マテリアルにある可能性があるので、解決法をお教えします。

        単純な3D立方体、あるいはサンプルモデルのいずれもレンダリングされない場合、問題はアンチウィルス、あるいはファイアーウォールプログラムがOOPRとの接続をブロックしていることのようです。

        2. OOPRダイアログボックスにメッセージが表示されているか? OOPRが開いてはいるもののメッセージが表示されていない状態かもしれません。通常、シーン処理が行われている間は、「receiving from network client」というメッセージを示したアイドリング中のOOPRダイアログボックスが表示されます。OOPRは開いているが、メッセージが表示されていない場合、ファイアウォール、あるいは他のプログラムが接続をブロックしている可能性があります。

        3. Generate(作成)ボタンの使用 ファイアーウォール、あるいはアンチウィルスプログラムがOOPRをブロック、あるいはクラッシュしているかを調べるさらなる方法はGenerate(作成)の使用です。下記はGenerateの使用法についてです。Generateがうまくいくのなら、問題はシーン処理とOOPR間のやり取りにおけるアンチウィルス、あるいはファイアーウォールの干渉にあります。

        アンチウィルスプログラム、あるいはファイアーウォールの一時的な「解除」法についてをお読みください。

      シーン処理に時間が掛かる、または失敗する

      SketchUpモデルの構成内容
      • 数十万の面
      • 数百のオムニライト
      • 数百のテクスチャ
      • または、両方

      は、SU Podiumレンダリングの最初の段階でシーン処理の時間を長くしたり、クラッシュさせる原因になります。
      シーン処理 - V2.5 Plusで大幅改良

      V2.5 Plusでは、シーン処理がC++ルーチンになりました。C++ルーチンは非常に高速な上、大量のポリゴン(面)を扱えるので、PC/Mac上でのパフォーマンスが向上します。

      Renderアイコンを選択すると、レンダリング処理が開始します。SU Podiumは、最初のレンダリング段階で、SketchUpポリゴン(面)をPodiumレンダリングエンジン用のメッシュモデルに変換しなければなりません。これは、すべてのフォトリアリスティックレンダリングプログラムで標準的なに用いられる手順です。SU Podiumでは、この処理用のユーザーインターフェースをProcessing Scene(シーン処理)と呼びます。また、進捗バーが作動して表示されます。また、マテリアルもテクスチャフォルダに保存されて面にマッピングされます。

      このシーン処理プログラムは、V2 とV2 Plusでは効率の良いrubyスクリプトでしたが、V2.5 PlusではC++プログラムにしました。

      なぜ、シーン処理が長すぎる、あるいはクラッシュするのか?

      • V2.5 Plusでは、シーン処理が失敗するのは非常にまれです。rubyスクリプトの制限のために、SU Podiumの早期バージョンでは起こることが多くありました。
      • 数十万もの面からなる非常に大きなSketchUpモデルこそ、低パフォーマンスCPU上でシーン処理が失敗するもっとも一般的な理由です。
      • モデル上の数百のテクスチャもシーン処理の速度に影響を与えます。
      • また、数百のオムニ/ポイントライトもシーン処理の速度を大幅に下げます。
      • 特定タイプのマテリアルがシーン処理をハングアップさせることが稀にあります。こうした問題のほとんどが、V2.5 Plusでは修正されました。
      シーン処理に時間が掛かり過ぎる場合はどうすれば良い?
      1. V2.5 Plusにアップグレード わずな料金でシーン処理に関わる問題がなくなります。
      2. アンチウィルスやファイヤウォールプログラムがPodiumと干渉している可能性を取り除く

        これは、単純な立方体モデルをレンダリング、あるいは小さなサンプルモデルをサンプルモデルページからダウンロードして簡単に実行できます。 これがうまくいったら、下記に進んでください。

      3. SketchUpモデルで面の数をチェック
        • Podiumツールー>分析を選択してこれを実行できます。
          また、SketchUpのモデル情報の統計を確認します。ネストされたグループが選択されていることを確かめてください。このモデルにはいくつ面がありますか? 面が数十万ありますか? 数百万ですか? もしそうならば、これこそシーン処理が長すぎるもっともよくある要因です。ジオメトリを減らす方法に進み、対策方法をご覧ください。
      4. Podiumツールを使ってモデルを分析する

        その他の可能性として、オムニライトの数もシーン処理を遅くする大きな要因になります。SU Podium V2のTools and Analyse Modelを確認します。モデル上にオムニライトがいくつありますか? オムニライトが数百あり、レンダリング問題が生じているなら、この数を減らすべきです。Toggle Lightsオプションを選択してオムニライトをオフに切り替えます。ただし、これを行った場合、モデルをそのまま保存しないでください。保存すると、そのオムニライトは永久的にオフになります。もしオムニライトが数百あるなら、すべてオフに切り替えてレンダリングします。Podiumツールについてはここをお読みください。

      OOPRがクラッシュする、あるいはシーン処理終了後に停止する(ランタイムエラー/メモリ不足)

      1. 問題はコンピュータメモリか? ランタイムエラー
          3Dの立方体のような非常に単純なモデルを作成する、あるいはこのテストモデルにあるサンプルモデルの1つを使ってレンダリングします。OOPRが開始し、Podiumがレンダリング処理を完了し、イメージを保存しますか? レンダリングイメージができたなら、問題はOOPRでも、ファイアーウォールでもありません。処理が失敗に終わったモデルがお使いのメモリ量に対して大きすぎる可能性があります。
          デスクトップをお使いの場合、これのもっとも簡単な解決策は、システムメモリ、あるいはRAMを増やすことです。SU PodiumのOOPR計算は64ビットアプリケーションで、お使いのコンピュータにあるメモリを最大限使用します。
          さらなる解決策は、モデルのサイズを小さくする、あるいはポイントライトの数を減らすことです。
      2. Podiumツール/分析を実行して問題をチェック
          Podiumツール/分析を実行すると、クラッシュを起こす警告が表示される場合があります。クラッシュの原因の1つには、他のPodiumプロパティが適用されたLEMライトが存在することが上げられます。LEMマテリアルには他のPodium Materialプロパティを適用すべきではありません。たとえば、LEMマテリアルには反射やバンププロパティを使ってはいけません。これはレンダリングをクラッシュさせる、あるいはLEMマテリアルが真っ黒になる原因になります。

    SketchUpモデル上のジオメトリやテクスチャを効果的に減らす方法

      1. 不要アイテムを完全に削除 まず、SketchUpウィンドウプルダウンメニューにあるモデル情報ダイアログの「不要アイテムを完全に削除」コマンドを使ってモデルを削除します。これでモデル上にある、使用されていないと判断された面、マテリアル、レイヤが削除されます。ファイルを保存し、SketchUpを閉じて残っているものをすべてメモリ上から排除します。不要アイテムを削除したSketchUpファイルを再度開きます。
      2. 「コピー」と「所定の位置に貼り付け」を使って、新しいSketchUpファイルを作成 不要なレイヤをオフにした後、すべてを選択を選び、SketchUpのコピーコマンドを起動します。モデルが非常に大きい場合、コピーに数分を要する場合もあります。モデルをコピーしたら、SketchUpファイルを新規に開きます。次にSketchUpの編集メニューにある「所定の位置に貼り付け」を選択します。貼り付けられる内容は、元のモデルの選択したエンティティだけで非表示レイヤにあるジオメトリは含まれません。このファイルを別のファイル名を付けて保存します。

      3. 可能な限り削除 新しいモデルから、必要のない面やテクスチャを可能な限り削除します。削除後、「不要アイテムを削除」を実行して保存後、再度開きます。モデル情報をチェックし、モデルサイズが大幅に減るまで面やテクスチャの削除を続けます。
      4. レンダリングイメージに必要のないジオメトリを非表示にします。SU Podium V2.5 Plus は非表示になっているジオメトリやテクスチャを処理/計算しません。ですから、V2.5 Plusであれば、非表示レイヤ等を使って不必要なオブジェクトを非表示にします。