"Torn" static mesh on Gear VR with GLES 2

I have a mesh of 45k tris (or something around that number). One surface, one material, one texture.

In the Editor it shows fine with GLES2 preview mode:

http://s17.postimg.org/5pcvip166/gles2_for_gearvr_editor1.jpg
http://s17.postimg.org/ok8m9417y/gles2_for_gearvr_editor2.jpg

However, on the device the mesh has holes/artifacts:

http://s8.postimg.org/blkx1iwhg/Screenshot_2016_03_15_21_08_17.jpg
http://s8.postimg.org/iijorsi5w/Screenshot_2016_03_15_21_08_28.jpg
http://s8.postimg.org/tscemqn78/Screenshot_2016_03_15_21_08_45.jpg
http://s8.postimg.org/osad11s6s/Screenshot_2016_03_15_21_08_52.jpg

Why is this happening ?

Hello ,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a detailed list of steps to reproduce this issue on our end?
  3. If not, could you provide the project and/or asset that you are using when you experience this issue?

I’d have to try with scratch project. Meanwhile here is the project itself: Google Drive: Sign-in

Any luck loading my project ?

Hello ,

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.

Content Creation for Mobile

https://docs.unrealengine.com/latest/INT/Platforms/Mobile/Content/index.html

Texture Guidelines for Mobile

Let me know if you have further questions or need additional assistance.

Thank you,

Oh, no wonder… Thanks for looking into this.

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 ?

Encompass it in areas where the geometry will be constantly visible to the player and where the player is able to navigate.

I can confirm - splitting my level mesh into 20 pcs resulted in having no torn mesh. Apparently some kind of artificial limitation :confused: Also, it did not improve fps.