Я создал кубик Рубика jPCT, и теперь мне нужно повернуть весь этот куб. Я попытался добиться этого с помощью матриц вращения, и у меня есть вращающиеся элементы с одним кубом, но это не кажется хорошим способом.jPCT: Странное вращение камеры
Поэтому я хочу повернуть камеру вокруг куба вместо вращения куба. Это довольно легко, но проблема в том, что jPCT меняет ориентацию камеры в случайном порядке или я совершил еще одну ошибку, и я не могу ее исправить.
SimpleVector cameraPos = new SimpleVector(-20, 0, 0);
SimpleVector cubeCenter = new SimpleVector(2, 2, 2);
while (!org.lwjgl.opengl.Display.isCloseRequested()) {
refreshScene();
// Camera position is repeatedly rotated
cameraPos.rotateAxis(new SimpleVector(0, 0, 1), (float) Math.toRadians(1));
// Here I set camera position
world.getCamera().setPosition(cameraPos);
// Camera looks at the center of cube, but unfortunately
// not with fixed orientation
world.getCamera().lookAt(cubeCenter);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
}
}
Приведенный выше код выполняет это странное вращение куба:
Это здорово, но мне нужно повернуть мой кубик так:
Я попытался установить ориентацию камеры по setOrientation
метод:
SimpleVector upVector = world.getCamera().getUpVector();
upVector.scalarMul(-1.0f);
world.getCamera().setOrientation(world.getCamera().getDirection(), upVector);
Последняя строка в этом коде должна ИМХО поворачивать ориентацию камеры вверх ногами, но она просто ничего не делает. Я использую последнюю версию jPCT.
Как добиться правильной ориентации камеры? Любая помощь очень приветствуется!