xmar / 360Transformations

67 stars 16 forks source link

Pyramid Projection #9

Open yyakult opened 7 years ago

yyakult commented 7 years ago

Hi, I have read your academic paper and I think it is an excellent work! But I have a few question about the pyramid projection. I think your implementation about this projection (which is shown in your code LayoutPyramidal.hpp and LayoutPyramidal2.hpp) is a little bit different compared with the one proposed by Facebook. Have you tried their approach? Thanks!

xmar commented 7 years ago

Hi, Indeed our implementation is a bit different. Our projection on the pyramid is similar to the projection on the cube. Facebook's projection is a bit different because they try to minimize the distortion next to the front face and maximize it near the top of the pyramid. With our projection it is quite the opposite that happen. We didn't tried yet their approach but if you want to add their implementation in this project or if you want to share some results, feel free to do it. Best regards.

yyakult commented 7 years ago

I intend to implement the pyramid projection and other omnidirectional video representations. Again, thank you for your reply and this excellent project.

qmphobby commented 7 years ago

Hi,I have some confusion about the parameter “m_canomicTopPlan” and "m_interTop" in Pyramid,especially 'top plan'.Can you give me more information? Thanks!

xmar commented 7 years ago

Hi,

In the code, I denote by canonic pyramid the original pyramid without rotation. The base of this pyramid is include inside the plan x=1. The circumscribed sphere is the unit sphere. Each face of the pyramid is tangent to this sphere. The canonic top plan is the plan that contains the top face of the canonic pyramid. In the code, I denote by alpha half the size of the base edge. For instance the top edge of the canonic base is included inside the straight line {x=1; z=alpha}. From that and knowing that the top face is tangent to the unit sphere you can compute the equation of the plan that contains the canonic top face: (1-alpha^2)/(2_alpha) x + z = (1+alpha^2)/(2_alpha) I denote by inter top the intersection between the unit sphere and the canonic top face. You can also compute the coordinate of the intersection and you get what is in the code. The canonic left face, canonic right face and canonic bottom face can be deduced from the canonic top face (with a rotation). Then you can get the pyramid we are interesting in by doing a rotation from the canonic pyramid.

I hope this answer will help you.

qmphobby commented 7 years ago

It’s a great answer for me,thank you very much! In your answer,'Each face of the pyramid is tangent to this sphere' should be inscribed sphere instead of 'circumscribed sphere'?

xmar commented 7 years ago

Ah yes you are right!! Thank you for the correction.