phileday / whirligig-old-issues

Whirligig Media Player bug tracking
0 stars 0 forks source link

Feature request: elliptic projection mode #90

Open cheater opened 4 years ago

cheater commented 4 years ago

This is actually an improvement to barrel mode. It adds one slider. Here's what it does:

Sometimes, in barrel mode, objects that are right in the center of the view are way too big. Things that are above or below or to the sides are fine, just the ones in the center are too big. It's kind of weird. Turns out, it's a different projection. It's not a barrel (aka cylinder), it's an "elliptic paraboloid"

Look at this: Parabolic surfaces: https://imgur.com/a/4wsIMZR Barrel mode is the one in the middle. For each eye, we get one of those surfaces. What we need is the one on the left, as a separate projection. In fact, I've noticed it's actually quite common.

Notice that in the middle one (called a parabolic cylinder), everything is roughly the same distance from the eye, whereas in the left one (called a elliptic paraboloid), the stuff in the middle is a bit further from the eye than the rest, because there's a "dip" there.

If you look at the middle one, it's described by a parabola (going front to back) and a straight line (going left to right). If you look at the left one, it's two parabolas. But if you make the parabola that goes left to right very flat, the surface is going to be almost like barrel. That's why it's simple to confuse them - you think you're watching a video made for barrel projection, but it's not, it's actually for elliptic paraboloid projection. However, even if this parabola is going to be very flat, objects that are in the middle are still going to be in a "dip" there.

So I would suggest enhancing our current barrel projection to go from a completely straight line (slider=0), to a parabola (slider=1.00). I guess you can add a new slider to the barrel mode, and then that will be good for both projections: the barrel mode and the elliptic paraboloid mode.

However, I also have a feeling what we want isn't an actual parabola, it's the arc of a circle, so let's use a circle arc actually. So in fact the new slider will go from flat line (slider = 0) to half a circle (slider = 1.00). At slider=0 the circle will have a very very large radius (so a short arc of that circle is basically a flat line). At slider = 1 the circle will have a very small radius, just to span the vertical side of the cylinder, and we will be using half of that circle.