開発

アイトラッキング中心窩レンダリング

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

ETFRのしくみ

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

前提条件

ETFRを開始する前に、使用するMeta QuestオペレーティングシステムとUnrealエンジン統合がいずれも最新バージョンであることを確認してください。アプリのETFRを有効にするための要件は次のとおりです。
  • アイトラッキングに対応したMeta Questヘッドセット(現在はMeta Quest Pro)
  • Unrealエンジン5.x(Unrealエンジン5.6推奨)のOculus-VR fork版(アイトラッキング中心窩レンダリングに必須)

プロジェクトの設定

  1. プロジェクト設定ガイドに従って、Unrealエンジンエディターをビルドして実行します。
  2. [設定] > [プロジェクト設定]の順にクリックします。
  3. [Platform (プラットフォーム)] > [Android] > [Build (ビルド)]で、[Support Vulkan (Vulkanをサポート)]が選択されており、[Support OpenGL ES3.1 (OpenGL ES3.1をサポート)]が選択されていないことを確認します。これは、ETFRがVulkan専用の機能であるためです。
  4. [Plugins (プラグイン)] > [Meta XR] > [General (全般)] > [XR API]で、[Meta XR with OVRPlugin (OVRPluginを使用するMeta XR)]が選択されていることを確認します。ETFRはこのバックエンドでのみ使用できます。このオプションのツールチップでは、「Legacy (レガシー)」統合として説明されていますが、OVRPluginバックエンドはアイトラッキング中心窩レンダリングに必須であり、この用途では引き続き完全にサポートされています。推奨されている[Epic Native OpenXR (EpicネイティブOpenXR)]バックエンドは、現在アイトラッキング中心窩レンダリングに対応していません。
  5. [Plugins (プラグイン)] > [Meta XR] > [Mobile (モバイル)] > [Foveated Rendering (中心窩レンダリング)]で、[Support Eye Tracked Foveated Rendering (アイトラッキング中心窩レンダリングをサポート)]が選択されていることを確認します。こうすると、現在のUnrealプロジェクトでETFRサポートが有効になり、グローバル設定、Blueprints、C++インターフェースでコントロールできるようになります。

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

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

BlueprintsでETFRを有効にする

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

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

  • ツールバードロップダウンで、[Platforms (プラットフォーム)] > [Android] > [Package Project (パッケージプロジェクト)]を選択します。[Android (ASTC)]が[Android]サブメニューから選択されていることを確認します。
ETFR build and test application

ベストプラクティス

ユーザーの考慮事項

ETFRをアプリケーションに統合する際に留意すべき点がいくつかあります。ETFRにはアイトラッキングハードウェアが必要であり、現在これに対応しているのはMeta Quest Proのみです。Meta Quest 2、Meta Quest 3、Meta Quest 3Sにはアイトラッキングハードウェアが搭載されておらず、ETFRには対応していません。デバイス名をハードコーディングするのではなく、Get Eye Tracked Foveated Rendering Supported Blueprint関数を使用して、実行時にデバイスのサポート状況を確認してください。
また、ユーザーがシステム設定からアイトラッキングを無効にしたり、アイトラッキングのアクセス許可のリクエストを受け入れなかったりする可能性もあります。そのような場合、SetFoveatedRenderingMethod(EOculusXRFoveatedRenderingMethod::EyeTrackedFoveatedRendering)を呼び出しても、ETFRはオンになりません。
最後の点として、ユーザーが任意にオンとオフを切り替えられるように、アプリケーションの設定にオプションを用意することをおすすめします。
ETFRによって得られる追加のGPU余力を利用して有効にした拡張機能(解像度の向上やMSAAなど)は、ハードウェアの非搭載、アクセス許可の拒否、またはユーザーの設定によりETFRが利用できなくなった場合でも、適切にフォールバックするようにしてください。

節約できたGPUを活用する

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