mip_binaryproxy

 
 
 

カテゴリ: mental ray > ジオメトリ

シェーダ ファミリ: ジオメトリ

出力: カスタム

このシェーダを使用すると、必要に応じてジオメトリを迅速にロードできます。このシェーダの主な目的はパフォーマンスです。あらゆる形式の変換をスキップし、レンダリング時に RAM に直接取り込まれるバイナリ ファイル形式に直接書き込むことによる解析もスキップするからです。mental ray では必要に応じてジオメトリをロードするその他の方法もありますが(アセンブリ、ファイル オブジェクト、ジオメトリ シェーダなど)、それらの方法には通常、パフォーマンスに影響を与え得る解析ステップや変換ステップが含まれます。

名前(Name)

Render Tree に表示されるシェーダ ノードの名前。任意の名前を入力するか、デフォルト名を使用します。

object_filename

読み取る(書き込む)ファイル名です。規則では、ファイル拡張子は mib です。

write_geometry

このシェーダには読み取りモードと書き込みモードがあります。

  • [write_geometry]がオンで(書き込みモード)、[geometry]パラメータが既存のシーン オブジェクトのインスタンスをポイントしている場合、このオブジェクトは[object_filename]で定義された .mib ファイルに書き込まれます。

  • [write_geometry]がオフの場合は(読み取りモード)、[geometry]パラメータは無視されます(使用されません)。代わりに、必要に応じてファイルから実際のジオメトリをロードするコールバックを含む mental ray プレースホルダ オブジェクトが作成されます。この状況は通常、レイがオブジェクトのバウンディング ボックスに当たったけれど、mental ray が別のタイミングで別の理由からジオメトリをロードする場合などに発生します。

ジオメトリ(geometry)

[object_filename]によって定義された .mib ファイルに([write_geometry]によって)書き込まれるオブジェクトです。

meter_scale

単位に依存しない方法でオブジェクトを解釈できます。この値が 0.0 の場合、このパラメータは使用されません。

使用する場合、この値は 1 メートルを表すシーン単位の数にする必要があります。たとえば、シーン単位がミリメートルの場合は、この値は 1000 になります。

  • 書き込む場合([write_geometry]がオン)、この値は .mib ファイルにメタデータとして格納されるだけです。

  • 読み取る場合([write_geometry]がオフ)、オブジェクトはファイルに格納された値の比率で拡大/縮小され、単位に違いがある場合は、読み取り時に値が渡されます。

フラグ(flags)

各ビットに特定の意味があるビット フラグです。このパラメータはアルゴリズム コントロールに使用され、ほとんどの場合 0 のままである必要があります。

現在使用されている値は以下のとおりです。

  • [1]プレースホルダではなくアセンブリの使用を強制します。これらはどちらも mental ray が必要に応じてオブジェクトをロードする際に使用するテクニックで、動作がわずかに異なります。詳細については、「miアーカイブおよびスタンドイン」(「レンダリング」)および「ジオメトリ シェーダについて」(「マテリアルとシェーダ」)を参照してください。アセンブリは BSP2 アクセラレーションのみで動作し、同じアセンブリの複数のインスタンスには異なるマテリアルやオブジェクトのフラグを適用できません。この制限はプレースホルダにはありません。

  • [2]自動アセンブリ モード。BSP2 アクセラレーションが使用される場合はアセンブリが使用され、使用されない場合はプレースホルダが使用されます。

  • [4]オブジェクトを書き込む前にテッセレーションしません。オブジェクトはローデータ形式で書き込まれます。これを機能させるには、オブジェクトがすでに mental ray primlist(miBox)に入っている必要があります。このビットが設定されている場合、ディスプレイスメントはファイルにベークされません これが設定されていない場合(既定)、ディスプレイスメントがベークされます。

    ディスプレイスメントをベークしているときに、ビュー依存の近似は使用できません。これは、このシェーダの実行時にビューが 1 つもセットアップされず、生成されるテッセレーションの出来栄えが悪くなるためです。

その他のビットについては、将来のバージョンで利用される可能性があるため、すべてゼロにしておく必要があります。