Я пошел вперед, написал приложение на C++, которое (надеюсь) делает то, что вы хотите, и posted it on GitHub.
Учитывая цилиндр х^2 + у^2 = 1 вписан внутри куба 2x2x2 с центром в начале координат, мы можем спроектировать цилиндрические панорамы на coresponding четыре грани куба следующим образом. Для каждого пикселя на выходном изображении мы бросаем луч из центра куба в (0,0,0) через соответствующую точку на одной из поверхностей куба и определяем, где этот луч пересекает цилиндр. Затем мы сопоставляем эту точку на цилиндре с соответствующей точкой во входном изображении и (билинейно) пробуем входное изображение в точке. Полученный пиксельный цвет присваивается текущему выходному пикселю.
Вы можете прочитать подробности gory в associated docs.
Вот некоторые миниатюры ввода и вывода изображения вы предложили:
Очень здорово, спасибо. Одна заметка - выход должен быть длиной = 2X, чтобы он мог полностью обернуться вокруг сферы. – Sekoul
Я не думаю, что я действительно сделал то, что хотел. Мне нужно использовать сферу вместо цилиндра. Я сопоставил цилиндр с четырьмя сторонами куба (не сверху или снизу на кубе), который работал бы с пещерой VR без движения вверх или вниз. Когда я получу шанс, я сделаю еще одну попытку. – wcochran