Я пытаюсь реализовать простой граф сцены на iOS с помощью GLKit, но обработка точек начала/привязки мне подходит. Требования довольно просты:
- Существует график узлов, каждый из которых имеет перевод, вращение, масштаб и исходную точку.
- Каждый узел объединяет указанные выше свойства в одну матрицу (которая умножается на матрицу своего родителя, если у него есть родитель).
- Узлы должны соблюдать систему координат своего родителя, включая исходную точку (т. е. запрещать переводы и т. д. исходная точка дочернего элемента должна совпадать с исходной точкой родителя).
Итак, вопрос:
Какие операции (например, translationMatrix * rotateMatrix * scaleMatrix и т. д.) необходимо выполнить и в каком порядке, чтобы обеспечить правильную обработку исходных/якорных точек?
P.S. - Если вы достаточно любезны, чтобы опубликовать ответ, пожалуйста, укажите, основан ли ваш ответ на основных матрицах столбцов или строк - это постоянный источник путаницы для меня.