Hey everyone,
I am in the last steps of a project and currently attempting to optimize for all platforms but have encountered a performance issue with some android devices (primarily nexus 6). I am hoping someone may be able to provide me with some tips to help me find ways to perform extreme optimization.
Description of the program:
Spawn 100 actors on screen
Each actor is an instance of the of the same class, but has some randomized some variable values. The actor contains 2 static meshes, one which is 44 verts with 2 material elements and the other has just 4 verts with a single element. The meshes are less than 100x100 in size. All materials are a single color with full roughness and no texture. Each actor also has a UMG widget, however normally only 10-15 will be active at any given time. These actors are movable. The actor also contains a collision box which is set to “UI”
The 100 number is an extremely rare edge case only for cheeky end users, but I would still like to try to support it if possible.
When this program is ran on my PC I stay at >=120 fps at all times, tablets hover around 60, and most modern phones stay above 30, with exception to some android phones (including nexus 6) which hangs at an abysmal 10-20 fps even if all actors are stationary and performing no tasks.
I have performed many steps to try to see if I could get the FPS to >=30 on the nexus 6 and was hoping some one could criticize my attempts or recommend potential solutions.
What I have done so far:
- Disabled HDR
- Set mobile scale to .5
- Set all materials to opaque, full roughness, and removed all textures (materials use a single const3 for color)
- Removed all collision/overlap checks for everything (including umg widget) with exception of the single collision box in the actor which has a collision of UI
- disabled all post processing
- static lighting with a single static point light source for the entire project
- Disabled all shadows
- Disabled everything in Rendering section of project settings with exception to the features that advertise performance increase.
I have tried utilizing several difference version of UE4 but the FPS difference between them has been at most 4 fps.
I am rather new to dealing with 3d rendering and materials, but are there any potential toggles I can switch to increase performance any further? Since the project has 0 textures would there be any potential settings I could activate that normally would not be available to a project with textures? Are there any obvious steps that I missed?
I would appreciate any assistance you can provide.
I thank you for your time!