Creating a more aesthetic scene for the Gear VR

Hi all,

I’m currently developing a game for the Gear VR. The game is a virtual bird walk that has the player walking around a forest environment identifying sounds. As such I created a terrain with grass texture and added 30 low poly (ca 114 tris) trees which I got here. A fence, which I got from the same source as the trees, consisting of about 100 objects each 152 tris encompasses everything. Following suggestions made in this thread, all these objects are marked as static and the scene is baked with the settings found in this post (Disregard the post’s issue which has since been resolved). The problem I’m facing is that this seems to be the limit of what I can add to the scene that the device can handle. Trying to add grass whether as 3D grass blades (static and baked) 2 tris each or as terrain grass texture (which actually doesn’t appear after baking when app is deployed) causes massive frame rate dropping.

Without grass:

With grass:

From above with clouds:

I also have occlusion culling baked.

I’m extremely unsatisfied with the way it currently looks. Will I have to settle for this since it’s for the Gear VR or can more be done.

Hi
It will be easier to help if you post an screenshot of the profiler, because the stats by itself are not very descriptive on what’s the change.
GearVR + Unity can handle FAR more than 13K polys in 39 batches, and that shows in that the render thread time is almost unaffected between both screenshots.

However, the CPU time almost doubled. That suggest that you have several scripts running that are taking a longer. By any chance, do your grass clusters have a billboard script attached. If that’s the case, it could be that calling the Update for each of them individually, is taking a bit of time. Instead, you could have just one script that updates them all? Or even better: use a billboard shader.

Also, are each of the grass elements running animations?
For sure, running the profiler will tell you exactly where are you expending your frametime. and then you can optimize based on that.

Would it suffice to run the profiler while the game is running from the editor or would it be better to have the game run in the Gear VR and wirelessly monitor with the profiler? And to answer your questions:
No there are no animations on the grass elements. They aren’t billboards either. Also, those snapshots were both taken while the game wasn’t running. It seems highlighting different objects in my scene even while the game isn’t running changes CPU accordingly.

I recently realized that the sheer number of objects in my scene such as flowers, ferns, etc., which were added to give a more natural look, was taking a toll on memory and causing frame drops. Combining the meshes of these individual objects and thus reducing the number of objects needed definitely helped. I am still struggling, however, with framerates averaging 55 fps. Here’s my latest log file:

3151493–239538–log2.txt (998 KB)