Version: Unity 6.0 (6000.0)
言語 : 日本語
ストリーミング仮想テクスチャリングの要件と互換性
ストリーミング仮想テクスチャリングをプロジェクトで使用可能にする

ストリーミング仮想テクスチャリングの仕組み

この機能は実験的であり、本番環境では使用できません。機能とドキュメントは今後、変更または削除される可能性があります。

ストリーミング仮想テクスチャリング (SVT) システムでは、テクスチャをタイル状に分割します。

ランタイムには、SVT がテクスチャをサンプリングする際に以下のような処理を行います。

  • 間接テクスチャをサンプリングして、非仮想 UV を計算し、その UV を使ってキャッシュテクスチャをサンプリングします。
  • 仮想 UV をタイル ID に変換し、これらのタイル ID を受け取るように追加のレンダーターゲットをバインドします。CPU はこのレンダーターゲットを非同期にメインメモリにコピーし、別のスレッドで処理します。これにより、非同期の読み取りマネージャーに対して、これらのタイルをディスクから GPU メモリのキャッシュにロードするリクエストを作成します (まだ存在していない場合)。

このようなランタイムオペレーションのコストを考えると、テクスチャをグループ化して、すべて同時にサンプリングする方が効率的です。この処理を、テクスチャのスタック化と呼びます。同じ UV 座標で同時にサンプリングされたテクスチャのグループは、テクスチャスタックと呼ばれます。

SVT は、フレームレンダリング中にタイルのリクエストを発行します。そのため、リクエストされたタイルが GPU キャッシュにロードされるまでにミリ秒から数秒かかり、場合によってはまったくロードされないこともあります。リクエストされたタイルがキャッシュにロードされない場合、SVT には自動フォールバックメカニズムがあり、リクエストされたタイルがキャッシュに保存されるまで、高いミップマップレベルからタイルをサンプリングします。その結果、タイルが完全にロードされるまで Level of Detail (LOD) が低くなります。

HD レンダーパイプラインのデバッグビューの SVT

HD レンダーパイプライン (HDRP) のデバッグビューは、隣接するスクリーンピクセルがいくつ同じタイルをリクエストしているかを表示します。

HDRP デバッグビューを開くには、Unity トップメニューから移動し、Window > Analysis > Rendering Debugger > Rendering を選択します。SVT のデバッグデータを表示するには、Fullscreen Debug ModeRequestedVirtualTextureTiles に設定します。

デバッグビューでは、タイル ID ごとに異なる色が使用されます。
デバッグビューでは、タイル ID ごとに異なる色が使用されます。

同じテクスチャタイルをサンプリングしているピクセルは、同じ色になります。色相 (緑、赤など) は、タイルが属するミップマップレベルを表しています。例えば、黄色系統のタイルはすべて、テクスチャのミップマップ 1 に属します。

ストリーミング仮想テクスチャリングの要件と互換性
ストリーミング仮想テクスチャリングをプロジェクトで使用可能にする