Hello,
I’m currently working on a mobile game (Android only) where the player can control a drone in a tunnel but I’m facing performance issues mainly due to lighting.
About the drone:
- The drone gameobject is a rigidbody which contains the main camera, three spot lights and a sphere (see attached screenshot).
- The three spot lights are a prequisites as the goal is to reproduce the features of a real drone.
- The center light is turned off by default.
About the environment:
- The tunnel walls materials use built-in Mobile/Bumped diffuse shader (see attached screenshot).
- On the demo scene, I have around 1k verts and tris.
- No global directional light, no shadows.
- Post processing volume but disabled by default
About project settings:
- The project use default render pipeline.
- Use the OpenGLES3 library, dynamic batching, static batching, incremental GC…
- The Unity project is build as a library and included in an Android native app.
- The game will essentialy run on Samsung Galaxy Tab Active2.
- Editor version: 2019.4.36f
Currently the game is running around 16-18 FPS.
I found out that, when the lights are turned off, FPS comes close to 30 FPS, which is the expected framerate.
The realtime lights are mandatory as they are set on a moving object. The “diffuse” render is important too, as the lights are in a specific angles, only to light up specific zones, and there is features to turn off each of those lights (I tried vertex lights but it does not produce a good result).
I tried to increase performances by tuning lights settings and player settings, also combining meshes, using URP, per vertex lights… and didn’t get anything valuable yet.
I know that realtime lighting costs a lot, but is there any low-cost alternative on mobile?
Thanks a lot.