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

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

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

開始から終了までに表示されるべきステップ
  • シーン処理、OOPRが開く Processing Scene進捗バーに処理中のエンティティ数が表示されます。このとき、OOPRはアイドリングし、「receiving from network client....」というメッセージを表示します。
  • シーン処理が終了すると、UVマッピングが開始されます(UVマッピングは通常非常に高速です)。
  • OOPRがプレレンダリングを開始します。
  • プレレンダリングが終了すると、OOPRはレイトレーシングを開始します。このとき、Previewをクリックすると進捗を表示できます。
  • OOPRがリサンプリング(アンチエイリアシング)を開始し、これが終了すると、レンダリングイメージが保存されます。

    OOPRは、お使いのコンピュータ上にあるプログラムですが、サーバーのように動作し、クライアントであるPodiumからの接続要求に応えます。Podiumが接続を求めると、OOPRは常にその要求を承認し、接続が行われます。その後、クライアント(Podium)がOOPRにコマンドと処理シーンスクリプトの両方を送り、これが受信されると、プレレンダリング、レイトレーシング、リサンプリング処理が実行され、最後に美しいイメージを保存します。お使いのコンピュータ上のファイヤウォールが過度に厳重な設定であると、この処理に影響が及びます。また、お使いのコンピュータのネットワークポート上で動作中の別のソフトウェアがこの処理を遮断している可能性もあります。Podium自体のジオメトリキャッシングが干渉する場合もあります。

    Podiumがレンダリングを実行しない場合、まず確認しなければならないこと

      1. OOPRが起動しているか? Renderアイコンをクリック後、デスクトップ上でOOPRダイアログボックスが開いていますか? OOPRがタスクバー、あるいはドックにある可能性があります。OOPRが起動されない場合、問題はOOPRやファイヤウォールの干渉ではなく、おそらくSketchUpモデル上の何かのせいか、ジオメトリキャッシュがオンでOOPRがブロックされているのでしょう。

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

    OOPR 失敗: 問題の原因を絞り込むための簡単なテスト

      1. 問題はコンピュータメモリか?

      立方体のような単純なモデルを作成し、それをレンダリングします。OOPRが起動し、Podiumがレンダリング処理を完了し、イメージを保存しますか?(立方体にテクスチャがないため、レンダリングされたイメージが極めて白くなったのかもしれません。) レンダリングイメージがある場合、問題はOOPRでも、ファイヤウォールでもありません。クラッシュしたモデルが、お使いのメモリサイズに対し大き過ぎる可能性があります。これに当てはまる場合は、下記のシーン処理をお読みください。

      2. Geometry Cachingをオフにする

      Podiumのジオメトリキャッシングをオフにしてみます。この機能は、EnvironmentタブのSU Podium V2 Options (Settings) に入っています。

      3. Generateを使ってOOPR接続を回避

      OOPRが初期化されない場合、Generateコマンドを使ってOOPRなしでスクリプトを作成します。Generateは、OOPRの自動接続を必要としません。処理は遅くなりますが、これで何が問題なのかが分かります。Generateが正常に動作するならば、OOPRが動作しない理由は、おそらくファイヤウォールかアンチウィルスプログラムが接続をブロックしているからでしょう。

      Generateコマンドの使用については、ヘルプページのこのセクションをお読みください。

      4. アンチウィルス、またはファイやウォールをオフする

      Generateが正常に動作する場合、ファイヤウォール、またはアンチウィルスプログラムをオフにします。 こちらをお読みください。

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

    Processing Scene(シーン処理)は、SketchUpジオメトリとテクスチャをPodium独自のメッシュモデルに変換するためにPodium V2が行う一連の処理の最初のステップです。これは、ソフトウェアプログラムがプラグインかスタンドアロンにかかわらず、すべてのレンダリングエンジンが実行するステップです。
    SketchUpモデルの構成内容
    • 数十万の面
    • 数百のオムニライト
    • 数百のテクスチャ
    • または、両方

    は、SU Podiumレンダリングの最初の段階でシーン処理の時間を長くしたり、クラッシュさせる原因になります。
    シーン処理は、単一コア、32ビット処理

    ほぼすべてのSU Podium V2バージョンがマルチコア処理に対応し、コンピュータ上のいかなる量のRAMメモリにもアクセス可能な64ビットアプリケーションですが、シーン処理は単一コア、32ビット処理です。

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

    このシーン処理プログラムはSketchUpベースのrubyスクリプトです。SketchUpは、単一CPUコア使用に限定された32ビットアプリケーションで、4GB以上のメモリ空き容量を使用できません。(特定量のメモリを使用する他アプリケーション同様、32ビットアプリケーションは、実際には4GBメモリすべてを使用できるわけではありません。) このため、シーン処理は単一コア、32ビット処理です。

    なぜ、シーン処理が長すぎる、あるいはクラッシュするのか?
    • もっとも多く見られる要因は、数十万もの面からなる非常に大きなSketchUpモデルです。
    • モデル上の数百のテクスチャもシーン処理の速度に影響を与えます。
    • また、数百のオムニライトもシーン処理の速度を大幅に下げます。

    • メモ - Podiumはモデル上にあるすべての要素を処理しなければならないので、レイヤをオフにしてもPodiumの計算処理は何ら変わりません。Podiumは、画面上に何が表示されているかに関係なくすべてを処理します。ただし、下記で説明する「コピー」と「所定の位置に貼り付け」は、非表示レイヤ上のジオメトリを削除する方法です。

    モデルのサイズと起こり得る問題をチェック

  • 1. 何か単純なモデルをレンダリングします。

  • 2. Check Podium --->Tools--->Analyse

  • 3. SketchUpモデルで面とテクスチャの数をチェック
    • SketchUpのモデル情報の統計を確認します。ネストされたグループが選択されていることを確かめてください。このモデルにはいくつ面がありますか? 数十万ですか? 数百万ですか? もしそうならば、これこそシーン処理、あるいはレンダリング処理のいくつかの段階が長すぎる、または失敗する要因です。ジオメトリを減らす方法に進み、対策方法をご覧ください。
  • 3. Podiumツールを使ってモデルを分析する
    • その他の可能性として、オムニライトの数もシーン処理を遅くする大きな要因になります。SU Podium V2のTools and Analyse Modelを確認します。モデル上にオムニライトがいくつありますか? オムニライトが数百あり、レンダリング問題が生じているなら、この数を減らすべきです。Toggle Lightsオプションを選択してオムニライトをオフに切り替えます。ただし、これを行った場合、モデルをそのまま保存しないでください。保存すると、そのオムニライトは永久的にオフになります。もしオムニライトが数百あるなら、すべてオフに切り替えてレンダリングします。Podiumツールについてはここをお読みください。

    ランタイムエラー

    シーン処理はうまくいくが、OOPRがレンダリング処理を開始しすると、コンピュータが「ランタイムエラー」を起こす場合、SketchUpモデルが大き過ぎる、あるいはシステムメモリが4GBより小さいことが考えられます。 メモリ不足が原因なら、お使いのコンピュータのシステムメモリを4GB以上に増やし、OSが64ビット、SU Podiumが64ビットバージョンであることを確認してください。

    ランタイムエラーのチェックリスト
    1. 上記のようにモデル情報を使ってモデルがどれくらい大きいかを確認します。モデルが数十万 以上 の面で構成されていますか? その場合は、システムメモリの大きさを確認してください。4GBを十分に上回りますか?
    2. システムメモリが4GB以上の場合、 SU Podium V2 64ビットバージョンをインストールしましたか?不確かな場合は、SU Podiumを再度ダウンロードして、64ビットバージョンを選んでください。ダウンロード
    3. 4GBかそれ以下の場合は、モデルサイズを小さくする必要があります。
    4. ジオメトリキャッシングによってランタイムエラーが生じる場合もあります。Geometry Caching をオフにします。

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

    不要アイテムを完全に削除 まず、SketchUpウィンドウプルダウンメニューにあるモデル情報ダイアログの「不要アイテムを完全に削除」コマンドを使ってモデルを削除します。これでモデル上にある、使用されていないと判断された面、マテリアル、レイヤが削除されます。ファイルを保存し、SketchUpを閉じて残っているものをすべてメモリ上から排除します。不要アイテムを削除したSketchUpファイルを再度開きます。

    「コピー」と「所定の位置に貼り付け」を使って、新しいSketchUpファイルを作成 不要なレイヤをオフにした後、すべてを選択を選び、SketchUpのコピーコマンドを起動します。モデルが非常に大きい場合、コピーに数分を要する場合もあります。モデルをコピーしたら、SketchUpファイルを新規に開きます。次にSketchUpの編集メニューにある「所定の位置に貼り付け」を選択します。貼り付けられる内容は、元のモデルの選択したエンティティだけで非表示レイヤにあるジオメトリは含まれません。このファイルを別のファイル名を付けて保存します。

    可能な限り削除 新しいモデルから、必要のない面やテクスチャを可能な限り削除します。削除後、「不要アイテムを削除」を実行して保存後、再度開きます。モデル情報をチェックし、モデルサイズが大幅に減るまで面やテクスチャの削除を続けます。