I’m currently working on a VR (/XR) project that I’d like to seamlessly jump between different scenes. That is - at the press of a button, a user will be able to transport from one environment to another and stay in VR the whole time. They won’t need to return to the webpage in between. The most important part is that the transition is seamless.
Without VR, this can be done pretty easily by having two scenes share the same engine/canvas, then only rendering the scene the user has selected in the runRenderLoop. However, this configuration doesn’t work in XR. When the experience is launched from an XR device, any command that would trigger swapping between the scenes on the browser doesn’t change the scene that the user is in. My guess is that XR management is tied to a scene rather than some global/static object, and a scene in XR is viewed/rendered/operated independently from a scene on a canvas.
Is there any way to implement the seamless scene swapping in XR?
I’ve considered the naïve solution of loading in all of the models/textures/functionality into one scene, then splitting them up into separate “environments” that are to distant from each other for a user to see. Currently my project is finished and the environments are split into several scenes - if converting it to this solution is the best way to implement seamless XR environment swapping - I’d appreciate any tips that would generally help performance. At the moment my project simultaneously loads all scenes with meshes, then loads textures when a user visits those scenes, and if I switch to loading everything into one scene, I’d like to avoid a noticeable difference in performance.