add the sub-topic: Optimizing Unreal Projects for Mobile

This commit is contained in:
Mamadou Babaei
2024-08-16 11:05:57 +02:00
parent e347e6fc7b
commit 9cdd544d61
10 changed files with 150 additions and 1 deletions
+126 -1
View File
@@ -28,7 +28,7 @@ When streaming from a PC to Meta Quest devices, the default refresh rate is set
6. Now, open your Unreal Engine project and navigate to `Project Settings`. Under `Engine > General Settings > Framerate`, you can fine-tune and experiment with the framerate settings to match your project's requirements.
![Meta Quest Link - Framerate settings for the Unreal project](project-settings-framerate.png "Meta Quest Link - Framerate settings for the Unreal project")
![Meta Quest Link - Framerate settings for the Unreal project](project-rendering-settings-framerate.png "Meta Quest Link - Framerate settings for the Unreal project")
## Game User Settings and Engine Scalability Settings
@@ -82,3 +82,128 @@ The following Blueprint code from the [SGBasicDemo-OpenXR](https://dev.azure.com
> the Content Browser for the SGBasicDemo-OpenXR example scene.
![Game User Settings and Engine Scalability Settings - SGBasicDemo-OpenXR UMG widget code for calculating the framerate and showing the current FPS and Engine Scalability Settings](sgbasicdemo-openxr-fps-engine-scalability-settings-umg-widget.png "Game User Settings and Engine Scalability Settings - SGBasicDemo-OpenXR UMG widget code for calculating the framerate and showing the current FPS and Engine Scalability Settings")
## Optimizing Unreal Projects for Mobile
We have the [SGBasicDemo-OpenXR](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo-OpenXR) project, which has been optimized for mobile. You can explore the project configuration by reviewing the settings inside the `Config` folder and compare them with your own project settings. In addition, here are some crucial guidelines and settings that you may want to adjust for further optimization:
### General Rendering Settings
**Forward Shading**: Enable Forward Shading for better performance. Its more efficient on mobile platforms.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Forward Renderer](project-rendering-settings-forward-renderer.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Forward Renderer")
![Optimizing Unreal Projects for Mobile - Rendering Settings - Mobile](project-rendering-settings-mobile.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Mobile")
**Mobile HDR**: Disable this setting. Mobile HDR can significantly affect performance, especially on lower-end devices.
![Optimizing Unreal Projects for Mobile - Rendering Settings - VR](project-rendering-settings-vr.png "Optimizing Unreal Projects for Mobile - Rendering Settings - VR")
**Instanced Stereo**: Enable this setting. It is a rendering technique used in Unreal Engine primarily for virtual reality (VR) applications. Its main purpose is to optimize the rendering process when creating VR experiences by reducing the workload associated with rendering two slightly different images for each eye.
![Optimizing Unreal Projects for Mobile - Rendering Settings - VR](project-rendering-settings-vr.png "Optimizing Unreal Projects for Mobile - Rendering Settings - VR")
**Mobile Multi-View**: Enable this setting. It is a rendering feature in Unreal Engine designed to optimize the performance of Virtual Reality (VR) applications on mobile devices, particularly when using VR platforms like Google Daydream or Samsung Gear VR. It is similar in concept to Instanced Stereo, but specifically optimized for mobile hardware.
![Optimizing Unreal Projects for Mobile - Rendering Settings - VR](project-rendering-settings-vr.png "Optimizing Unreal Projects for Mobile - Rendering Settings - VR")
**Mobile Anti-Aliasing Method**: Use `FXAA (Fast Approximate Anti-Aliasing)` or `MSAA (Multisample Anti-Aliasing)`. `MSAA` is often preferred for mobile as it gives better visual quality without a huge performance hit.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Mobile](project-rendering-settings-mobile.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Mobile")
**Reflection Capture Resolution**: Reduce this value (e.g., 128 or 256) to decrease the memory usage.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Reflections](project-rendering-settings-reflections.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Reflections")
### Texture Settings
**Enable virtual texture support**: Disable this setting.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Virtual Textures](project-rendering-settings-virtual-textures.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Virtual Textures")
**Texture Streaming**: Enable texture streaming to ensure textures load progressively, which helps in reducing memory usage.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Textures](project-rendering-settings-textures.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Textures")
**Texture Quality**: Lower the overall texture quality to Medium or Low depending on the target device capabilities.
**Texture Compression**: Use ASTC compression for Android to ensure the textures are optimized for mobile devices.
### Lighting Settings
**Use Static Lighting**: Prefer static lighting over dynamic lighting for better performance.
**Lightmap Resolution**: Use a lower lightmap resolution (e.g., 32 or 64) for mobile to reduce memory usage.
**Dynamic Shadows**: Disable or minimize the use of dynamic shadows. If required, use CSM (Cascaded Shadow Maps) with low resolution and distance.
**Distance Field Shadows/Ambient Occlusion**: Disable these features as they are costly on mobile platforms.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Default Settings](project-rendering-settings-default-settings.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Default Settings")
### Post-Processing Settings
**Bloom, Lens Flares, and Auto Exposure**: Minimize or disable these effects as they can be performance-intensive.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Default Settings](project-rendering-settings-default-settings.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Default Settings")
**Screen Space Reflections**: Disable this setting as it is costly in terms of performance on mobile devices.
**Motion Blur**: Disable this feature to save on processing power.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Default Settings](project-rendering-settings-default-settings.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Default Settings")
### Materials and Shaders
**Material Complexity**: Use simple materials with few instructions and limit the number of textures and shader nodes.
**Specular Highlights**: Consider reducing or disabling specular highlights on materials to save on performance.
**LOD (Level of Detail) Models**: Ensure that LODs are set up correctly for all models, with appropriate reduction in polygon count for distant objects.
### Level of Detail (LOD) Settings
**Mesh LODs**: Configure LODs for all meshes to reduce polygon count at distances.
**Screen Size**: Adjust screen size settings for LODs to ensure they switch at appropriate distances for mobile screens.
### Engine Scalability Settings
**Resolution Scale**: Lower the resolution scale (e.g., 70% or 80%) to improve performance while maintaining visual quality.
**View Distance**: Set to Medium or Low to reduce the amount of detail rendered at long distances.
**Shadows**: Set to Low or Off for better performance.
**Textures**: Set to Medium or Low depending on the devices capabilities.
**Effects**: Set to Low to reduce the complexity of visual effects.
> [!NOTE]
> See
> [Game User Settings and Engine Scalability Settings](#game-user-settings-and-engine-scalability-settings)
> for more details.
### Physics and Collision
**Physics Simulation**: Limit the use of physics simulation where possible, as it can be expensive on mobile devices.
**Collision Complexity**: Use simple collision meshes instead of complex ones to improve performance.
### Audio Settings
**Sample Rate**: Lower the sample rate to reduce memory usage and processing load.
**Number of Audio Channels**: Limit the number of audio channels used in the project to reduce CPU usage.
### Rendering API
**Vulkan vs OpenGL ES**: Test your project with both Vulkan and OpenGL ES to see which provides better performance on your target devices. Vulkan often offers better performance but may not be supported on all devices.
### Culling
**Frustum Culling**: Ensure that frustum culling is enabled to avoid rendering objects outside of the cameras view.
**Occlusion Culling**: Enable occlusion culling to avoid rendering objects that are not visible due to being blocked by other objects.
![Optimizing Unreal Projects for Mobile - Rendering Settings - Culling](project-rendering-settings-culling.png "Optimizing Unreal Projects for Mobile - Rendering Settings - Culling")
Binary file not shown.