So your issue here is that you have modeled the entire level as a single mesh. I applaud your ability to do so, but you really want to break this level up into multiple pieces. There are a number of benefits to doing this, one of which will avoid these visual issues you are experiencing where your normals have been flipped and you have precision issues when the project is deployed to the device.
You will also want to take a look at our mobile content creation guidelines and limitations. I noticed the texture you are using for the mesh is 4k, which is not supported on any mobile platforms at this current time. The max texture resolution supported for mobile platforms is 2048 in either dimension.
I didn’t really make the level. It’s from a mod for Quake 1 called Arcane Dimensions. I simply brought it into Blender, and baked textures on a continuous copy of the mesh, with added lightmap UVs.
I’ll try using ~16 pcs instead of one and see how that goes.
The reason I wanted to do it as one piece is to A. spare myself from lengthy material setup (original level had ~50 pieces and 50 materials), B. reduce number of draw calls to an absolute minimum (since total soft budget is 60 draw calls in the view).
As long as you aren’t making a whole bunch of meshes, and keeping the textures at a reasonable resolution, you should be fine in regards to performance. There are always ways to optimize too, like texture streaming, distance based culling, and scalability.
Does texture streaming work on Android? Isn’t it performance taxing ?
I also see that precomputed visibility is recommended for mobile VR, but there are no examples and no docs about how to setup/use precomputed visibility volumes (there are 2 types of those described in the UE4 docs, but it’s just a brief description).
Texture streaming is supported on Mobile, and is only performance taxing when you exceed the texture pool limit. Precomputed visibility volumes are pretty straight forward when setting up. You basically just want to place it anywhere the player will be able to navigate and see within the scene/level. It will just be a simple box brush where you place the extents around your level where the play will traverse.
Does it need to encompass geometry that will be visible or does the volume needs to be placed only where player will be located and should only accommodate bound inside which player will be moving ?
I can confirm - splitting my level mesh into 20 pcs resulted in having no torn mesh. Apparently some kind of artificial limitation Also, it did not improve fps.