jME3: Integrated in core and material system, supports shader libraries and permutations through defines, user-friendly (e.g don't need to know shaders to use them)
jME2: Full access to shader support through a RenderState, requires user to know and understand shaders. No support for libraries or permutations.
jME3: Integrated in core. All data loaded from files is cached inside AssetManager. User customizable. Supports threaded loading. Can load from ZIP/JAR files on the local harddrive and on an HTTP server.
jME2: Only textures are managed in TextureManager. ResourceLocatorTool is used for locating resources.
jME3: Designed for games. Abstracting keyboard, mouse and joystick into a single, binding based interface. Low level interface available for GUI access.
jME2: Layer over keyboard, mouse and joystick. Main input interface (InputManager) can cause bloat in user code. Binding system available separately through darkfrog's input binding system.
jME3: BIH (Bounding interleaved hierarchy) for static mesh picking and collision. Supports Volume vs. Tri collision.
jME2: Red-black tree over entire mesh data, less efficient collision than BIH but faster generation for animated objects. Supports Tri vs. Tri collision but not Volume vs. Tri which is more commonly used.
jME3: Geometry is a scene graph element, contains a Mesh object. Meshes contain VertexBuffers which specify # of components, type, float/int buffer. This allows a single mesh to be shared along many scene graph elements. Supports features like Level of Detail and animation internally.
jME2: Geometry/TriMesh a scene graph element contains float buffers and int buffers, VBO only supports static models, custom attributes are specified manually via GLSLShaderDataLogic and do not work if VBO is used.
jME3: Refresh flags prevent unneeded scene updates.
jME2: All data updated in updateGeometricState. Every call updates entire scene graph, locking mechanism is used to reduce unneeded updates but requires used intervention.
jME3: Only at leafs. Scriptable material system is used. materials contain techniques which contain shader & render state. Shader is customized with defines specified in material instance (by user). This is a data-driven approach to materials.
jME2: Each scene graph element contains an array of RenderStates. They are combined and stored in the leafs. No data-driven solution.
jME3: OgreXML-based animation system with many features. Currently only software skinning is supported, but hardware skinning is planned.
jME2: Too many systems, creating a big mess. jME-xml and collada use one system, md2/md3 use another, milkshape models use another, ogrexml uses another and md5 uses another.