mpetroff / pannellum

Pannellum is a lightweight, free, and open source panorama viewer for the web.
https://pannellum.org/
MIT License
4.23k stars 721 forks source link

Virtual Tour Scene Misalignment with Navigation Arrows. #1218

Closed RRomain14 closed 4 months ago

RRomain14 commented 4 months ago

Hello,

I made a virtual tour using the cubemap approach, which works fine, thanks to your documentation and examples. However, I would like to arrive at a scene looking at the same point the navigation arrow was pointing to.

I have already used targetYaw ("same" and "sameAzimuth" don't make a difference in my case), which makes it better than the classic approach (about 40% more accuracy in my example), but I still encounter a few misses and some "reverse" issues (looking in the opposite direction).

I would like to know if there is something else I can try, or if it is dependent on the scanner position and I need to work around its position more than trying things directly with Pannellum.

Thank you in advance for your help. Have a nice day.

mpetroff commented 4 months ago

Since same and sameAzimuth makes no difference for you, I assume you're not using northOffset / your images don't have a magnetic heading recorded. In this case, using these parameters for targetYaw will only work if your panoramas are all already aligned with each other, e.g., if you used a 360 camera, it had the same relative orientation between all of your images.

There are two solutions to this. The first is to set the northOffset on all of your panoramas to create consistent alignment, after which sameAzimuth should work. The second is to manually set a targetYaw value in degrees for each hot spot.

RRomain14 commented 4 months ago

Hello,

Thank you for your answer. I will try to create an alignment using northOffset, like you said, and if it does not work, I will return to pattern searching, using some of the rotation matrix data to correct the wrong orientations, since it is always a -90/+90 or 180 degrees issue.

Have a nice day.

RRomain14 commented 4 months ago

As an update, and in case it could help someone else, I found the solution with the help of my internship supervisor.

Because of the way the images were taken, I couldn't succeed in forcing an alignment of the panoramas. Therefore, using the data I already had from my hypothesis testing and your recommendation to manually set a targetYaw, I used the rotation matrix of the actual scene and the one of the scene I wanted to go to (only the z-axis for both), as well as the yaw I had already computed for the hotspots, to compute the targetYaw. This worked as intended.

Thank you again for your advice.