このページでは、バーチャル テクスチャリング システムの要件、設定、コンソール コマンドについて説明します。
ストリーミングバーチャル テクスチャリングの設定
ストリーミングバーチャル テクスチャリング の設定と使用には、以下の設定とプロパティを使用します。
プロジェクト設定
プロジェクトで [Enable virtual texture support (バーチャル テクスチャのサポートを有効化)] が有効 (オン) になっているときには、 [Project Settings (プロジェクト設定)] ウィンドウの [Editor (エディタ)] および [Rendering (レンダリング)] カテゴリ内にある以下の設定を使用できます。
レンダリング設定
利用可能なレンダリング設定は、 [Project Settings (プロジェクト設定)] ウィンドウの [Engine (エンジン)] > [Rendering (レンダリング)] > [Virtual Textures (バーチャル テクスチャ)] カテゴリにあります。
| プロパティ | 説明 |
|---|---|
| Enable virtual texture support | 有効な場合は、バーチャル テクスチャ システムを使用してテクスチャをストリーミングできます。 この設定を変更した場合はエディタを再起動する必要があります。 |
| Enable virtual texture lightmaps | ライトマップはバーチャル テクスチャにベイクされます。つまり、ライトマップでは ストリーミングバーチャル テクスチャ のメリット (そしてデメリット) をすべて得ることができることを意味します。従来のライトマップ テクスチャ アトラス シートと比較すると、VT はレベルのすべてのライティングを単一のテクスチャに含めることができるため、バッチ処理の効率が向上します。これを変更した場合、プロジェクトに対してライティングを再ビルドする必要があります。この設定を変更した場合はエディタを再起動する必要があります。 |
| Tile size | バーチャル テクスチャ タイルのサイズ (ピクセル単位) です。「2 の累乗」ではない値は、すべて次の「2 の累乗」値に丸められます。この設定を変更した場合はエディタを再起動する必要があります。 |
| Tile border size | バーチャル テクスチャ タイルのサイズ (ピクセル単位) です。「2 の累乗」ではない値は、すべて次の「2 の累乗」値に丸められます。境界が大きいと異方性フィルタリングの度合いも上がりますが、より多くのディスク/キャッシュ メモリが使用されます。この設定を変更した場合はエディタを再起動する必要があります。 |
| Feedback resolution factor | 係数の値が低いとバーチャル テクスチャ フィードバック解像度が上がり、CPU/GPU のオーバーヘッドも大きくなります。ただし、特にマテリアルで多数のバーチャル テクスチャを使用している場合は、ストリーミング レイテンシーが少なくなる場合があります。 |
| Enable Zlib compression | バーチャル テクスチャの圧縮に Zlib を使用できるようになります。これにより、VT テクスチャのディスク I/O コスト (読み取りまたは書き込みの回数) が下がりますが、圧縮解除の CPU コストがかかるようになります。この設定を変更した場合はエディタを再起動する必要があります。 |
| Enable Crunch compression | バーチャル テクスチャの圧縮に Crunch ライブラリを使用できるようになります。Crunch は、(DXT/BC/ETC 圧縮を使用して) GPU ブロック圧縮されたテクスチャをさらに圧縮するためのオープンソース圧縮ライブラリです。Crunch では Zlib よりもさらにデータを小さくすることができ、圧縮解除のための CPU コストも低くなります。ただし、非可逆圧縮であるため画質は低下します。Crunch を有効にすると、サポートされるテクスチャ形式に対してのみ使用されます。非可逆圧縮の度合いは、テクスチャ エディタの [Lossy Compression Amount (非可逆圧縮量)] プロパティの値によって VT アセットごとに設定することができます。デフォルト値を使用すると最小限の圧縮が適用され、画質は最高品質になりますが、メモリの使用は最大になります (それでも Zlib よりは低い)。非可逆圧縮は無効にすることもできます。また、圧縮の度合いを上げてメモリの使用を低くすることもできますが、画質も低下します。この設定を変更した場合はエディタを再起動する必要があります。 |
エディタ設定
利用可能な編集設定は、 [Project Settings (プロジェクト設定)] ウィンドウの [Editor (エディタ)] > [Texture Import (テクスチャのインポート)] > [Virtual Textures (バーチャル テクスチャ)] カテゴリにあります。
| プロパティ | 説明 |
|---|---|
| Auto Virtual Texturing Size | ここで設定したサイズ以上のテクスチャの [Virtual Texture Streaming (バーチャル テクスチャ ストリーミング)] テクスチャ設定を自動で有効にします。この設定はプロジェクトの既存テクスチャには影響しません。 |
テクスチャ エディタ
テクスチャ エディタを使用して、非可逆圧縮の量と、テクスチャで SVT をサポートするかどうかを設定します。
クリックしてフルサイズ表示。
| プロパティ | 説明 |
|---|---|
| Compression | |
| Lossy Compression Amount | 関連する非可逆圧縮の適用の強さです。非可逆圧縮なしから最高値まで、利用可能なオプションを選択できます。最高値を選択するとファイル サイズは最小になりますが、画質は最低になります。 |
| Texture | |
| Virtual Texture Streaming | バーチャル テクスチャリングを使用してテクスチャをストリーミングするかどうかを設定します。このパラメータは、 [Editor (エディタ)] > [Virtual Texturing (バーチャル テクスチャリング)] の [Project Settings (プロジェクト設定)] にある [Auto Virtual Texturing Size (自動バーチャル テクスチャリング サイズ)] で設定したサイズ以上の、インポートされたテクスチャに対してデフォルトで有効になっていることに留意してください。 |
ランタイム バーチャル テクスチャ設定
プロジェクトでの ランタイム バーチャル テクスチャリング の設定と使用には、以下の設定とプロパティを使用します。
ランタイム バーチャル テクスチャ アセット
ランタイム バーチャル テクスチャ アセットを開いたら、このウィンドウを使用して、生成された RVT を参照する ランタイム バーチャル テクスチャ ボリューム を含むシーン内に存在する、これらの RVT に対するパラメータを設定します。RVT アセットは、 [Materials & Textures (マテリアル・テクスチャ)] の [Add New (新規追加)] メニューから作成できます。
| プロパティ | 説明 |
|---|---|
| Details | |
| Page Table Texture Memory (estimated) | バーチャル テクスチャ アセットが消費するページ テーブル テクスチャ メモリの推定量です。 |
| Physical Texture Memory (estimated) | バーチャル テクスチャ アセットが消費する物理メモリの推定量です。 |
| Size | |
| Size of the virtual texture in tiles | この RVT のタイルでのサイズです。RVT の最終的な解像度は、この値にタイル サイズを乗じた値です。現在 4096 タイルまでサポートされています。関連付けられた RVT ボリュームの幅または高さのいずれか (値が大きいほう) に適用されます。小さいほうの軸のサイズは、RVT ボリュームのアスペクト比に合わせて設定されます。 |
| Size of each virtual texture tile | RVT で使用されるタイル サイズです。バーチャル テクスチャ データはタイルにレンダリングされ、保存されます。タイル サイズを小さく設定すると、各タイルを生成する負荷が下がりますが、より多くの数のタイルを生成する必要があります。 |
| Border padding for each virtual texture tile | 各タイルに使用されるパディング テクセルの数です。この値を大きく設定すると、メモリとパフォーマンスへの影響が小さくなります。「0」に設定すると、タイルのエッジ部分にバイリニア サンプリング アーティファクトからのシェーディング シームが発生します。「2」に設定することでこの問題は解決します。異方性サンプリングを有効にするには、より大きな値を設定する必要があります。 |
| Layout | |
| Virtual texture content | RVT に保存するマテリアル属性を選択します。
RVT を正しく機能させるためには、この設定を関連付けられているマテリアル アセットの設定と一致させる必要があります。 |
| Enable BC texture compression | RVT に保存されているデータのテクスチャ圧縮を有効にします。これによりメモリの使用量が 1/4 から 1/8 となり、サンプリングのパフォーマンスが向上します。デバッグおよび品質比較では、無圧縮の使用のみが推奨されます。 |
| Enable virtual texture | バーチャル テクスチャを有効にします。無効にするとバーチャル テクスチャへのレンダリングはなく、サンプリングは値ゼロを返します。 |
| Enable clear before render | 設定すると、レンダリング前に各タイルがクリアされます。テクスチャが常に完全にレンダリングされると分かっている場合は、これを無効にすると最適化につながります。 |
| Enable packed page table | この設定の場合、RVT は最適化されたページ テーブル設定を使用します。この設定はページ テーブル メモリを削減し負荷を更新しますが、他のバーチャル テクスチャと物理メモリを共有する性能が低下します。 |
| Enable private page table | 設定すると、RVT はグローバルに共有なページ テーブル アトラスからではなく、ページ テーブル リソースを個々にアロケートします。これにより、ページ テーブル メモリ割り当て合計が減りますが、サポートされsるバーチャル テクスチャの合計も減ります。 |
| Enable Scalability | 設定すると、RVT のサイズは r.VT.RVT.TileCountBias スケーラビリティ設定によって調整できます。 |
| Low Mips | |
| Number of low mips to stream to the virtual texture | ランタイム レンダリングではなくストリーミングすべき RVT の低ミップ数です。ゼロ以外の値に設定するとパフォーマンスが上がりますが、ストリーミングは低ミップバーチャル テクスチャを維持しなければなりません。 |
| Streaming low mip texture | 低ミップストリーミングの場合に使用されるストリーミングバーチャル テクスチャです。RVT に影響する変更をワールド コンテンツに行った後に再ビルドする必要があります。 |
| Low Mips to Remove | RVT から削除する低ミップの数です。低ミップはほとんどのエリアを覆っているため、レンダリングに最も大きな負荷がかかります。これらを削除することでパフォーマンスが向上します。ただし、低ミップを使用しないと、最終のレンダリングにおいてミップのちらつきによるアーティファクトが発生することがあります。このオプションの代替として良い方法はストリーミング低ミップです。 |
Runtime Virtual Texture Sample ノード設定
マテリアル エディタの Runtime Virtual Texture 式のいくつかにおいて以下のプロパティが使用できます。
| プロパティ | 説明 |
|---|---|
| Virtual Texture | サンプリングするランタイム バーチャル テクスチャ アセットです。 |
| Virtual Texture Content | バーチャル テクスチャ コンテンツの解釈方法です。バインドされたバーチャル テクスチャ アセットは正しく動作するためにサンプリングを同じ設定をする必要があることに注意してください。 |
| Enable packed page table | ページ テーブル チャンネル パッキングを有効にします。バインドされたバーチャル テクスチャ アセットは正しく動作するためにサンプリングを同じ設定をする必要があることに注意してください。 |
| Texture Sample | |
| Mip Value Mode | Mip Value プロパティが Runtime Virtual Texture 式でどのようにバーチャル テクスチャ ルックアップに適用されるかを定義します。
|
ランタイム バーチャル テクスチャ ボリューム
ランタイム バーチャル テクスチャ ボリューム を使用して ランタイム バーチャル テクスチャ アセットを割り当て、ランドスケープ アクタからのシーン内、および同じ RVT アセットを使用するシーン プリミティブ内に RVT を生成します。
| プロパティ | 説明 |
|---|---|
| Virtual Texture | |
| Virtual Texture | 使用するランタイム バーチャル テクスチャ アセットです。 |
アクタのプロパティ
シーンのプリミティブおよびランドスケープには以下の設定およびプロパティを使用します。
プリミティブ
シーン内のアクタに固有の設定およびプロパティです。
| プロパティ | 説明 |
|---|---|
| Virtual Texture | |
| Render to Virtual Textures | 選択したアクタのメッシュがレンダリングされるランタイム バーチャル テクスチャの配列です。マテリアルもバーチャル テクスチャに出力するよう設定する必要があります。 |
| Virtual Texture Pass Type | 選択したバーチャル テクスチャ設定に応じて主パスにレンダリングします。
|
| Virtual Texture LOD Bias | ランタイム バーチャル テクスチャへのレンダリングに選択された LOD (詳細度) へのバイアスです。 |
| Virtual Texture Skip Mips | プリミティブのレンダリング時にスキップする、ランタイム バーチャル テクスチャに含まれる低ミップの数です。この値を大きく設定すると、ランタイム バーチャル テクスチャで使われる描画距離が縮まります。カリングでは、プリミティブ サイズまたはバーチャル テクスチャ サイズは考慮されません。 |
| Virtual Texture Min Coverage | ランタイム バーチャル テクスチャからのカリングを行う前の最小ピクセル カバレッジを設定します。この値を大きく設定すると、ランタイム バーチャル テクスチャで使われる描画距離が縮まります。 |
ランドスケープ
シーン内のランドスケープ アクタに特有の設定およびプロパティです。
| プロパティ | 説明 |
|---|---|
| Virtual Texture | |
| Render to Virtual Textures | 選択したアクタのメッシュがレンダリングされるランタイム バーチャル テクスチャの配列です。マテリアルもバーチャル テクスチャに出力するよう設定する必要があります。 |
| Virtual Texture Pass Type | 選択したバーチャル テクスチャ設定に応じて主パスにレンダリングします。
|
| Virtual Texture Num LODs | ランドスケープをランタイム バーチャル テクスチャにレンダリングする際に使用するメッシュ レベルの数です。この値は、バーチャル テクスチャのレンダリングに使用するマテリアルが、高さなどの頂点補間データを必要とする場合にのみ設定してください。この値を大きく設定するとテッセレーションされたメッシュがより多く使用され、ランタイム バーチャル テクスチャをレンダリングする際の負荷が高くなります。 |
| Virtual Texture LOD Bias | ランタイム バーチャル テクスチャへのレンダリングに選択された LOD (詳細度) へのバイアスです。 |
ランドスケープ スプライン
シーン内のランドスケープとランドスケープ スプライン アクタに特有の設定およびプロパティです。
| プロパティ | 説明 |
|---|---|
| Virtual Texture | |
| Render to Virtual Textures | 選択したアクタのメッシュがレンダリングされるランタイム バーチャル テクスチャの配列です。マテリアルもバーチャル テクスチャに出力するよう設定する必要があります。 |
| Virtual Texture Pass Type | 選択したバーチャル テクスチャ設定に応じて主パスにレンダリングします。
|
| Virtual Texture Num LODs | ランドスケープをランタイム バーチャル テクスチャにレンダリングする際に使用するメッシュ レベルの数です。この値は、バーチャル テクスチャのレンダリングに使用するマテリアルが、高さなどの頂点補間データを必要とする場合にのみ設定してください。この値を大きく設定するとテッセレーションされたメッシュがより多く使用され、ランタイム バーチャル テクスチャをレンダリングする際の負荷が高くなります。 |
| Virtual Texture LOD Bias | ランタイム バーチャル テクスチャへのレンダリングに選択された LOD (詳細度) へのバイアスです。 |
| Virtual Texture Skip Mips | プリミティブのレンダリング時にスキップする、ランタイム バーチャル テクスチャに含まれる低ミップの数です。この値を大きく設定すると、RVT で使われる描画距離が縮まります。カリングでは、プリミティブ サイズまたはバーチャル テクスチャ サイズは考慮されません。 |
| Max Draw Distance in Main Pass | Virtual Texture と Main Pass の両方をレンダリングする場合のメインパスでの望ましいカリング距離。ここの強度は 0 に設定されています。 |