Я создал простой куб и текстурировал его с помощью кубической карты, извлеченной из панорамного изображения.В этом кубе я делаю повороты вокруг его источника и создаю изображения, используя glReadPixels.После обработки этих изображений я получаю по несколько точек на каждое изображение, для которого я хотел бы рассчитать их эквивалентные координаты на панорамно-прямоугольном изображении.
Я нашел похожий вопрос здесь .
Но это не работает из-за поворотов.Моя попытка решить эту проблему состояла в том, чтобы применить одно и то же вращение к точкам, которые я получил на каждом изображении, чтобы получить x, y, z и в значительной степени использовать метод в ссылке выше, но полученные координаты были далеко.
Поворот в OpenGL:
glLoadIdentity()
glRotatef(pitch, 1.0, 0.0, 0.0)
glRotatef(yaw, 0.0, 1.0, 0.0)
Вот некоторый код для поворота 2D-точки на изображении:
q1 = Quaternion(axis=[0, 1, 0], degrees=rotation[0])
q2 = Quaternion(axis=[1, 0, 0], degrees=rotation[1])
q3 = q1*q2
res1 = q3.rotate(np.array([x1, y1, 1]))
Я не вращаюсь вокругZ-ось.Кстати, я попытался переключить q1 и q2, а также попытался использовать euler из библиотеки transforms3d, который дал мне те же значения.
Я думаю, что z, установленный в 1, может быть проблемой здесь, но я не уверен.
Есть идеи?