JME2 和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:基於圖像或隨機生成的高度圖。四叉樹的支持。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值