バーチャル テクスチャリングの設定とプロパティ

バーチャル テクスチャのプロジェクト設定、コンソール コマンド、アクタ設定の参照情報。

このページでは、バーチャル テクスチャリング システムの要件、設定、コンソール コマンドについて説明します。

ストリーミング バーチャル テクスチャリングの設定

ストリーミングバーチャル テクスチャリング の設定と使用には、以下の設定とプロパティを使用します。

プロジェクト設定

プロジェクトで [Enable virtual texture support (バーチャル テクスチャのサポートを有効化)] が有効 (オン) になっているときには、 [Project Settings (プロジェクト設定)] ウィンドウの [Editor (エディタ)] および [Rendering (レンダリング)] カテゴリ内にある以下の設定を使用できます。

Enable Virtual Textures

レンダリング設定

利用可能なレンダリング設定は、 [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 (新規追加)] メニューから作成できます。

Runtime Virtual Texture Window

プロパティ

説明

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 に保存するマテリアル属性を選択します。

  • Base Color: ベース カラーのみを保存します。圧縮が有効な場合は BC1 形表現式で保存されます。

  • Base Color, Normal: ベース カラーと法線を保存します。圧縮が有効な場合、ベース カラーは BC1 形表現式で保存され、法線は BC5 として保存されます。

  • Base Color, Normal, Roughness, Specular: ベース カラー、法線、ラフネス、スペキュラを保存します。圧縮が有効な場合は、ベース カラーは BC1 形表現式で保存され、その他の属性は BC3 に収められます。

  • Base Color, Normal, Roughness, Specular, Mask: これは上記と同じですが、追加の汎用 8 ビットマスク チャネルがあります。

  • World Height: 16 ビットの高さの値を格納します。値は、RVT ボリュームからの最小および最大 z 座標の範囲で正規化されて保存されます。

RVT を正しく機能させるためには、この設定を関連付けられているマテリアル アセットの設定と一致させる必要があります。

Enable BC texture compression

RVT に保存されているデータのテクスチャ圧縮を有効にします。これによりメモリの使用量が 1/4 から 1/8 となり、サンプリングのパフォーマンスが向上します。デバッグおよび品質比較では、無圧縮の使用のみが推奨されます。

Enable clear before render

設定すると、レンダリング前に各タイルがクリアされます。テクスチャが常に完全にレンダリングされると分かっている場合は、これを無効にすると最適化につながります。

Enable packed page table

この設定の場合、RVT は最適化されたページ テーブル設定を使用します。この設定はページ テーブル メモリを削減し負荷を更新しますが、他のバーチャル テクスチャと物理メモリを共有する性能が低下します。

Enable private page table

設定すると、RVT はグローバルに共有なページ テーブル アトラスからではなく、ページ テーブル リソースを個々にアロケートします。これにより、ページ テーブル メモリ割り当て合計が減りますが、サポートされsるバーチャル テクスチャの合計も減ります。

Enable packed page table

この設定の場合、RVT は最適化されたページ テーブル設定を使用します。ページ テーブル サイズよりも大きいタイル カウントをサポートします。つまり、より大きなバーチャル テクスチャ解像度が可能であることを意味します。アダプティブ ページ テーブルをサンプリングする場合のパフォーマンス コストは小さいため、これは、大量のタイル数が必要な場合にのみ設定する必要があります。

Enable continuous page updates

これが設定されている場合、RVT は、すでに生成されているフレームごとにいくつかのページを更新します。この数は、r.VT.MaxContinuousUpdatesPerFrame CVar によって制御されます。これを有効にすると、依存するテクスチャが完全にストリーミングされる前に、一部の RVT ページが生成されたときに発生する視覚的な問題に対する簡単な解決策を提供できます。

Low Mips to Remove

RVT から削除する低ミップの数です。低ミップはほとんどのエリアを覆っているため、レンダリングに最も大きな負荷がかかります。これらを削除することでパフォーマンスが向上します。ただし、低ミップを使用しないと、最終のレンダリングにおいてミップのちらつきによるアーティファクトが発生することがあります。このオプションの代替として良い方法はストリーミング低ミップです。

Texture Group

各 RVT は、プラットフォームごとのタイル数またはタイルサイズをオーバーライドするように構成することができる LOD テクスチャグループに属することができます。

Runtime Virtual Texture Sample ノード設定

マテリアル エディタの Runtime Virtual Texture 式のいくつかにおいて以下のプロパティが使用できます。

プロパティ

説明

Virtual Texture

サンプリングするランタイム バーチャル テクスチャ アセットです。

Virtual Texture Content

バーチャル テクスチャ コンテンツの解釈方法です。バインドされたバーチャル テクスチャ アセットは正しく動作するためにサンプリングを同じ設定をする必要があることに注意してください。

Enable packed page table

ページ テーブル チャンネル パッキングを有効にします。バインドされたバーチャル テクスチャ アセットは正しく動作するためにサンプリングを同じ設定をする必要があることに注意してください。

Enable adaptive page table

スパース アダプティブ ページ テーブル サンプリングを有効にします。バインドされたバーチャル テクスチャ アセットは正しく動作するためにサンプリングを同じ設定をする必要があることに注意してください。

Texture Sample

Mip Value Mode

Mip Value プロパティが Runtime Virtual Texture 式でどのようにバーチャル テクスチャ ルックアップに適用されるかを定義します。

  • None (use computed mip level): 自動異方性フィルタリング サポートを使ってハードウェアが計算したサンプルのミップ レベルを使用します。

  • MipLevel (絶対値、0 はフル解像度): 明示的にサンプルのミップレベルを計算します。異方性フィルタリングは無効になります。

  • MipBias (計算されたミップに関連): ハードウェアが計算したサンプルのミップレベルにバイアスをかけます。異方性フィルタリングは無効になります。

ここで極端な設定を使用すると、パフォーマンスに影響する可能性があります。例えば、大きな負の MipBias を使用したり、MipLevel を 0 に指定したりすると、より多くのバーチャル テクスチャ ページを保持しなければいけなくなります。それにより、物理プールのスラッシュが発生する可能性があります。

ランタイム バーチャル テクスチャ ボリューム

ランタイム バーチャル テクスチャ ボリューム を使用して ランタイム バーチャル テクスチャ アセットを割り当て、ランドスケープ アクタからのシーン内、および同じ RVT アセットを使用するシーン プリミティブ内に RVT を生成します。

Runtime Virtual Texture Volume Settings

プロパティ

説明

Virtual Texture

Virtual Texture

使用するランタイムバーチャル テクスチャ アセットです。

Scalability Group

この RVT ボリュームを使用するためのスケーラビリティ グループです。このボリュームに設定された RVT に適用する r.VT.RVT.TileCountBias.Group CVar を選択します。

Hide Primitives

これを有効にすると、メインパスでプリミティブが非表示になります。これは、このボリューム上の RVT にレンダリングするよう設定されたプリミティブで、[Draw in Main Pass (メインパスで描画する)] バーチャル テクスチャ設定が [From Virtual Texture (バーチャル テクスチャから)] に設定されているものすべてに適用されます。

Streaming Texture

このバーチャル テクスチャの低ミップに使用するストリーミング バーチャル テクスチャ アセットです。

Enable Crunch

ストリーミング バーチャル テクスチャの圧縮に Crunch ライブラリを使用できるようになります。Crunch は、(DXT/BC/ETC 圧縮を使用して) GPU ブロック圧縮されたテクスチャをさらに圧縮するためのオープンソース圧縮ライブラリです。Crunch では Zlib よりもさらにデータを小さくすることができ、圧縮解除のための CPU コストも低くなります。

View Streaming Mips in Editor

これを有効にすると、エディタで低ミップのストリーミング バーチャル テクスチャが表示されます。これはデフォルトで無効になっています。ストリーミング バーチャル テクスチャは [Build (ビルド)] ボタンを使用して手動でしか更新できず、編集セッション中は同期が取れない可能性があるためです。

アクタのプロパティ

シーンのプリミティブおよびランドスケープには以下の設定およびプロパティを使用します。

プリミティブ

シーン内のアクタに固有の設定およびプロパティです。

RVT_ActorSettings.png

プロパティ

説明

Virtual Texture

Render to Virtual Textures

選択したアクタのメッシュがレンダリングされるランタイム バーチャル テクスチャの配列です。マテリアルもバーチャル テクスチャに出力するよう設定する必要があります。

Draw in Main Pass

選択したバーチャル テクスチャ設定に応じて主パスにレンダリングします。

  • Never: メイン パスにアクタをレンダリングしません。そのため、シーンに RVT がない場合は、アクタは一切レンダリングされません。このオプションは、バーチャル テクスチャのサポートが有効になっていない場合に削除されても問題のないアイテムに対して使用します。

  • Always: バーチャル テクスチャのサポート状態にかかわらず、アクタを RVT と主パスにレンダリングします。このオプションは、バーチャル テクスチャの読み取り、およびバーチャル テクスチャへの書き込みの両方を行う必要のあるアイテムに対して使用します。例えば、ランドスケープの設定にはこのオプションが必要です。

Virtual Texture LOD Bias

ランタイム バーチャル テクスチャへのレンダリングに選択された LOD (詳細度) へのバイアスです。

Virtual Texture Skip Mips

プリミティブのレンダリング時にスキップする、ランタイム バーチャル テクスチャに含まれる低ミップの数です。この値を大きく設定すると、ランタイム バーチャル テクスチャで使われる描画距離が縮まります。カリングでは、プリミティブ サイズまたはバーチャル テクスチャ サイズは考慮されません。

Virtual Texture Min Coverage

ランタイム バーチャル テクスチャからのカリングを行う前の最小ピクセル カバレッジを設定します。この値を大きく設定すると、ランタイム バーチャル テクスチャで使われる描画距離が縮まります。

ランドスケープ

シーン内のランドスケープ アクタに特有の設定およびプロパティです。

Runtime Virtual Texture Landscape Settings

プロパティ

説明

Virtual Texture

Render to Virtual Textures

選択したアクタのメッシュがレンダリングされるランタイム バーチャル テクスチャの配列です。マテリアルもバーチャル テクスチャに出力するよう設定する必要があります。

Virtual Texture Pass Type

選択したバーチャル テクスチャ設定に応じて主パスにレンダリングします。

  • Never: メイン パスにアクタをレンダリングしません。そのため、シーンに RVT がない場合は、アクタは一切レンダリングされません。このオプションは、バーチャル テクスチャのサポートが有効になっていない場合に削除されても問題のないアイテムに対して使用します。

  • Always: バーチャル テクスチャのサポート状態にかかわらず、アクタを RVT と主パスにレンダリングします。このオプションは、バーチャル テクスチャの読み取り、およびバーチャル テクスチャへの書き込みの両方を行う必要のあるアイテムに対して使用します。例えば、ランドスケープの設定にはこのオプションが必要です。

Virtual Texture Num LODs

ランドスケープをランタイム バーチャル テクスチャにレンダリングする際に使用するメッシュ レベルの数です。この値は、バーチャル テクスチャのレンダリングに使用するマテリアルが、高さなどの頂点補間データを必要とする場合にのみ設定してください。この値を大きく設定するとテッセレーションされたメッシュがより多く使用され、ランタイム バーチャル テクスチャをレンダリングする際の負荷が高くなります。

Virtual Texture LOD Bias

ランタイム バーチャル テクスチャへのレンダリングに選択された LOD (詳細度) へのバイアスです。

ランドスケープ スプライン

シーン内のランドスケープとランドスケープ スプライン アクタに特有の設定およびプロパティです。

Runtime Virtual Texture Landscape Spline

プロパティ

説明

Virtual Texture

Render to Virtual Textures

選択したアクタのメッシュがレンダリングされるランタイム バーチャル テクスチャの配列です。マテリアルもバーチャル テクスチャに出力するよう設定する必要があります。

Virtual Texture Pass Type

選択したバーチャル テクスチャ設定に応じて主パスにレンダリングします。

  • Never: メイン パスにアクタをレンダリングしません。そのため、シーンに RVT がない場合は、アクタは一切レンダリングされません。このオプションは、バーチャル テクスチャのサポートが有効になっていない場合に削除されても問題のないアイテムに対して使用します。

  • Always: バーチャル テクスチャのサポート状態にかかわらず、アクタを RVT と主パスにレンダリングします。このオプションは、バーチャル テクスチャの読み取り、およびバーチャル テクスチャへの書き込みの両方を行う必要のあるアイテムに対して使用します。例えば、ランドスケープの設定にはこのオプションが必要です。

Virtual Texture Num LODs

ランドスケープをランタイム バーチャル テクスチャにレンダリングする際に使用するメッシュ レベルの数です。この値は、バーチャル テクスチャのレンダリングに使用するマテリアルが、高さなどの頂点補間データを必要とする場合にのみ設定してください。この値を大きく設定するとテッセレーションされたメッシュがより多く使用され、ランタイム バーチャル テクスチャをレンダリングする際の負荷が高くなります。

Virtual Texture LOD Bias

ランタイム バーチャル テクスチャへのレンダリングに選択された LOD (詳細度) へのバイアスです。

Virtual Texture Skip Mips

プリミティブのレンダリング時にスキップする、ランタイム バーチャル テクスチャに含まれる低ミップの数です。この値を大きく設定すると、RVT で使われる描画距離が縮まります。このカリングでは、プリミティブ サイズまたはバーチャル テクスチャ サイズは考慮されません。

Max Draw Distance in Main Pass

Draw in Main PassAlways に設定されている場合のメイン パスでの望ましいカリング距離。 この値が 0 の場合は効果はありません。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル