Как правильно двигать объекты в 3D пространстве и вращать камеру?
Всем привет!
Создаю объекты и двигаю их так:
Каждый объект создается отдельной функцией в отдельном классе, у каждого класса есть метод drow. И в этом случае у меня будет один цикл, который обходит все объекты и по определенным правилам меняет текущие координаты, при этом вызывает метод drow для отрисовки каждого объекта. - правильно ли это?
Как вращать камеру?
Знаю, что в OpenGL по сути вращается и перемещается по сцене не камера, а сама сцена, т.е. берем вектора перемещения и вращения камеры и умножаем их на матрицу, но на какую матрицу?
Сейчас у меня на сцене 1 объект - skybox и вектора перемещения я умножаю на него и все работает в принципе, а что будет когда объектов станет несколько тысяч? Также в цикле умножать позицию каждого объекта на вектора перемещения и вращения, не будет ли это жутко медленно? В общем - как это делать правильно?