java - 在 jMonkey 中更改相机行为

标签 java point-cloud-library jmonkeyengine

我正在编写一个应该显示 3D 点云的程序。为此,我正在使用 jMonkeyEngine。不幸的是,我不喜欢 jMonkey 的默认相机行为。尤其是鼠标拖动和鼠标滚轮并没有真正按照我的意愿行事。我想要的是它们的行为就像在 PointCloudLibrary 的 pcd 查看器中一样。

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

我怎样才能改变相机的行为来满足我的愿望? :)

最佳答案

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

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

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

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

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

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

关于java - 在 jMonkey 中更改相机行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208459/

相关文章:

Java:静态初始化

opencv - 将Cmake与PCL和OpenCV一起使用

c++ - pcl::MovingLeastSquares不起作用

java - J-猴子子类

java - Hibernate 标准 - 新手问题

java - 如何从耳朵制造 war

c++ - PCL : how to plot a directional line

java - Jmonkey碰撞检测

java - 对于多人游戏场景,如何在客户端之间序列化更新消息?

java - html webview中的奇怪字符