外部参照を使用時に、効率がよくない使い方

外部参照は形状を再利用する際に便利ですが、使い方によっては効率がよくない組み合わせもあります。
その場合の解決策を記載します。

以下のように、「形状A」「形状B」「形状C」がそれぞれ同一のテクスチャイメージを参照する場合を考えます。

このような構成は、2048 x 2048ピクセルといった比較的大きなサイズのテクスチャイメージを用意し、
それぞれの形状がその1つのテクスチャを参照する、という構成で見られるパターンです。
複数の木や岩など、1つのマテリアル/テクスチャイメージを共有し、形状は複数に分けて管理する構成です。

それぞれの形状は「A.shd」「B.shd」「C.shd」の3つのshdファイルで管理されているとします。
このとき、全体を管理する「Scene.shd」ファイルを新たに設けて、3つのshdファイルを順番に外部参照としてインポートします。
この場合、それぞれの形状を読み込むと同時に外部参照としたテクスチャイメージもいったん読み込まれます。
参照しているイメージファイルは同一のため、チェック後にリソースとしては解放されています。
この動作のため、同一テクスチャイメージを参照していても外部参照として読み込む際に時間がかかることになります。

また、外部参照された形状を「独立」させた場合は、このシーンに形状と表面材質が読み込まれることになります。
同一のマスターマテリアル(マスターサーフェス)やイメージを参照している場合でも、
同一名のマテリアルやマスターイメージが生成されます。
なお、外部参照でさらに外部参照を使っている場合はそれを展開するかどうかも選択できます。
上記の例の場合は、マスターイメージとしての外部参照が保持された状態で、同一名で同一参照先のマスターイメージが生成されることになります。

いくつか情報の重複が発生するため、このような場合は効率がよくないです。

同一マスターイメージを参照する複数形状の管理

このような場合のファイル構成を管理しやすくするには、以下の方法が有効です。

「形状A」「形状B」「形状C」をファイルABC.shdに格納します。
それぞれの形状は同一のマテリアルまたはテクスチャイメージを参照します。
テクスチャイメージはABC.shdファイルに読み込んでいても外部参照としていてもかまいません。
この3つの形状は以下のようにマスターオブジェクトパートに入れておきます。

このABC.shdファイルを新しいシーンに読み込みます。
外部参照ではなく、「シーンに取り込み」で実体を読み込みます。
この場合は、ABC.shdのファイルの内容がそのまま追加されることになるため、
3つの形状がマスターオブジェクトとして読み込まれ、1マテリアル/1テクスチャを参照する状態です。

使用したいマスターオブジェクトをブラウザで選択し、ツールボックスの「作成」-「移動/複製」-「複製」-「リンク」より形状のリンクを作成します。
これにより、同一テクスチャイメージは常に1回だけ読み込まれることになります。
また、同一のマテリアルやマスターイメージが複数生成されるのも防ぐことができます。

この記事のURLとタイトルをコピーする
Translate »