JME3 摄像机

阅读更多

摄像机

 

JME3中默认情况下,鼠标指针是不可见的,鼠标被设置来控制相机旋转。

默认的摄像头

默认com.jme3.renderer.Camera对象凸轮com.jme3.app.Application

该相机对象使用以下默认值创建的:

宽度和高度被设置为当前的应用的settings.getWidth()和settings.getHeight()的值。
    
视锥视角:

Y轴的角度45°

 宽高比,使用宽除以高

 视口近面距离1wu
        
视口远面1000wu
    
在起始位置(0F0F10F)。
    
矢量方向射向坐标原点。

 

Method

Usage

cam.getLocation(), setLocation()

摄像机位置

cam.getRotation(), setRotation()

旋转摄像机

cam.getLeft(), setLeft()

摄像机左轴

cam.getUp(), setUp()

摄像机上轴,通常为Vector3f(0,1,0)

cam.getDirection()

摄像机面向的方向的适量

cam.getAxes(), setAxes(left,up,dir)

left/up/direction三个属性的存取

cam.getFrame(), setFrame(loc,left,up,dir)

 location/left/up/direction四个属性的存取

cam.resize(width, height, fixAspect)

调整现有的相机对象,同时保持所有其他设置。设置fixAspecttrue调整宽高比(?)屏幕高宽比

cam.setFrustum( near, far, left, right, top, bottom )

使用远近平面,左右平面和上下平面来定义视锥(所有距离值为浮点类型)

cam.setFrustumPerspective( fovY, aspect ratio, near, far)

沿Y轴视角(单位:度)、宽高比和远/近平面定义视锥。

cam.lookAt(target,up)

使摄像机看一个固定的目标坐标点,并且围绕上轴旋转.

cam.setParallelProjection(false)

正常视角

cam.setParallelProjection(true)

平行投影角度

cam.getScreenCoordinates()

?

提示:当您更改视口,锥,或框架,调用cam.update()

 

FlyBy Camera

根据flyCam类字段,您可以访问扩展于com.jme3.app.SimpleApplication 的默认摄像头,通过他可以访问摄像头的其他更多的属性。在com.jme3.input.FlyByCamera AppState的输入管理器预配置为响应W A S D键,向前和向后,向左向右的移动摄像头。  移动鼠标可以旋转摄像头(“鼠标查看),滚动鼠标滚轮进行放大或缩小。该QZ键提高或降低相机垂直。

Q  W             

A  S  D    -->      

Z              

使用方法:
flyCam.setEnabled
true;激活FlyBy Camera

flyCam.setMoveSpeed10;控制移动速度
flyCam.setRotationSpeed
10;控制转速
flyCam.setDragToRotate
true)强制用户按下鼠标按钮来旋转摄像头,通常用于小应用程序。如果为false(默认),所有的鼠标移动将被捕获并解释为旋转。
FlyByCamera激活默认,但你可以改变这些默认设置。

 

跟随摄相机Chase Camera

jME3还支持跟随摄相机可以跟随一个移动的目标空间(com.jme3.input.ChaseCamera)。当您使用跟随摄像机,用户可以按住鼠标左右移动使摄像机围绕目标对象移动 。如果你需要将鼠标指针在你的游戏中可见您可以使用跟随摄相机。

 

flyCam.setEnabled(false);

ChaseCamera chaseCam = new ChaseCamera(cam, target, inputManager);

 

Method

Usage

chaseCam.setSmoothMotion(true);

使用插值方式移动摄像机,使移动更加平滑

chaseCam.setChasingSensitivity(5f)

当目标移动时相机慢跟随。低跟随灵敏度,

chaseCam.setTrailingSensitivity(0.5f)

当目标移动后摄像机开始移动。拖尾敏感度.

chaseCam.setRotationSensitivity(5f)

灵敏度越低,鼠标拖动时相机将较慢围绕靶旋转 。默认值是5

chaseCam.setTrailingRotationInertia(0.1f)

这样可以防止相机停止过急当目标停止转动之前的相机已达到目标的尾部的位置。默认值是0.1F

chaseCam.setDefaultDistance(40);

到目标的默认距离

chaseCam.setMaxDistance(40);

最大变焦距离 Default is 40f.

chaseCam.setMinDistance(1);

最小的变焦距离 Default is 1f.

chaseCam.setMinVerticalRotation(-FastMath.PI/2);

围绕目标摄像机的最小垂直旋转角度。默认值为0

chaseCam.setDefaultVerticalRotation(-FastMath.PI/2);

围绕目标的摄像机在应用开始时的默认的垂直旋转角度。

chaseCam.setDefaultHorizontalRotation(-FastMath.PI/2);

围绕目标的摄像机在应用开始时的默认水平旋转角度。

 

 

 

 

 可参考    

jMonkeyEngine之Camera全攻略

 

 

 

 

你可能感兴趣的:(jme3,3d,java)