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全攻略

 

 

 

 

com.jme3.animation com.jme3.app com.jme3.app.state com.jme3.asset com.jme3.asset.pack com.jme3.asset.plugins com.jme3.audio com.jme3.audio.joal com.jme3.audio.lwjgl com.jme3.audio.plugins com.jme3.bounding com.jme3.bullet com.jme3.bullet.collision com.jme3.bullet.collision.shapes com.jme3.bullet.control com.jme3.bullet.joints com.jme3.bullet.joints.motors com.jme3.bullet.nodes com.jme3.bullet.nodes.infos com.jme3.bullet.util com.jme3.collision com.jme3.collision.bih com.jme3.effect com.jme3.export com.jme3.export.binary com.jme3.export.xml com.jme3.font com.jme3.font.plugins com.jme3.input com.jme3.input.awt com.jme3.input.binding com.jme3.input.dummy com.jme3.input.event com.jme3.input.lwjgl com.jme3.light com.jme3.material com.jme3.material.plugins com.jme3.math com.jme3.niftygui com.jme3.post com.jme3.renderer com.jme3.renderer.jogl com.jme3.renderer.layer com.jme3.renderer.lwjgl com.jme3.renderer.queue com.jme3.scene com.jme3.scene.control com.jme3.scene.debug com.jme3.scene.mesh com.jme3.scene.plugins com.jme3.scene.plugins.ogre com.jme3.scene.shape com.jme3.shader com.jme3.shader.plugins com.jme3.shadow com.jme3.system com.jme3.system.jogl com.jme3.system.lwjgl com.jme3.terrain com.jme3.texture com.jme3.texture.plugins com.jme3.ui com.jme3.util com.jme3.util.xml com.jme3.video com.jme3.video.plugins.jheora jme3game.cubefield jme3test jme3test.app jme3test.asset jme3test.audio jme3test.awt jme3test.bounding jme3test.bullet jme3test.collision jme3test.conversion jme3test.effect jme3test.export jme3test.gui jme3test.light jme3test.material jme3test.math jme3test.model jme3test.model.anim jme3test.model.shape jme3test.niftygui jme3test.post jme3test.scene jme3test.stress jme3test.texture jme3tools.converters jme3tools.converters.model jme3tools.converters.model.strip jme3tools.nvtex jme3tools.optimize jme3tools.preview
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值