THREEjs Virtual Tours Engine

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.

Screen shots:

Office

Lobby

Old Eco City

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.

360 photographs using Nikkon 4k camera

360 photos virtual tours

Download source code

5 Likes

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.

2 Likes

thanks so much, u just give me the best solution, load a low res then load the high res when its loaded, cheers :slight_smile:

How did you achieve rendering 360 image to scene that can be controlled and creating hotspot to render next image?

1 Like

I used 360 photos on a three.scene.background, there is a sample in threejs.org i tweaked and add animated gif on a plane

Can I get you GitHub repo or access

2 Likes

This is the THREEjs Tours Github, few bugs, errors and improvements needs to be address.

#ThreejsTours DevLog

Texture cascading in the memory bugs are fixed by adding garbage collection function to remove far locations that are not in immediate views.

Accounts can be created to upload your 360 photos, you just need to specify the camera positions.

Demo

You can create your account and upload your 360 photos and create your virtual tours

Sample: Hotel Lobby

You can now upload your 360 photos

Demo School Lobby

ThreeJs Virtual Tours Engine Updated to r155

The virtual tours can be wrap inside any website template for integration

Demo

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.

Al Wahbah Crater Site photo

Visit Al Wahbah Crater

1 Like

Updated threejs r172, the imafe swithing is much smoother.

  1. Hotel Lobby

  1. Old Residence

  1. Condo Flat

  1. Private Residence

Updated THREEjs Virtual Tours r157

Live Demo

Hi

Is it available now?

1 Like

what is available now?

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.

Is this what you mean, virtual experience is what you are looking for where you can walk around and drive with WASD

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.

1 Like