開発
開発
プラットフォームを選択

アイトラック中心窩レンダリングレベル

更新日時: 2024/12/16
アイトラッキング中心窩レンダリング(ETFR)では、視線方向を利用して、見ている場所(中心窩域)をフル解像度でレンダリングし、実際の人間の視覚で視野の端の視力が弱くなるように、周辺のピクセル密度を低くします。このテクニックにより、レンダリングされるピクセルの数が固定中心窩レンダリングを使用する場合よりも少なくなるため、GPUを節約できます。

仕組み

アイトラッキング中心窩レンダリングは、FFR(固定中心窩レンダリング)の次の進化形であり、画面の中央(中心窩域)はフル解像度でレンダリングし、周辺は低解像度でレンダリングします。このため、Meta QuestアプリのGPUを大幅に節約できます。
ETFRの場合、中心窩域は、アイトラッキングを使用して見ている場所に合わせて移動します。低解像度域は常に視野の端に隠れているので、よりアグレッシブな中心窩マップを使用して、GPUをさらに節約することができます。
Eye tracked foveated rendering

前提条件

ETFRを開始する前に、使用するMeta QuestオペレーティングシステムとUnrealエンジン統合がいずれも最新バージョンであることを確認してください。アプリのETFRを有効にするための要件は次のとおりです。
  • Meta Quest Proヘッドセット
  • Unrealエンジン4.27(v46統合SDK)以上

プロジェクトの設定

  1. Unrealエンジンで初めてのMeta Quest VRアプリを作成するに従って、Unrealエンジンエディターをビルドして実行します。
  2. [設定] > [プロジェクト設定]の順にクリックします。
  3. [Platform (プラットフォーム)] > [Android] > [Build (ビルド)]で、[Support Vulkan (Vulkanをサポート)]が選択されており、[Support OpenGL ES3.1 (OpenGL ES3.1をサポート)]が選択されていないことを確認します。これは、ETFRがVulkan専用の機能であるためです。
  4. [Plugins (プラグイン)] > [Oculus VR] > [General (全般)] > [XR API]で、[OpenXR OVRPlugin]が選択されていることを確認します。これは、ETFRがOpenXR OVRPluginでのみ使用できるためです。
  5. [Plugins (プラグイン)] > [Meta XR] > [Mobile (モバイル)] > [Foveated Rendering (中心窩レンダリング)]で、[Support Eye Tracked Foveated Rendering (アイトラッキング中心窩レンダリングをサポート)]が選択されていることを確認します。こうすると、現在のUnrealプロジェクトでETFRサポートが有効になり、グローバル設定、Blueprints、C++インターフェースでコントロールできるようになります。

ETFRをグローバルに有効にする

[Plugins (プラグイン)] > [Foveated Rendering (中心窩レンダリング)]で、次のことを行います。
  1. [Foveated Rendering Method (中心窩レンダリングメソッド)][Eye Tracked Foveated Rendering (アイトラッキング中心窩レンダリング)]に設定します。
  2. [Foveated Rendering Level (中心窩レンダリングレベル)]を、コンテンツをレンダリングするETFRレベルに設定します。中心窩マップの視覚化については、「GPUの節約から出た余力を活用する」セクションをご覧ください。
  3. 必要に応じて、[Dynamic Foveated Rendering (ダイナミック中心窩レンダリング)]をオンにして、GPU負荷に基づいてETFRレベルを調整します(ただし、開発中はこのオプションをオフにして、グラフィックの品質とパフォーマンスをテストしてください)。
  4. ETFRが有効になっているのに、アイトラッキングが使用できない場合や、使用できなくなった場合(例えば、ユーザーがアクセス許可を拒否したり、システム設定でアイトラッキングをオフにしたりした場合)、アプリは特定の設定値でオーバーライドされない限り、自動的にダイナミック高FFRにフォールバックするため、ETFRと比較して可能な限りパフォーマンスが高く保たれます。

BlueprintsでETFRを有効にする

Oculus関数ライブラリにはETFR機能のための追加ノードがあります。使用方法については、Blueprintsのサンプルをご覧ください。
Get Eye Tracked Foveated Rendering Supported関数を使用すると、アプリを実行しているデバイスがETFRをサポートしているかどうかを確認できます。ETFRをサポートしていないデバイスでアプリを実行している場合に設定値や動作を変更するために使用できます。
Set Foveated Rendering Method関数を使用すると、実行時にFFRとETFRを切り替えることができます。アイトラッキングのアクセス許可がまだ付与されていない場合、ユーザーにはこの時点でアイトラッキングのアクセス許可のプロンプトが表示されます。アクセス許可が拒否された場合、アプリは自動的にダイナミック高FFRにフォールバックします。
ETFR Blueprint
Oculus XRイベントコンポーネントには、新しいデリゲートOculus Eye Tracking State Changedがあります。これを使用して、実行時にアイトラッキングが使用可能または使用不可になったときに関数を実行することができます。これは、アイトラッキングのアクセス許可が拒否される、あるいはアイトラッキングに問題が発生する状況があるためです。
デフォルトでは、ETFRを使用していてアイトラッキングが利用できなくなると、ダイナミック高FFRにフォールバックしますが、このデリゲートを使用してデフォルトのFFRフォールバックをオーバーライドしたり、パフォーマンスの違いを考慮に入れて、場合によってはグラフィックの設定値や解像度を変更したりできます。
ETFR Blueprint state changed

アプリケーションをビルドしてテストする

  • [File (ファイル)] > [Package Project (プロジェクトのパッケージ化)] > [Android] > [Android (ASTC)]の順にクリックし、ビルドしてAPKファイルにパッケージ化します。
ETFR build and test application

ベストプラクティス

次のセクションでは、ETFRをアプリケーションに統合する際のベストプラクティスをいくつか紹介します。

ユーザーの考慮事項

ETFRをアプリケーションに統合する際に留意すべき点がいくつかあります。1つ目は、この機能がMeta Quest Proでのみ利用できることです。アプリケーションがMeta Quest 2用に提供されている場合は、デバイスがサポートしてる場合に限りこの機能を有効にする必要があります。
また、ユーザーがシステム設定からアイトラッキングを無効にしたり、アイトラッキングのアクセス許可のリクエストを受け入れなかったりする可能性もあります。そのような場合、SetFoveatedRenderingMethod(EyeTrackedFoveatedRendering)を呼び出しても、ETFRはオンになりません。
最後の点として、ユーザーが好みに応じてオンとオフを切り替えられるように、アプリケーションの設定にオプションを用意することをおすすめします。
このような理由から、ETFRによってもたらされる高いパフォーマンスをどう活用することにしても、こうした要因に基づいてオフにする必要がある場合があることを理解しておくことが重要です。

GPUの節約から出た余力を活用する

以下に示すように、よりアグレッシブな中心窩マップを使用すると、ETFRでは平均的にすべてのレベルにおいてFFRよりもGPUを節約できます。開発者は、アプリケーションのコンテンツに最適な中心窩レベルを選択することにより、パフォーマンスの節約と視覚上の質の間でバランスの取れた選択をすることができます。また、MSAAやアイテクスチャースケール係数などのほかのサーフェスパラメーターも選ぶことができます。
ETFR extra GPU savings
ETFRによって生まれたGPUパフォーマンスの余力を活用するおすすめの方法の1つは、クリスパー画像とシェイパー画像のアイテクスチャーサイズを引き上げることです。テストアプリケーションの1つにおいて、デフォルトと引き上げたアイテクスチャーサイズの両方でレンダリングされたFFR/ETFRのGPUレンダリング時間の例を紹介します。
ETFR test application stats
例えば、このアプリケーションがFFR-3を使っていた場合、ETFR-2に切り替えて、MSAA2でアイテクスチャー解像度を引き上げると、ほぼ同じGPU時間コストで、よりシャープな画像にすることができます。
ETFRによってもたらされるGPUの節約は、アプリケーションのコンテンツによって異なります。そのため、どの組み合わせが最適かを判断するために、アプリケーションをさまざまな中心窩レベルでプロファイリングし、ターゲットサイズをレンダリングしてください。
また、現在のGPUレンダリング負荷に基づいて自動的に中心窩レベルが調整されるようにするため、ダイナミック中心窩レンダリングをオンにすることをおすすめします。使用可能な最大中心窩レベルは、中心窩レンダリングレベルで指定します。このオプションを有効にする前に、最大中心窩レベルでレンダリング品質を十分にテストする必要があります(例: 周辺視野に過剰な中心窩アーティファクトがないこと)。
ナビゲーションロゴ
日本語
© 2026 Meta