メッシュを分割する

 
 
 

[場所](Location):

レンダ時には、Softimage によって大型オブジェクトが多数のパーツに分割され、各パーツが個別に計算されます。分割後はオブジェクト データを少しずつ mental ray レンダラに送信し、必要なオブジェクトの部位のみをリクエストするためにコールバック システムを使用します。たとえば、非常に大きなキャラクタの頭部をレンダリングする場合、頭部(またはその一部)だけが作成され、レンダラに送信されます。mental ray のメモリが足りなくなった場合は、不要になったオブジェクトの一部を消去し、後で必要に応じて呼び戻すことができます。

このシステムの実用的なメリットは、必要に応じてレンダラ用にメモリの空き領域を確保できる他、大型オブジェクトの大量の連続メモリを計算する必要がある場合にも追加メモリが不要な点です。

メッシュ分割係数の設定

メッシュ分割は通常、透過的な処理です。つまり、ユーザはオプションを調整する必要はありません。ただし、例外的に高負荷なシーンをレンダリングしようとしてメモリ不足に気付いた場合は、[メッシュ分割係数](Mesh Splitting Factor)を変更することによって、そのシーンをレンダリングできることがあります。

[メッシュ分割係数](Mesh Splitting Factor)は、メッシュの分割時に作成した部位のサイズ(三角形)と数に影響します。既定値の 1 は、指定のメッシュが計算によって適切であると判断された部位数に分割されます。この係数値を 0.5 などの低い値に設定すると部位数は倍になりますがサイズは半分になります。

たとえば、テッセレートされた三角形 64000 個から成るオブジェクトがあるとします。分割係数が 1 に設定されている場合、オブジェクトは 4 分割され、16000 個の三角形から成るパーツが 4 つ生成されます。係数を 0.5 に減らした場合、オブジェクトは 8 分割され、8000 個の三角形から成るパーツが 8 つ生成されます。

原則として、分割係数は調整がいっさい必要ありません。ただし、ある特定の状況では、シーンを適切にレンダリングするには係数を減らす必要のある場合もあります。

  • レンダリングが困難な巨大オブジェクト(数百万、または何千万もの三角形)を処理する場合、係数を減らすことによって、mental ray はメッシュの不要パーツを容易にフラッシュできるとともに、mental ray がシーンのレンダリング時にメモリ不足になる可能性を低減することもできます。

    たとえば、与えられたタイルに分割済みオブジェクトのパーツが半分だけ含まれている場合、残りの半分は不要ですが、依然としてメモリを占有します。オブジェクトをサイズの小さいパーツに分割すれば、不要パーツがフラッシュされやすくなります。

  • シーン オブジェクトの変位が非常に大きい場合、パーツを分割した結果生成されたテッセレート変位サーフェイスが過大になり、メモリに収まらなくなる可能性があります。そうした場合、メッシュ分割係数を減らせば、分割されたパーツがさらに多く作成されます。各パーツはサイズが小さくなるため、変位によって付加された追加のジオメトリを埋め合わせる助けになります。

    注:メッシュ分割係数を減らすことは、大規模かつ高負荷なシーンをレンダリングするために実施できる、いくつかの最適化の 1 つにすぎません。その他の最適化については、「スケーラビリティの大規模シーンを最適化する」を参照してください。

メッシュ分割係数を減らすことは、次のような特定の状況において役立ちます。

  • メッシュがあまりにも多数のパーツにサブディバイドされた結果、それらの管理のためのメモリ容量が必要となったため、レンダリング速度が遅くなった場合。

  • シーン オブジェクトの変位が非常に小さい場合。この理由は、変位を適正化するためには、変位オブジェクトの各分割パーツが、他のパーツと共有される境界線上の三角形に関する追加情報を必要とするためです。

    オブジェクトがあまりにも多くの極小パーツに分割された場合。この追加の情報によって各パーツのサイズが著しく増え、結果として計算が冗長になり、レンダリング速度が遅くなる可能性があります。分割係数を増やすと、Softimage は冗長性の低い情報を使用するため、オブジェクトがより大きなパーツに分割されます。

  • 64 ビット システム上で Softimage を稼働させていて、分割されたオブジェクトのより大きなパーツをメモリに収めることができる場合。この場合、分割係数を増やすと、レンダリング速度においてマージン増分が生じる可能性があります。

所定のオブジェクトがどう分割されているかは簡単には確認できないため、次のような操作を実行できます。

  • シーンから .mi ファイル全体を読み取る。このファイルで、オブジェクトの分割によって生じたオブジェクト数を参照できます。.mi ファイルのエコー出力の詳細については、「miアーカイブおよびスタンドイン」を参照してください。

  • カスタム診断シェーダを書き出す。これにより、分割オブジェクトの各パーツがそれぞれ異なる色でレンダリングされます。詳細については、「カスタム シェーダ」『SDK ガイド』を参照してください。