在jMonkey中更改相机行为

时间:2015-07-03 13:49:40

标签: java point-cloud-library jmonkeyengine

我正在编写一个应该显示3D点云的程序。为此,我使用的是jMonkeyEngine。不幸的是,我不喜欢jMonkey的默认摄像头行为。特别是鼠标拖动和鼠标滚轮并没有真正做到我想要的。我想要的是他们的行为就像在PointCloudLibrary的pcd查看器中一样。

  1. 鼠标滚轮:应该更快,并且应该切换转弯方向的效果。
  2. 鼠标拖动:在jMonkey中,鼠标拖动似乎改变了世界中的摄像机查看方向。我不确定在pcd查看器中究竟发生了什么,但我相信相机在固定显示点云的质心的同时在世界范围内移动。
  3. 如何更改相机的行为以满足我的愿望? :)

1 个答案:

答案 0 :(得分:1)

1。 在simpleInit()方法中(其中100是一个abritrary数字):

getFlyByCamera().setZoomSpeed(100);
getFlyByCamera().setDragToRotate(true);

请注意,缩放实际上并不会改变相机的位置,只会改变FOV。

2。 相机的正常行为是围绕其自身轴旋转。通过偏离相机的位置,可以实现您想要的效果。在simpleUpdate()中:

cam.setLocation(cam.getDirection().negate().multLocal(cam.getLocation().length()));

我认为第二个问题的答案有点快速破解。但它确实可以解决问题。