Optimising the final build
During development I bumped into performance limits quite a lot. The main goal was to experiment with this technology and see whats possible, but for the jury I did want to make sure that I could display my vision, and hopefully with more than 10 frames a second.
I developed using my Valve Index, with roomscale VR. This works fine if you have a desktop computer that can render 240 frames per second (120 per eye), but I found out during testing that the Oculus Quest 1 is a lot less capable, hardware wise. I figured out that shaders were the main issue, so I decided to create a light version of the site, specifially for Oculus and lower powered devices like mobile phones.
Things I changed #
- First of all I removed the floor shader. This was really intensive so I took a still of the shader and used that as the texture for the floor.
- Secondly, the starry night skybox was also removed. This was a shader too and while less intensive than the floor shader, it still caused major performance issues.
- And finally the glass floor. This was a physical material that emulated glass and light passing through it.
By removing these three elements and replacing then with static textures I was able to boost the performance of the app so much so that it runs perfectly fine on the Oculus Quest 1 without sacrificing the visual aestetics too much.