Hi All,
We’re looking to create a Virtual Tour experience, with a few similar features (not exactly like them though. We don’t need a lot of what they provide, for example no need for a dollhouse view or floorplan view.
We’re mainly after a similar transition from pano to pano, depth map on the panos so that when the user mouses over a surface the mouse reacts, user clicking on a circle to move to the next pano. Ability to add tags on surfaces.
We know this is possible as we’ve seen a version of this using KRpano that we’re trying to recreate using 3JS.
https://krpano.com/releases/1.21/viewer/krpano.html?xml=examples/depthmap/abu-simbel-tempel-tour/tour.xml&initvars.editmode=true
We’ve used ChatGPT4 to write some of the code and it’s working with displaying the panos but we’re having trouble with the transition. Every time we fix an error it creates a new error. The below is the base features as per ChatGPT.
- 360-Degree Panorama View:
- Utilizes
THREE.CubeTextureLoader
to load cubemap textures, creating an immersive 360-degree view of the environment.
- Depth Maps:
- Incorporates depth maps for each cubemap to enhance the realism of the scene by providing depth-based displacement effects.
- Smooth Transitions:
- Implements smooth transitions between different cubemaps using
TWEEN.js
. The transition is animated by updating thetransitionProgress
uniform in the shader.
- Interactive Hotspots:
- Adds hotspots within the scene that users can click to trigger transitions to different cubemaps. These hotspots are visual indicators that guide users to new areas within the panorama.
- Custom Cursor with Rotation:
- Implements a custom cursor that changes its angle based on the depth map, enhancing the interactive experience. The cursor rotation is updated in real-time based on the normal vector calculated from the depth map.
- User Controls:
- Includes
THREE.OrbitControls
to allow users to look around the panorama. The controls enable panning and rotation but disable zooming to maintain the immersive experience.
- Responsive Design:
- Adjusts the scene and camera aspect ratio dynamically on window resize, ensuring a consistent experience across different screen sizes.
- Error Handling and Debugging:
- Adds shader compilation error logging to assist in debugging and ensuring shaders compile correctly.
- Animation Loop:
- Uses
requestAnimationFrame
for a smooth and continuous rendering loop, updating the scene and handling transitions in real-time.
If anyone is interested in helping please let me know and we can discuss in more detail along with your fee. :