3

My understanding of cubemaps is as follows:

  1. To create a cubemap from a sphere, we project from the centre of the sphere outwards, onto the faces of a cube.

  2. Each face of the cube therefore represents a 90 degree field of view horizontally and vertically (if we imagine we are at the centre of the sphere looking outwards).

  3. So, for example, the "front" face of the cubemap would have projected onto it anything on the surface of the sphere that lies between the longitude -45 to +45, and latitude -45 to +45.

However, if we look at a globe projected onto an unfolded cubemap we can see that this is not the case:

enter image description here

Image source

Looking at the front face of the cubemap, we can see that while it covers 90 degrees of longitude (the longitudinal lines are straight), the amount of latitude coverage varies (the latitudinal lines are curved) - e.g. the centre of the top edge of the front face reaches a higher latitude than the corners of the top edge of the front face.

This doesn't seem to make sense given my points (2) and (3) above, so I feel I must have some fundamental misunderstanding. I can understand visually how we end up with the lines of longitude and latitude shown in the top and bottom faces of the cubemap, but I just can't make sense of how the front (or left/right/back) faces can have a 90 fov but yet not preserve lines of latitude.

Does anyone have a visual/intuitive way to help me understand what is going on here?

5
  • 1
    It seems like not everybody has the same idea about what cube projection is. The one from ArcGIS differs from the above: desktop.arcgis.com/en/arcmap/latest/map/projections/cube.htm
    – TomazicM
    Commented Mar 28, 2021 at 7:29
  • @TomazicM Interesting, every cubemap I'd seen until now distorts lines of latitude. In any case, the cubemaps I have to work with are of the type in the question, i.e. distorted latitude. Figs 2.1 and 2.2 in this paper show what's happening quite nicely, but I still can't get my head around how a 90 degree fov doesn't just cover -45 to +45 latitude.
    – Rob S
    Commented Mar 28, 2021 at 9:48
  • But even here there are discrepancies. If you look at the pole sections in the above picture, lines of equal latitude are perfect circles, whereas in cited paper in Fig 2.1 circles are distorted.
    – TomazicM
    Commented Mar 28, 2021 at 10:18
  • Every flat map distorts both latitude and longitude. Constructing a cube from a spheroid has to result in massive numbers of compromises. Without discussion with the developers who implemented them, I doubt you'll have a definitive answer.
    – Vince
    Commented Mar 28, 2021 at 12:57
  • 2
    Your cubemap seems to be using a gnomonic projection for each face, according to the description in the linked webpage. In gnomonic projections, great circles are preserved as straight lines, hence the meridians, which are great circles, are straight on the projection. But parallels aren't, because they are not great circles in the first place (except the Equator).
    – FSimardGIS
    Commented Mar 28, 2021 at 16:53

1 Answer 1

1

My question fundamentally boiled down to,

Assuming we're dealing with the "front" face of a cubemap, why doesn't a 90 degree field of view correspond to -45 degrees latitude to +45 degrees latitude?

@FSimardGIS 's comment about great circles and parallels helped me visualise the answer.

Imagine a globe with conventional lines of longitude and latitude drawn on it. The lines of longitude are great circles, i.e. they stretch from pole to pole and are all the same length. The lines of latitude are not great circles (except for the equator), they are parallels - they run round the globe parallel to each other, forming smaller and smaller circles the closer you get to the north and south poles.

This means that a 90 degree slice with respect to lines of longitude is not equivalent to a 90 degree slice with respect to lines of latitude. If you cut out a 90 degree slice of longitude you will get a quarter of a sphere in the shape of an orange slice. If you cut out a 90 degree slice of latitude (say, 45 degrees either side of the equator) you will get a kind of hockey puck or cheese wheel shape (a low, fat cylinder with curved sides).

Now let's consider the concrete example of the "front" face of a cubemap with a 90 degree field of view. The phrase "90 degree field of view" is under-defined, because you haven't said if you're defining "90 degrees" with respect to great circles (e.g. lines of longitude) or parallels (e.g. lines of latitude) or some mixture of the two. As far as I can tell, the fov of a cubemap is usually defined in terms of great circles in both dimensions (@TomazicM 's comment provides an example of a mixed approach - great circles in one dimension and parallels in the other).

Let's assume we're defining our fov in terms of great circles. As we scan from left to right this is easy to visualise, we simple take everything between the -45 and +45 lines of longitude, because the lines of longitude are already great circles. But scanning from top to bottom we have to ignore the parallel lines of latitude and instead imagine great circles drawn from the "east pole" to the "west pole", and our 90 degree fov captures everything between the -45 line and the +45 line. This means that, in terms of conventional (parallel) lines of latitude, our field of view is not constant, it will reach a higher latitude near the middle of the edge of the cube face and a lower latitude near the extremities of the edge of the cube face, as shown in the image in the original question.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.