`
hjk685
  • 浏览: 101762 次
  • 来自: ...
社区版块
存档分类
最新评论

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

 

 

 

 

0
0
分享到:
评论

相关推荐

    jme3 api(精华chm)

    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 ...jme3tools.preview

    JME3学习文档

    ### JME3游戏开发引擎中文学习指南 #### 引言 JME3,全称jMonkeyEngine3,是一款开源的3D游戏开发引擎,专为Java开发者设计,旨在简化3D游戏和应用程序的开发过程。本文档将详细介绍如何在Netbeans6.x环境下搭建...

    2015jme3指南

    《2015jme3指南》是一份关于Java Media Engine 3 (JME3)的详细教程,主要面向对游戏开发感兴趣的开发者。JME3是Java平台上的一个开源3D游戏开发框架,它提供了丰富的功能,使得开发者可以快速创建高性能的3D应用和...

    jme3游戏demo rise-of-mutants

    《jme3游戏开发:Rise of Mutants》 在IT行业中,游戏开发是一个充满创新和技术挑战的领域,而Java语言并非通常首选的游戏开发工具。然而,随着技术的进步,Java也逐渐进入了游戏开发的舞台,其中JMonkeyEngine...

    JME3中文教程(ZBP第一版)

    **JME3中文教程(ZBP第一版)** Java Media Engine 3,简称JME3,是一个基于Java的开源3D游戏引擎,专为开发高质量的2D和3D游戏而设计。它提供了丰富的功能,包括图形渲染、物理模拟、音频处理、网络通信等,使得...

    JME中文教程.pdf

    - **jme3-lwjgl/jme3-lwjgl3/jme3-jogl**:为桌面应用提供不同的渲染模块。 - **jme3-android**/**jme3-android-native**:分别针对Android应用的核心API和所需本地库文件。 - **jme3-ios**:开发iOS应用的核心API...

    jme3材质基础知识

    本文将详细讲解"jme3材质基础知识",主要围绕jMonkeyEngine3(简称jME3)这个强大的开源Java游戏开发引擎。 jMonkeyEngine3是一个基于现代图形技术如OpenGL的3D游戏引擎,它为开发者提供了丰富的工具和库,简化了...

    JME3 JAVADOC

    本文档是JME 的javadoc 文档 JME是一个高性能的3D图形API,采用LWJGL作为底层支持。它的后续版本将支持JOGL。JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织自己的场景。JME有一套很好的优化机制,这...

    JME教程.rar

    3. **用户界面设计**:学习使用MIDP提供的UI组件创建交互式界面,以及如何自定义Canvas实现复杂图形绘制。 4. **数据存储**:了解如何在受限的设备上持久化数据,如使用Record Management System (RMS)。 5. **网络...

    JME的文件格式及支持的文件格式

    **JMonkeyEngine 3 (JME3) 文件格式详解** JMonkeyEngine 3(简称JME3)是一款开源的游戏开发引擎,专为构建3D游戏和应用而设计。它支持多种文件格式,使得开发者能够方便地导入和管理游戏资源。以下是对JME3支持的...

    JME程序设计实例教程

    **JME程序设计实例教程详解** Java Micro Edition(JME),又称为Java 2 Micro Edition,是Java平台的一个子集,主要用于开发和部署在资源有限的设备上的应用程序,如移动电话、PDA、智能家电等嵌入式系统。本教程...

    联想的JME2207P键盘驱动

    标题中的“联想的JME2207P键盘驱动”是指专门为联想品牌的一款键盘型号为JME2207P的设备设计的驱动程序。在计算机硬件系统中,驱动程序是连接操作系统与硬件设备的关键软件,它使得操作系统能够识别并控制特定硬件,...

    JME初级教程(持续跟新)

    Java Media Engine (JME), 也称为jMonkeyEngine 3 (JME3), 是一个开源的游戏开发引擎,专为快速创建3D游戏而设计。它基于Java编程语言,提供了丰富的功能,包括图形渲染、物理模拟、音频处理以及网络通信等。JME3是...

    java8看不到源码-JME3-JFX:用于JME的JFXGui桥接器,具有用于常见用例的有用实用程序

    JME3-JFX 用于 JME 的 JFX Gui 桥接器,具有用于常见用例的有用实用程序。 许可证是新的 BSD 许可证(与 JME3 相同) 二进制版本可在以下位置获得: ( ) ( ) 它也可以用作 maven 存储库(请参阅“设置我”按钮)。 ...

    jme8002b蓝牙键盘驱动

    jme8002b蓝牙键盘驱动

    相关技术\游戏引擎,JME

    3. **脚本语言支持**:JME允许使用内置的Java语言或外部脚本语言(如JavaScript)编写游戏逻辑,增强了游戏的可定制性和灵活性。 4. **多媒体支持**:JME可以处理各种媒体格式,包括音频和视频,为游戏提供丰富的...

    JME Molecular Editor结构式在线编辑器

    JME Molecular Editor结构式在线编辑器

    ant-jme.jar.zip

    标题“ant-jme.jar.zip”指的是一个压缩文件,其中包含了两个关键元素:ant-jme.jar和ant.license.txt。这个文件主要与Java开发工具有关,特别是Apache Ant和Java Micro Edition (JME)。 Apache Ant是一个Java库和...

Global site tag (gtag.js) - Google Analytics