Я пытаюсь реализовать вращение арбола / трекбола, но у меня проблема с центром вращения. Я хочу, чтобы центр был центром моего экрана, несмотря ни на что.
Позвольте мне объяснить, что я сделал до сих пор.
Я создал кватерион (ось вращения: vector_start x vector_end, угол: vector_start * vector_end)
Из этого кватерниона я создал матрицу вращения, чтобы использовать ее с glMultMatrixf (matrix) и получить желаемое вращение.
Проблема в том, что, хотя моя модель, кажется, вращается как шаровой шар, как и должно, она всегда вращается вокруг своей локальной исходной точки. Как я могу заставить его вращаться вокруг центра моего экрана независимо от того, где находится его локальное начало?
Я полагаю, что решение этой проблемы могло бы заключаться в том, чтобы переместить всю ось вращения в центр экрана, а затем применить вращение, но возможно ли это? Я что-то здесь упускаю?