Why objects in front are much smaller than those to the sides on Google Maps Photo Spheres?

93 viewsOtherTechnology

Lets take a look at these examples: https://imgur.com/a/YFzidoE

The very same plant is ~190x80px when in front but it becomes much larer, around 400x260px when on the side.

I find it strange that the images still look mostly natural when steady, but if you rotate them around with the mouse the whole experience becomes stragne while things move, not very lifelike. In reality if I look around, thing appear to be the same size, no matter if they are in front or to the side.

I get it that it has to do with projecting a 3D like environment on a flat screen that is in front of me, even the parts of it to the side, but still I cannot quite put a finger on what’s going on and why it is so confusing, just I find it strange.

Also I’m wondering if this is the best way to project these images on the screen or have Google made a strange choices for rendering them?

If anyone interested this is the image for the example, but all Photo Spheares behave the same on Google Maps. This example is arbitrary: https://maps.app.goo.gl/KkETYeBKBaq73hNG6

In: Technology

Anonymous 0 Comments

This has to do with how the 3D projection is done, as well as the assumptions made about the viewer and the screen they use. Realtime 3D projections are done with linear algebra, using matrices and vectors. This means that straight lines will stay straight, which makes rasterization (filling in the pixels covered by a triangle) easier to do. In essence, the result of this projection is that things along the edges of the screen get stretched outwards. However, this is actually “correct”.

The idea is that if the user is looking at a flat screen, then the edges of the screen will be seen by the viewer at an angle. This angle gets sharper and sharper towards the edges, meaning that things start to look squished. If the field of view matches the angular size of the monitor from your point of view, then the stretching of the perspective projection will perfectly cancel out the increasing angle of the edges. In this case, your monitor will essentially be a perfect window to the virtual world, as long as you keep your head IRL still.

Unfortunately, most games/programs use a much higher field of view than they should, to allow the player/user to see more and not get tunnel vision. For example, a 90 degree vertical field of view would mean that you should be keeping your head around 16 inches away from a 65-inch TV. That’s obviously ridiculous close, so they instead go for a fish-eye view of the world. Since the stretching is now much higher than the squishing, things end up stretched like you see.

By the way, this is why curved monitors are a fundamentally flawed idea for games. The curving inwards will just make this stretching even more egregious.

I can explain the math more in detail if you’re interested.