Mobile rendering limitations¶
See also
The general 3D rendering limitations also apply to mobile platforms.
To improve out-of-the-box performance on mobile devices, Redot automatically uses
low-end-friendly settings by default on both Android and iOS. These are configured
by project settings with a .mobile
feature tag suffix.
One of the most notable changes on mobile that will affect 3D projects is that lighting is done per-vertex instead of per-pixel. This improves performance a lot, but can break rendering in some scenes, especially if your meshes aren't sufficiently subdivided for per-vertex lighting to look good. This can be disabled in the Project Settings at a performance cost (see below).
When using GLES2, some custom shaders may break when exporting to Android. This
is caused by a lower shader precision being used by default to improve
performance. You can force high precision on all shader computations by enabling
rendering/gles2/compatibility/enable_high_float.Android
project setting, but
this has a significant performance cost and won't work on all devices.
The following project settings have mobile-specific overrides:
Setting |
Desktop default |
Mobile default |
|
4096 |
2048 |
|
3D |
3D Without Effects |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4096 |
2048 |
|
PCF5 |
Disabled |
GLES3 only: |
2 |
1 |
GLES3 only: |
512 |
128 |
GLES3 only: |
|
|
GLES3 only: |
|
|
See the ProjectSettings class documentation for more information on those setting overrides.
If you're only targeting mobile platforms in your project, consider changing the project settings' values to match the mobile overrides. This way, you'll get a preview that is closer to the mobile appearance when running the project on a desktop platform (as well as within the editor).
Warning
Due to driver bugs, GLES3 support on Android and iOS can be poor, especially on old or low-end devices. Therefore, it is recommended to use the GLES2 renderer when targeting mobile platforms (especially Android).
You can change the rendering backend in the Project Settings (Rendering > Quality > Driver > Driver Name).