JME2 和JME3的比较

JME3游戏开发详细教程与实践指南 JME3(Java Monkey Engine 3)是一个开源的游戏引擎,以其灵活性、强大的功能集和用户友好的设计而闻名。它使用Java编写,支持多种操作系统,并允许开发者利用Java生态中的各种工具和库。JME3适用于2D和3D游戏开发,特别擅长渲染高质量的3D图形。由于其简洁的API设计和直观的场景图架构,即使是没有复杂图形编程经验的开发者也能快速上手。JME3还支持各种动画技术、物理引擎以及音频处理,使得游戏开发者可以创建出功能丰富且视觉上吸引人的游戏体验。 阅读详情

3表示JME3; 2 表示JME2

3: 整合进 了core 和material 系统, 支持shader 库和排列定义,用户友好(e.g  不需要知道Shader内部是如何实现着色的)
2: 通过对RenderState的支持完全访问Shader ,需要User了解Shaders及其工作原理。不支持liberaries 和排列。

Resource management?
3: 整合进核心库中.所有的来自文件的数据被缓存到AssetManager内部。用户可以自定义, 支持多线程导入。可以从本地硬盘和HTTP Server 上加载zip/jar文件。
2: 只有 textures 被在TextureManager里管控. ResourceLocatorTool 用来定位资源。

Input handling?
3: 为游戏所设计。 抽象的keyboard, mouse 和 joystick 被集合到一个单一的基本的接口中,可以被GUI访问的底层的接口。
2: 是在 keyboard, mouse and joystick上层的layer. 主要的输入接口(InputManager) 会导致用户端代码膨胀。 綁定系統可分別通過 darkfrog的輸入綁定系統。

GL Object handling?
3: 未使用的GL Objects 被删除 当它们被当作垃圾回收后
2: 所有的对象不会自动被清除,除非用户手动清除

Collision/Picking?
3: BIH (Bounding interleaved hierarchy) 用作静态的网格拾取和碰撞检测 . 支持Volume vs. Tri collision.
2: Red-black tree 在整个网格数据中, 与BIH相比,较低的碰撞检测效率但却是速度更快的新一代動畫對象. 支持 Tri vs. Tri collision but not Volume vs. Tri which is more commonly used.

Native library handling?
3: 拷贝natives , 在运行时加载它们。
2: 没有, 需要用户在Classpath中设定java.library.path property.

Post processing?
3: HDR/Tonemapping (planned: SSAO, motion blur, bloom, depth of field)
2: Bloom, Basic Motion Blur

Comment:在3D遊戲行業里Bloom是一個流行的渲染效果。它通常由一個發光的光環下顯示光源或照亮周圍地區的一個場景。在實踐中,明亮的區域,均取自渲染場景,模糊,最後加起來渲染。

Shadow effects?
3: 内置的核心, in-pass and post-pass. 可定制的Shadow map的方法. 预计会支持PSSM.
2: ShadowedRenderPass 是为stencil shadows服务的, 问题是如果Camera进入体积阴影(shadow volume)里. DirectionalShadowMapPass 用来订制 阴影映射, 没有和用户的shader, post-pass整合, 只是一个光源而已.

Geometry handling?
3: Geometry是个场景图元素,它包含了一个Mesh 对象 . Meshes 包含了指定components, type, float/int buffer的 VertexBuffers. 这使得一个单一的mesh可被许多场景图元素共享. 支持的特性如详细程度和动画功能的内部支持
2: Geometry/TriMesh是一个包含float buffers 和int buffers的场景图元素 , VBO 只支持静态models, 自定义属性是通过GLSLShaderDataLogic手动指定,如果使用VBO,那么自定义的就不会工作

(场景图的更新)Scene graph updates?
3: 重新刷新flags, 以避免不必要的场景更新.
2: 在updateGeometricState里,所有的数据都会更新. 每次请求回更新整个场景,锁定机制被用来减少不必要的更新, 但这需要干预。

RenderState/Material
3: 只用在叶子端. 使用脚本化的material 系统. materials 包含了阴影和渲染的state技术(shader & render state) . Shader 是可以定制的,由用户定义在指定的material实例里。 is customized with defines specified in material instance (by user). 这是针对material一个数据驱动的解决方法.
2: 每个场景图元素包含一组RenderStates。他们相结合,并被保存在叶中。没有数据驱动的解决方案。

支持fixed-function/old 的 gpus?
3:非常基本的, 通过JOGL渲染 
2:全部支援

Renderer capabilities?
3:通过CAP系统渲染Queriable。
2:通过渲染和各种设置绘制Queriable。


Math object pooling (Vector, Matrix, etc)数学对象池(向量,矩阵等)?
3:系统基于ThreadLocal,被定义为实例变量,可被任何类访问。基于断言的“锁定”是用来防止数据损坏。
2:静态声明(杀死这些类的多线程)或无池的。

Text(文本) ?
3:AngelCode位图文本
2:固定长度的字体,3D文字,AngelCode文本可作为一个单独的库

User interface?
3: 简单的文本和内置的ortho, NiftyGui整合可以用于更高级的用户界面设定。
2:只有简单的文本和ortho。 JME-Desktop(在MacOS X下无法正常工作),外部库可用(FengGUI, GBUI)。


3:簡單的文字和鄰內置,NiftyGui整合可以用於更高級的用戶界面。
2:只有簡單的文本和鄰。 JME的桌面(不工作以及在MacOS X),外部庫可用(鳳桂,GBUI)。

Animation?
3: OgreXML為基礎的動畫系統有許多特點。目前唯一的軟件支持換膚,但有硬件剝皮的計劃。
2:系统太多, 造成很大的混乱。jME-xml 和collada 一个, md2/md3 使用另一个, milkshape models 一个, ogrexml 一个 , md5 一个。

Spatial partitioning?
3: 八叉树分割
2: 不支持. BSP loader 可以作为一个独立库尽管它不被推荐并且有些问题 . 基于系统的Portal也可作为一个可用的独立库,尽管它未被作者声明

Model formats?
3: Ogre3D Mesh.XML and OBJ (没有materials).
2: 静态/VertexAnim: ase, obj, 3ds, md2, md3, ms3d, x3d. Skeleton: (broken) collada, ogre3d, jme-xml (md5 被当作一个独立的 lib)

Import/Export?
3: 与 jME2一样. 
2: Input/Output 封装及可存储性. 支持Binary 和XML.

Physics?
3:内置了JBullet。
2:外部庫可供選擇: jME-physics, jbullet-jme, SimplePhysics。

Canvas support?
3:是的。
2:是的,但 API可能有点令人費解。

Particles(颗粒)?
3:是的。
2:是的,但API可能會令人費解。

Terrain(场景)?
3:基於圖像的高度圖。可以導入 Ogre3D dotScene非地形高度圖。
2:基於圖像或隨機生成的高度圖。四叉樹的支持。

JME3 JAVADOC 本文档是JME 的javadoc 文档 JME是一个高性能的3D图形API,采用LWJGL作为底层支持。它的后续版本将支持JOGL。JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织自己的场景。JME有一套很好的优化机制,这使得它得运行速度要比Java 3D快很多。JME(java Monkey Engine),一个非常棒的Java 3D游戏引擎。 立即下载

相关推荐

JME3学习文档

游戏开发引擎JME3中文翻译文档,简单点例子分享

JME3教程:Android创建一个简单的示例

作者:忆逝丷 不得转载!不得转载!不得转载! 找遍全网都没有一个安卓的教程,我研究了好几天,终于研究出来了,分享一下给大家。 首先需要对安卓中的view,assets,libso存放位置有一定的了解。 使用AIDE编译,纯Java教程 首先就是下载JME3引擎,百度搜官网跳转到github下载,下载后把jme3-core.jar,jme3-android.jar,jme3-android-native.jar放到工程里即可 AIDE无法直接编译jme3-android.jar,问题就在JmeSurfaceV

qq_36171989的博客 1170

JME3 中文教程(ZBP翻译第一版)

NULL 博文链接:https://hjk685.iteye.com/blog/767080

JME 3 入门教程 3 - Hello Assets

前一节:Hello Node,下一节:Hello Update Loop 本节教程中,我们将学习如何使用jME asset manager(jME资源管理器)向场景图加载3-D模型和文字,并将了解到如何使用正确的文件格式。 右键点击工程,选择“Properties”,选择“Libraries”,点击“Add Library”,将“jme3-test-data”库添加进去。这样,就可以在接下...

weixin_30664051的博客 657

jme3-clj-aide:JMonkeyEngine3 + Clojure-Android + AIDE 示例项目

jme3-clj-aide JMonkeyEngine3 + Clojure-Android + AIDE 示例项目

JME3中文教程(ZBP第一版)

本人翻译水平有限,请大家包含,并希望能够给予指教。 本来就是给大家的资料所以我不喜欢要什么资源分,希望大家也上传时不要资源分

手把手教你搭建jME2(jMonkeyEngine2)环境【有图有真相】

本文以搭建jME2.0.1_Stable为例:1、下载jME类库jME2.0.1_Stable下载地址:http://code.google.com/p/jmonkeyengine/downloads/detail?name=jME2_0_1-Stable.zip&can=2&q=下载完了解压后,发现有3个文件夹:junit、lib、srcjunit——使用junit编写的对jME的测试类源码lib——就是我们想要的类库src——中有jME的源码和jME的演示类源码2、在Eclipse建一个属于自己的类库打

游戏开发者 1万+

hMailServer安装配置

hMailServer安装配置 使用宝塔面板上的宝塔邮件服务器2.1版本,进行安装hMailServer。 宝塔在安装hMailServer是有做了一些配置,如果是手工安装需要注意一下配置点: 1、\hMailServer\Bin 目录下增加mysql连接文件libmysql.dll,要去下载32位的。 libmysql.dll下载 链接:https://pan.baidu.com/s/1YGJXzjowlJ9n_MiqB4xiqw 提取码:wz90 2、 需要提前安装mysql,并创建hM.

王者的博客 5867

jme3模型纹理合并导出j3o

package jme3test.tools; import java.awt.image.BufferedImage; import java.awt.image.DataBufferByte; import java.awt.image.WritableRaster; import java.io.File; import java.io.IOException; import java.n

zmy12007的专栏 1591

VisionPro九点标定实战:从相机拍照到机器人精准抓取的完整流程

本文详细介绍了VisionPro九点标定技术在工业自动化中的应用,从相机拍照到机器人精准抓取的完整流程。通过硬件配置、标定步骤和实战技巧的解析,帮助工程师实现高精度视觉引导系统,提升生产效率。特别适合需要解决二维图像坐标与物理空间转换问题的自动化项目。

weixin_30664051的博客 406

ESP32-CAM入门教程

ArduinoESP32-CAM下载模块(接上USB就能用,很方便,如果没有买就只有资金用USB-TTL了)如下图两个合在一起如下图。

qq_48778364的博客 3万+

JME 3 入门教程1 - HELLO SIMPLEAPPLICATION

原文链接http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_simpleapplication 前一节:安装JME3,下一节:HELLO NODE 这一节教程假定你已经下载了jMonkey Engine3,并在自选的IDE中设置妥当,且能够运行其中的样例。 准备完毕,马上就要创建属于你的第一个jMonkey Eng

Mynoob的专栏 4219

Python爬虫实战:用BeautifulSoup和Pandas轻松抓取去哪儿网景点数据(附完整代码)

本文详细介绍了如何使用Python的BeautifulSoup和Pandas库构建一个高效的旅游数据爬虫,从去哪儿网抓取景点数据。内容涵盖环境准备、网页结构分析、核心代码实现、反爬策略以及数据清洗与存储,提供完整代码示例,帮助开发者快速掌握数据采集技术。

river的博客 357

JME开篇一

大致是一年多前接触JME的吧,研究了一段时间,后来由于工作时间忙就搁置在一边了。最近看到JME的SDK都出到贝塔4了,呵呵,更新的挺快的嘛,记得当初SDK还没出来的时候是直接在eclipse上运行的,不过说实话还是用eclipse习惯。趁着还在下载SDK先翻译下官方文档吧,当做复习了,呵呵,好久没接触了,似乎。。。。 下面内容全部来自官方文档(http://jmonkeyengine....

anr76957的博客 279

STM32 使用SYN6288语音模块

本篇文章带大家学习一下SYN6288语音模块,这个模块可以用于车载设备,语音电子书等众多产品当中,而且这个模块支持多种编码格式,GB2312,GBK等字符编码格式。SYN6288语音合成模块是一种语音合成设备,其可实现文字转语音功能,将输入的文字信息通过内部的处理和合成,输出相对应的语音信息。SYN6288模块具有语音合成质量高、输出音质好、使用方便等特点,因此广泛应用于语音播报、语音提示、语音识别、智能家居、智能家电、安防监控等领域。支持多语言:包括中文、英文、日文、韩文等多种语言。

m0_49476241的博客 2万+

Python爬虫实战:使用最新技术爬取路透社新闻数据

网络爬虫(Web Crawler)是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。随着大数据和人工智能技术的发展,爬虫技术在数据采集、市场分析、舆情监控等领域发挥着越来越重要的作用。requests:同步HTTP请求库aiohttp:异步HTTP请求库:HTML解析库lxml:高效的HTML/XML解析库selenium:浏览器自动化工具playwright:现代浏览器自动化工具pandas:数据处理和分析库scrapy:专业的爬虫框架:生成随机User-Agentredis:缓存和分布式爬虫支持。

2201_76125261的博客 1204

JME软件开发资源网

作者:张桂权 随着Java技术的成熟以及广泛的应用,JME(Java Micro Edition)自然也成了一个流行的手机或者手持设备程序开发的工具了。相信国内一定有像我一样的JME技术的爱好者。但是,由于国内缺乏相关的技术资源(还是不少,但是都是CopyRight了,所以我们还好无能为力了),以下是我喜欢的几个有关JME技术的网站,希望对你有所帮组,无论你是JME技术爱好者,还是正在从事相关开发

游戏开发文摘 2053

[VCS]VCS checkpoint简介以及其在SoC验证加速中的作用

VCS checkpoint是Synopsys VCS提供的快照/恢复机制,可显著加速SoC验证。其核心是在仿真关键节点(如完成初始化后)保存系统状态,后续测试可直接从该点恢复,避免重复执行冗长的初始化阶段(如boot、DDR训练等)。该技术特别适用于多测试用例共享同一初始状态的场景,通过分离初始化与功能验证流程,可提升回归效率3-5倍。需注意处理DPI-C状态同步、版本管理及存储优化等问题,结合UVM和自动化脚本可实现更高效的验证流程。典型应用可节省数百万cycle的重复仿真时间。

元直的博客 775

java窗体jmeun刷新,java – JME 3 Swing,多幅画布

我正在玩JME3,目前面临以下问题:当LWJGL画布包含在多个应用程序选项卡中时,它们都不会或仅运行一次.这是一个例子:SwingCanvas.java:package jme3test.helloworld;import java.awt.Dimension;import javax.swing.JFrame;import com.jme3.app.SimpleApplication;impor...

weixin_30782699的博客 212

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。

猿小白的博客 1167

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JME软件开发资源网(国外版)

JME软件开发资源网作者:张桂权 随着Java技术的成熟以及广泛的应用,JME(Java Micro Edition)自然也成了一个流行的手机或者手持设备程序开发的工具了。相信国内一定有像我一样的JME技术的爱好者。但是,由于国内缺乏相关的技术资源(还是不少,但是都是CopyRight了,所以我们还好无能为力了),以下是我喜欢的几个有关JME技术的网站,希望对你有所帮组,无论你是JME技术爱好

GreenCode 3992

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jme3与nifty gui1.3结合,修改使其支持中文的输入与显示

1、nifty gui1.3中修改代码,使其支持中文的输入: com.jme3.input.awt.AwtKeyInput类,添加toAWTCode(int key)方法,将jme3中的keyCode转换成awt中的keyCode: public static int toAWTCode(int key) { switch (key) { cas...

dianhonge6338的博客 202

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

使用JME3开发的Android 3D游戏 - 落樱之剑v2.2

这个游戏使用JME3(JMonkeyEngine3.0)开发, 刚发布v2.2,欢迎提供意见   简单的RPG游戏 游戏特色: -自由的塔防,随时随地玩塔防  -第3人称全3D视角 -可选的职业:战士、牧师、弓箭手等 -可以召唤的各种各样的宠物和野兽 -魔幻般的技能和真正的防御和躲闪 -各种各样的天赋属性可以自由搭配 -各种有趣的物品可以提高角色的能力 -有趣的剧情和吐槽 ...

huliqing66的博客 1079

JME-CLJ 项目教程

JME-CLJ 项目教程 1. 项目的目录结构及介绍 jme-clj/ ├── project.clj ├── README.md ├── resources/ │ └── logback.xml ├── src/ │ └── jme_clj/ │ ├── core.clj │ └── main.clj └── test/ └── jme_clj/ ...

gitblog_00549的博客 446

JME 分析

部分一: 每一个游戏的恒心其实就是一个环,在游戏的生命周期内会不停的循环执行部分代码,形成这个环的原因是场景中坐标系的不断变换所致。    所以AbstractGame子类负责创建这个环,当某一个子类改变这个环时,其他的子类相应的被更新。如图:    游戏的初始化,更新,关闭等等操作都在一个线程中进行。部分二:在创建图形应用时,我们需要一个包括main()函数主类。jME给我们提供了AbstractGame和它的子类,AbstractGame提供了游戏主环,这个游戏环是这个应用的中柱,驱动整个应用。该主环在

ityuany 2236

jME3基础概念篇第8章:游戏循环和状态机 - 控制游戏流程

在jME3中,状态通常实现自接口。以下是创建自定义状态的示例:java代码解读复制代码public class GameplayState extends SimpleAppState { @Override public void initialize(AppChat app) { // 初始化游戏状态,如加载游戏场景、设置游戏变量等 setupGameScene();

2401_87704405的博客 558
上一篇: 关于java范型,如何取得T.class
下一篇: Struts2和Struts1的区别及工作原理
木卫二号Coding
博客等级 码龄18年 263粉丝 228原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值