スパース仮想テクスチャ
Substance 3D Painterのバージョン 2018.3 以降では、大量のスパース仮想テクスチャを管理するために、リアルタイムビューポートでテクスチャ (SVT)を使用しています。 このテクノロジを使用すると、特定の視点から必要なテクスチャをストリーミングして、GPUメモリ上の特定のフットプリントを維持できます。 これにより、テクスチャセット(またはUDIM)の量が多いプロジェクトのパフォーマンスが向上します。
サポート対象プラットフォーム
スパーステクスチャは、十分なパフォーマンスを得るために特定のハードウェア構成に依存します。 現在の構成が正しくサポートされていない場合、Substance 3D Painterは代わりに フォールバック をソフトウェアの実装に適用します(これは、精度が低く、パフォーマンスが低くなります)。
設定に移動すると、Substance 3D Painterでハードウェアアクセラレーションの代わりにソフトウェアフォールバックを強制的に使用できます。
ハードウェアアクセラレーション対応のスパース仮想テクスチャをサポートする構成は次のとおりです。
- Nvidia GeForce(ドライバー411.63以降)
- Nvidia Quadro(ドライバー411.63以降)
- AMD FireProおよびRadeon Pro (ドライバー18.9.3以降) *
- AMD Radeon (ドライバー18.9.3以降)*
- Nvidia Quadro M2000
- Nvidia Geforce GTX 970
- Intel GPU
- オペレーティングシステムでサポートされていないハードウェア機能
- 任意のGPUモデル
- Nvidia GeForce(ドライバー410.73以降)
- Nvidia Quadro(ドライバー410.73以降)
- AMD FireProおよびRadeon Pro (ドライバー18.9.3以降) *
- AMD Radeon (ドライバー18.9.3以降)*
- Intel GPU
- * :既定で無効になっているハードウェアアクセラレータは、設定で手動で有効にすることができます。
Substance 3D Painterでスパース仮想テクスチャを使用する理由
Substance 3D Painterは、テクスチャを計算するためにメインエンジンを使用し、ビューポートに表示されます。 つまり、エンジンとビューポートは、これらのテクスチャを計算して表示するためにGPUメモリ(VRam)を共有する必要があります。 プロジェクトにテクスチャセット (またはUV タイル)が多いほど、ビューポートに必要なメモリ量が多くなります。 ビューポートがGPUで大量のメモリを消費する場合、メインエンジンにはテクスチャを計算するための十分な容量がなく、テクスチャをシステムメモリ(Ram)に取り除く必要があります。 これにより、パフォーマンスが低下し、計算が遅くなります。
SVTの目標は、ビューポートがGPU エンジンで使用できる容量を割り当て、メインのメモリが計算を実行できるスペースをできる限り確保することです。 このシステムの利点は、通常どおり作業しながら、Substance 3D Painterにさらに大きなプロジェクトを読み込める機能が利用できることです。
スパーステクスチャの仕組み
スパース仮想テクスチャは、完全ではないテクスチャの一種です。 つまり、アプリケーションはメモリ内のテクスチャの一部のみをロードします。 必要なもののみがロードされ、残りはシステムメモリまたはディスク(キャッシュ)に格納されます。 再び必要になった場合、テクスチャはキャッシュから取得され、ビューポートに戻されます。 転送をすばやく行うには、mipmapsを使用して、異なる解像度のテクスチャ間をすばやくジャンプします。 そのため、ビューポートにすばやく移動すると、最初はぼやけたテクスチャが表示され、数秒後に画質が向上することがあります。
技術的な知識の詳細については、 スパース仮想テクスチャを参照してください。
キャッシュの場所
SVTキャッシュを保存するのに十分なシステムメモリ(Ram)がない場合、Substance 3D Painterはキャッシュを保存する代わりにコンピューターのハードドライブに切り替えます。
このキャッシュの既定の場所は、オペレーティングシステムの一時ファイルフォルダーです。 この場所は、アプリケーションのメイン設定で変更できます。一般環境設定を参照してください。
シェーダー適合性
SVTを最大限に活用するには、シェーダがSparseシステムにテクスチャをリクエストして読み取る必要があります。 そのため、vec2テクスチャ座標および サンプラー に基づく以前の関数は廃止されました。 Sparse テクスチャを使用する代わりに、ヘルパー関数が提供されるようになりました。
シェーダを更新するには: