Coming from a VFX background I am used to not really worrying about poly count. Scenes in the millions are not unheard of. However, since mobile VR/MR is still in its infancy the hardware that runs it isn't as powerful as a desktop graphics card and has significant restrictions when it comes to poly count and texture memory. I am starting to wrap my head around it and have been trying different workflows to see which is the best method. This workflow is obviously going to change but for now this is how I've been approaching it. I get my Oculus Quest tomorrow so I will be extensively testing whether this works or not.
Low poly modeling: I read somewhere that 50,000 polys for a level is a good limit for VR scenes on a mobile processor. I have laid out the FPS VR game to be effectively 5 rooms leaving me with about 10,000 polys per room. I have no idea how much texture space I should allocate so I am sticking with as few 2048 x 2048 textures as possible.
I am used to modeling in SubD, which is modeling with a low poly cage and then letting the software smooth it by subdividing it into smaller parts at render time. This requires the mesh to be all in quads and to have a very clean topology. This is great for taking into a program like Zbrush and adding fine detail but requires a lot of polygons.
This is gun from Halo that I modeled for a project a few years ago.
"Low Poly" Cage = 20,456 polygons
After Smoothing = 325,072 polygons
Obviously this amount of polygons will not work. In my research on low poly modeling I came across an article from the Art Director on Star Citizen and how they impliment modeling.
Basically what they do at Imperium Games is the chamfer (bevel) almost all edges once and then add only one smoothing group. Instead of actually subdividing the mesh like in a SubD modeling method, you let the program smooth the normals. If you don't bevel the edges
the software will try to smooth two 90 degree faces along a shared edge. If you add a bevel to the edge the faces are smooth. This practice can be taken further by utilizing boolean shapes to subtract out or add complex shapes. If the boolean is added to a flat surface then there will be
no distortion (middle cube with sphere taken out on top). If you however take out a complex geometry on a non flat surface you get really messed up smoothing results.