Я переместил свою камеру (mViewMatrix) в трехмерном пространстве на 15 ° на каждый угол x, y, z (со всеми углами 0 ° у меня нет проблем с поворотом камеры!)
Все объекты в трехмерном пространстве в порядке (показаны в правом нижнем углу экрана).
Хорошо, теперь я хочу повернуть камеру вокруг оси X. Объекты в правом нижнем углу должны двигаться снизу вверх с правой стороны.
Но ... из-за измененных углов камеры 15 ° ... объекты перемещаются не только сверху вниз с правой стороны ... они также немного перемещаются справа налево.
Я думаю, мне нужно изменить вектор с:
Matrix.setRotateM(mViewMatrix, 0, 15, 0, 1, 0);
to:
Matrix.setRotateM(mViewMatrix, 0, 15, cameraVector.x, cameraVector.y, cameraVector.z);
... или что-то.
Вот что я сделал (я знаю, что должен использовать матрицу поворота, но здесь я разместил простой код, только для удобства чтения):
Matrix.setIdentityM(mViewMatrix, 0);
Matrix.translateM(mViewMatrix, 0, 0, 0, -8);
Matrix.setRotateM(mViewMatrix, 0, 15 + angle, 1, 0, 0);
Matrix.setRotateM(mViewMatrix, 0, 15, 0, 1, 0);
Matrix.setRotateM(mViewMatrix, 0, 15, 0, 0, 1);
Было бы неплохо, если бы кто-нибудь мог опубликовать рабочий простой демонстрационный код, потому что я пробовал 5 дней, и я не знаю, как это исправить (я много тестировал).