Предполагая, что Земля сферическая, это на самом деле не так сложно.
Сферические координаты для спасения (см. здесь )! Сфера может быть параметризована двумя углами (как уже упоминалось в постановке задачи). Основываясь на этом, вы можете сформулировать уравнения для преобразования в декартовы координаты. Если вы вычислите производную этих уравнений по обоим углам, вы получите уравнения с указанием касательной и битангенса любой точки на сфере. Исходя из этого, вы можете использовать вектор, указывающий от центра к точке на сфере, как нормаль, или как перекрестное произведение между касательной и битангенсом. Формулировки для тангенса и битангенса также приведены в ссылке выше.
Теперь у вас есть ортогональная система для каждой точки сферы, основанная на ваших 3 векторах: тангенс, битангенс и нормаль. Единственная часть, которая отсутствует, это перевод, который представляет собой просто вектор, указывающий от центра к точке на сфере. Имея все необходимые ингредиенты, вы можете создать матрицу 4x4 из этих осей, используя стандартные библиотеки, такие как glm, или просто разместить эти векторы как столбцы вашей матрицы (не забудьте нормализовать касательные, битовые и нормальные!). В зависимости от того, используете ли вы матрицы строк или столбцов, вам может понадобиться транспонировать эту матрицу.