在jMonkey中更改相机行为

4
我正在编写一个程序,旨在显示3D点云。为此,我使用了jMonkeyEngine引擎。不幸的是,我不喜欢jMonkey的默认相机行为。特别是鼠标拖动和鼠标滚轮不能完全满足我的需求。我希望它们的行为像PointCloudLibrary中的pcd viewer那样。
以下是我的要求:
  1. 鼠标滚轮:应该更快,并且旋转方向的效果应该相反。
  2. 鼠标拖动:在jMonkey中,似乎鼠标拖动会改变相机在世界中的观察方向。我不确定pcd viewer中究竟发生了什么,但我认为相机移动到了显示点云的中心。
请问我如何改变相机的行为以满足我的需求? :)
1个回答

1

1. 在simpleInit()方法中(其中100是任意数字):

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

请注意,缩放实际上不会改变相机的位置,只会改变视野角度。
2. 相机的正常行为是围绕自身轴旋转。通过偏移相机的位置,可以实现所需效果。在simpleUpdate()中:
cam.setLocation(cam.getDirection().negate().multLocal(cam.getLocation().length()));

我认为对于第二个问题的答案有点草率。但它能解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接