Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fisheye render (like Ricoh Theta app) #51

Closed
wujekbogdan opened this issue Jun 1, 2016 · 7 comments
Closed

Fisheye render (like Ricoh Theta app) #51

wujekbogdan opened this issue Jun 1, 2016 · 7 comments
Labels
Milestone

Comments

@wujekbogdan
Copy link

I use a Ricoh Theta device to take 360 pictures. They have a dedicated tool to display the pictures taken with their device. But the tool is very limited. The photos have to be hosted on the Ricoh servers and can be displayed only in an iframe. There's no way to customise it or to get rid of their branding. So I decided to create my own tool built on top of Photo Sphere Viewer.

I've noticed that Photo Sphere displays the panoramas in a different way than Ricoh Theta tool. I've created 2 samples:

As you can see the panorama displayed by Photo Sphere is distorted on the edges in a different way than the panorama displayed by the Ricoh application. Photo Sphere stretches the image on the edges when the Ricoh app "squeezes" the edges. The more you zoom out, the more noticeable it is.

I suppose that they use a different algorithm. Is there any chance to implement such an algorithm in Photo Sphere? Is it just a matter of changing some parameters or is it a bigger issue that requires a lot of effort?

@wujekbogdan wujekbogdan changed the title [question] The difference between Ricoh Theta adn Photo Sphere algorithm [question] The difference between the Ricoh Theta and the Photo Sphere algorithm Jun 1, 2016
@mistic100
Copy link
Owner

It will basically require to totally replace the renderer (based on ThreeJS perspective projection).

I also use photo from the Ricoh Theta, and I don't like at all their viewer, what the point if this extreme deformation ?

@wujekbogdan
Copy link
Author

wujekbogdan commented Jun 1, 2016

I also use photo from the Ricoh Theta, and I don't like at all their viewer, what the point if this extreme deformation ?

Both solutions distort the image, but each does it in a different way. The biggest disadvantage of the ThreeJS perspective projection is that the edges are stretched so that human faces look terrible on the edges.

IMO Ricoh solution is better for indoor panoramas, Photo Sphere algorithm works better for landscapes.

It will basically require to totally replace the renderer (based on ThreeJS perspective projection).

So it sounds like a big deal, not just changing the parameters.

@mistic100
Copy link
Owner

Correction of what I said : it would require to replace the camera used, and only the camera, everything else is fine. If you know an implementation of THREE.Camera that achieve this display, I'll be pleased to integrate it.

@mistic100
Copy link
Owner

I found this example http://threejs.org/examples/canvas_geometry_panorama_fisheye.html
The behaviour with extreme FOV is not the same but otherwise it's very similar.

I'll investigate when I get time.

@wujekbogdan
Copy link
Author

Thanks for taking your time to investigate this issue! I really appreciate it.

mistic100 added a commit that referenced this issue Jun 7, 2016
@mistic100
Copy link
Owner

Finally it was only a mater of configuration. You can enable it with the new "fisheye" option.
Unfortunately it's absolutely not compatible with the markers (for now, I guess all computations must be redone with this new parameter).

@wujekbogdan
Copy link
Author

Awesome! Thanks.

@mistic100 mistic100 changed the title [question] The difference between the Ricoh Theta and the Photo Sphere algorithm Fisheye render (like Ricoh Theta app) Jun 10, 2016
@mistic100 mistic100 added this to the 3.2.1 milestone Jun 10, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants