OpenGL - 如何构建一个FPS风格的摄像机(连接到它的枪将随之移动和旋转)

时间:2014-12-23 09:52:28

标签: java opengl camera

我的问题非常直接:如何构建FPS相机,就像在射击游戏中一样(你有枪,每当你旋转相机时,枪也会旋转。)

实际上,移动是没有问题的,只是(好吧,在我开始编码之前,我想说,我正在使用libGDX,这是一个opengl框架,但你会理解所有人,因为我会理解为opengl代码):< / p>

gun.transform.setTranslation(camera.position);// sets gun to the center of the camera
camera.rotate(0,1,0,-3); //rotates direction and up vector of the camera
gun.transform.rotate(0,1,0,-3); // rotates the gun
gum.transform.trn(0.18f, -0.12f, -0.24f); //offseting the gun, to be everytime in the right bottom corner of the screen

但这不起作用。相机比枪更像旋转。它看起来像相机是球体......它不是我想要的。

1 个答案:

答案 0 :(得分:0)

实际上诀窍是,不是试图将玩家活动项目移动到视图中,而是将视图重置为仅用于绘制玩家活动的idem模型的身份。即。

load_identity_transformation()
apply_player_camera_transformation()
draw_world()

load_identity_transformation()
apply_camera_transformation() // for perspective
draw_player_active_item()

您可能希望在移动时将浮动动画应用于模型。

警告:这样做可以打破虚拟现实系统的体验(想想Oculus Rift)。但是,仅使用全球玩家模型并应用该转换也不起作用。 Valve发布了研究材料。