高性能な Android モバイル デバイスでは、Unreal Engine 5.4 以降のバージョンで Lumen の実験的サポートが利用可能です。このページでは次の項目について説明します。
-
モバイル デバイスおよびレンダラに関する Lumen の互換性情報。
-
モバイル デバイス向けに Lumen を有効にする手順。
-
制限事項および既知の問題。
互換性
Lumen は、デスクトップ レンダラを実行する Android Vulkan Shader Model 5 (SM5) と互換性のある高性能デバイスで利用可能です。ハードウェア レイ トレーシングの有りと無しの両方がサポートされます。
Android 向けデスクトップ レンダラは、新しいプロジェクトを作成する際にはデフォルトで有効になっていません。しかし、デスクトップ レンダラを有効にした後、プロジェクトに対して Lumen を有効にすることで、次のデバイス プロファイルを使用するデバイスで利用可能になります。
Android_Vulkan_SM5Android_Adreno_Vulkan_SM5Android_Mali_Vulkan_SM5Android_Xclipse_Vulkan_SM5
現在、必要な Vulkan SM5 デバイス プロファイルを次のデバイスが使用しています。
- Samsung Xclipse (9xx)
- Adreno (7xx)
- Mali (G7xx)
Lumen は現在、iOS/tvOS/iPadOS デバイスでは動作しません。
モバイル デバイスで Lumen を有効にする方法
モバイル デバイスで Lumen を有効にするには、次のステップに従ってください。
-
モバイル向けにデスクトップ レンダラと SM5 のサポートを有効にします。詳細な手順については、「機能レベルとレンダリング モード」の「デスクトップ レンダラ」セクションを参照してください。
-
デスクトップ アプリケーションと同様に Lumen を有効にします。詳細な手順については、「Lumen グローバル イルミネーション」を参照してください。
これにより Android_Vulkan_SM5 デバイス プロファイルが有効になり、上記の「互換性」セクションに記載のデバイス タイプに自動的に適用されます。お使いのデバイスがこれらのプロファイルのいずれかに該当する場合、Lumen を有効にした後は追加のステップを行う必要はありません。通常は有効にしていないデバイスやデバイス ファミリーにサポートを追加する必要がある場合は、以下のセクションを参照してください。
既存の Lumen 対応プロファイルを新しいデバイスに適用する
デスクトップ レンダラと Lumen をサポートする既存のプロファイルを使用するには、DeviceProfiles.ini ファイルを開き、選択した SM5 プロファイルを条件に一致するデバイスが使用するように指定する MatchProfile 行を追加します。既存の SM5 プロファイルの一覧については、上記の「互換性」セクションを参照してください。
以下の例は、Adreno 7xx デバイスに Android_Adreno_Vulkan_SM5 プロファイルを適用する MatchProfile 行です。
Engine/Config/BaseDeviceProfiles.ini
; Enable SM5 on Adreno 7xx when SM5 is enabled
+MatchProfile=(Profile="Android_Adreno_Vulkan_SM5",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 7[0-9][0-9]"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]+).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="10"),(SourceType=SRC_SM5Available,CompareType=CMP_Equal,MatchString="true")))
デバイス プロファイルの一致に関する詳細は、「Android デバイス プロファイルをカスタマイズする」をご覧ください。
新しい Lumen 対応デバイス プロファイルの作成
DeviceProfiles.ini で Lumen をサポートする新しいデバイス プロファイルを作成できます。
Android では、Vulkan と SM5 の両方のサポートを有効にする必要があります。デバイス プロファイルを最初から作成することもできますが、新しいプロファイルの BaseProfileName として設定することで、Android_Vulkan_SM5 デバイス プロファイルを拡張することもできます。
以下は Android_Vulkan_SM5 デバイス プロファイルです。
Engine/Config/BaseDeviceProfiles.ini
[Android_Vulkan_SM5 DeviceProfile]
DeviceType=Android
BaseProfileName=Android
+CVars=sg.ViewDistanceQuality=2
+CVars=sg.AntiAliasingQuality=1
+CVars=sg.ShadowQuality=2
+CVars=sg.GlobalIlluminationQuality=2
+CVars=sg.ReflectionQuality=2
+CVars=sg.PostProcessQuality=2
+CVars=sg.TextureQuality=2
+CVars=sg.EffectsQuality=2
+CVars=sg.FoliageQuality=2
+CVars=sg.ShadingQuality=2
+CVars=sg.LandscapeQuality=2
+CVars=r.BloomQuality=2
+CVars=r.LightShaftQuality=1
; Shadows
+CVars=r.Shadow.MaxResolution=2048
+CVars=r.Shadow.MaxCSMResolution=2048
+CVars=r.Shadow.WholeSceneShadowCacheMb=40
+CVars=r.Shadow.CachedShadowsCastFromMovablePrimitives=0
+CVars=r.Shadow.MaxNumPointShadowCacheUpdatesPerFrame=1
+CVars=r.Shadow.MaxNumSpotShadowCacheUpdatesPerFrame=1
+CVars=r.Shadow.DistanceScale=1.0
+CVars=r.Shadow.CSM.MaxCascades=2
+CVars=r.ShadowQuality=2
+CVars=r.Shadow.CSMShadowDistanceFadeoutMultiplier=2.5
+CVars=r.SSS.Quality=0
+CVars=r.SSS.Scale=0
+CVars=r.SSR.Quality=0
+CVars=r.Android.DisableVulkanSM5Support=0
+CVars=r.Android.DisableVulkanSupport=0
+CVars=r.DistanceFields=1
+CVars=r.Vulkan.RayTracing.AllowCompaction=0
+CVars=r.Vulkan.RayTracing.TLASPreferFastTraceTLAS=0
+CVars=r.RayTracing.RequireSM6=0
このプロファイルの最も重要なパラメータは次のとおりです。
-
r.Android.DisableVulkanSupport:この設定をオフにすると、Vulkan のサポートが有効になります。 -
r.Android.DisableVulkanSM5Support:この設定をオフにすると、Vulkan SM5 デバイス プロファイルが有効になります。 -
r.DistanceFields:Lumen のソフトウェア レイ トレーシングに必要な Distance Field Shadows を有効にします。 -
r.RayTracing.RequireSM6:この設定をオフにすると、Lumen のハードウェア レイ トレーシングに必要な非 SM6 デバイスでのレイ トレーシングが可能になります。
デバイス プロファイルの設定方法に関する詳細は、「Android デバイス プロファイルをカスタマイズする」を参照してください。
制限事項および既知の問題
モバイル デバイス上のデスクトップ レンダラは、モバイルのフォワードまたはディファード レンダリングと比較して、パフォーマンス コストが大幅にかかります。Lumen も使用すると、パフォーマンス コストがさらに増します。このサポートは実験的なため、それを用いたプロジェクトのシッピングはまだお勧めしませんが、プロジェクトでテストしてプロファイリングを行いたいという場合は、フィードバックをご提供いただければ有難く存じます。