2015-07-03 66 views
4

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

  1. 鼠标滚轮:应该更快,并且应该切换转向的效果。
  2. 鼠标拖拽:在jMonkey中,鼠标拖拽似乎改变了世界上摄像头的观看方向。我不确定在pcd查看器中究竟发生了什么,但是我相信在固定所显示点云的质心的同时,摄像机会在世界中移动。

我该如何改变相机的行为来填满我的愿望? :)

回答

1

1. 在simpleInit()方法(其中,100是abritrary号码):

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

。注意,缩放实际上不改变摄像机的位置,就在FOV。

2. 相机的正常行为是围绕自己的轴旋转。通过取消相机的位置,您可以实现所需的效果。在simpleUpdate()中:

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

我认为第二个问题的答案有点简单。但它的确有窍门。