This is a THREEjs Virtual Tours Engine that uses scene.background to switch equirectangular image by fading out the THREEjs render canvas to white so that loading of the next image is not seen, when the texture loader THREE.TextureLoader() completes the THREEjs render canvas is then fade in to show the scene rendering.
This project uses orbit control THREE.OrbitControls to look around and animated gif textured on a plane geometry mesh to move from location to the next.
THREEjs Virtual Tours using 360 photos, the images are 4k and photoshoped to doubled the size to 8k.
Anyone can create your account and upload your 360 photos here, to create the tours you need to specify the camera positions and orientation, the size of the marker.
You need to make the transition seamless and instant to have appeal. Those white whole-screen-flashes and lags are annoying.
In the first case (real life env) pre-loading a bunch of nearby hotspots at lower-res to make the transition instant, and load the high-res version after the user has clicked to one spot would be a better user-experience.
In the second case (virtual env), you don’t need 360 textures, you can run it in 3D if you optimize enough the code eg using instances, etc.
Old Eco City Mars City, Al Wahbah Crater, KSA - Development Plan for space exploration training site for the future space colonies of mars and asteroid mining operations.
Just a personal preference. I tried to view the crater and found the method of navigation maddening.
I prefer a interface that allows you to walk (or, even better, to float) to places using your mouse. Some people like the good old WASD keys.
But in that demo you had to click on a series of dots. I gave up after just a few. Life is too short, even though your picture of crater looked interesting. It looked like the Meteor Crater in Arizona which I visited while a child and flew over in a light plane many decades later.
Fortunately, I know that you know how to create walking characters. So if you ever have the time, I would suggest adding that option.
It could be 3rd person like that, where you follow an animated person. Or first person, like this example.
My ideal control setup would be a variation of that example, where you use the mousewheel to set forwards and backwards speed and use the mouse movement to control rotation. You could use the same setup for a vehicle, where you use the mousewheel to adjust acceleration or deceleration and the mouse motion for pitch and bank. You could use the left/right mouse buttons control strafing (i.e. sideways or lateral motion).
My preferred WASD setup would be one where those keys control rotation and you use another group of keys on the right side (e.g. the arrow keys) to control acceleration and strafing. Or you could flip that setup and have the arrow keys control rotation and the WASD keys control acceleration.
The reason I prefer the mouse is because you can have all those controls in a single place and because the mouse and mousewheel provide variable inputs.