So far, I'm about at the point of describing the trivial version of the problem I mentioned above. I doubt that I'll have any extra development time to get back to this until at least next year, however. Here's the comment block from a snippet of code I managed to get to:
Code:
// piecewise octahedral to equirectangular projection.
// question posed by Naima on Cartographers Guild at
// https://www.cartographersguild.com/showthread.php?t=51893 on 2023-09-20
// original input has a vertically-oriented 1:2 image (1024wx2048h) and that's
// how the solution was formulated. Probably would have been a little easier
// to require a horizontal format on the input, but it's not that bad.
/*
|<------- W1 ------->|
| |
---- +----------C----------+
^ |\ /|
| | \ / |
| | \ 2 / |
| | \ / |
| | \ / | |<--------------------- N --------------------->|
| D 3 N 1 B +-----------+-----------+-----------+-----------+
| | / \ | | | | | |
| | / \ | | | | | |
| | / 0 \ | | 0 | 1 | 2 | 3 |
| | / \ | | | | | |
|/ \| | | | | |
H1 +----------A----------+ +-----A-----+-----B-----+-----C-----+-----D-----+
|\ /| | | | | |
| | \ / | | | | | |
| | \ 4 / | | 4 | 5 | 6 | 7 |
| | \ / | | | | | |
| | \ / | | | | | |
| D 7 S 5 B +-----------+-----------+-----------+-----------+
| | / \ | |<--------------------- S --------------------->|
| | / \ |
| | / 6 \ |
| | / \ |
v |/ \|
---- +----------C----------+
The idea is to take triangles on the left and warp them to squares on the right.
The points marked N and S are the north and south poles, respectively.
Line segments ABCD are the equator.
Segments B and D are measured in opposite directions (away from A)
block source points dest points
w1, h1 w2, h2
0 0.00, 0.50
1.00, 0.50
0.50, 0.25
*/
I didn't quite manage to finish up the mapper points before I got pulled away, but it should be fairly simple to implement if I get an otherwise unoccupied half day or so. It doesn't require a generalized texture mapper because everything is nicely axis aligned, but it might be easier to do that way if using a tool that has that feature implemented (which Wilbur does not).