Version: 2020.1
言語: 日本語
仮想テクスチャリングのキャッシュ管理
仮想テクスチャリングのエラーマテリアル

テクスチャを “Virtual Texturing Only” とマークする

Unity エディターでは、仮想テクスチャリングのみに使用するテクスチャをマークすることができます。これにより、メモリ使用量やシーンのロード時間が最適化され、ビルドのサイズも小さくなります。仮想テクスチャリングのみに使用するテクスチャをマークするには、テクスチャインポーターを開き、Virtual Texture Only を有効にします。

実際には、仮想テクスチャリングを使用する際には、これらの利点を最大限に生かすために、できるだけ多くのテクスチャを Virtual Texture Only としてマークする必要があります。なお、テクスチャを Virtual Texture Only とマークすると、プロジェクト内の通常のテクスチャサンプラーでは使用できません。エディターでは低解像度のプレビューが表示されるので、通常のテクスチャサンプラーで使用できるように見えるかもしれませんが、その後プレイヤーをビルドするとエラーが発生します。

仕組み

デフォルトでは、Unity エディターでシーンをロードすると、エディターは参照されているすべてのテクスチャを CPU と GPU の両方のメモリにロードします。Unity エディターはディスクから GPU メモリにテクスチャのストリーミングを行うことはできませんが、SVT は CPU メモリからストリーミングを行うことができます。テクスチャを Virtual Texture Only としてマークすると、シーンロード時にエディターがそれを CPU メモリにのみロードし、その後、必要に応じてそのテクスチャからタイルを抽出して GPU メモリにストリームすることを意味します。

高解像度のテクスチャが多いプロジェクトでは、GPU メモリの使用量と Unity エディターでのシーンのロード時間の両方が大幅に削減されます。このため、できるだけ多くのテクスチャを Virtual Texture Only とマークし、仮想テクスチャリング (SVT) システムが CPU からのみテクスチャのストリーミングを行うようにします。

テクスチャを Virtual Texture Only にマークしないで、プレイヤーの仮想テクスチャリングで使用すると、SVT システムは CPU と GPU の両方のメモリにテクスチャのコピーを保持します。

標準的なテクスチャのアーティファクト

デフォルトでは、Unity は、シェーダーグラフでサンプリングされたすべてのテクスチャを標準のテクスチャアーティファクトとしてビルドに追加します。また、仮想テクスチャリングでは、テクスチャスタックのすべてのテクスチャをタイル状のストリーミングファイルにインポートし、これもビルドに加えられます。

  • テクスチャを Virtual Texture Only とマークすると、Unity はそのテクスチャを標準のテクスチャアーティファクトとはみなさず、タイル状のストリーミングファイルにのみに加えます。
  • テクスチャを Virtual Texture Only としてマークしないと、Unity はそのテクスチャを 2 回 (1 回は標準のテクスチャアーティファクトとして、1 回はタイル状のストリーミングファイルに) 加えます。

なお、テクスチャを Virtual Texture Only としてマークしても、それをプレイヤーの標準テクスチャとして使用すると、プレイヤーのビルドに失敗します。

仮想テクスチャリングのキャッシュ管理
仮想テクスチャリングのエラーマテリアル