- 2.4.0: - **Major updates** - New refraction channel for Standard material (including fresnel support). Refraction texture can be provided by a reflection probe or a refraction texture. [See demo here](http://www.babylonjs.com/Demos/refraction/) ([deltakosh](https://github.com/deltakosh)) - Added support for HDR cubemaps ([sebavan](https://github.com/sebavan)) - Support for shaders includes ([deltakosh](https://github.com/deltakosh)) - new mesh type : `LineSystem` ([jerome](https://github.com/jbousquie)) - SerializationHelper for complex classes using TypeScript decorators ([deltakosh](https://github.com/deltakosh)) - StandardMaterial now supports Parallax and Parallax Occlusion Mapping ([nockawa](https://github.com/nockawa)) - Animations blending. See [demo here](http://www.babylonjs-playground.com/#2BLI9T#3). More [info here](NEED DOC!) ([deltakosh](https://github.com/deltakosh)) - New debuger tool: SkeletonViewer. See [demo here](Demo available here: http://www.babylonjs-playground.com/#1BZJVJ#8) (Adam & [deltakosh](https://github.com/deltakosh)) - Added Camera Inputs Manager to manage camera inputs (mouse, touch, keyboard, gamepad, ...) in a composable way, without relying on class inheritance [gleborgne](https://github.com/gleborgne) - Introduced new observable system to handle events ([nockawa](https://github.com/nockawa), [deltakosh](https://github.com/deltakosh)) - Added a new VR camera : VRDeviceOrientationArcRotateCamera [temechon](https://github.com/Temechon) - Unity3D exporter: Added support for lightmaps ([davrous](https://github.com/davrous), [deltakosh](https://github.com/deltakosh)) - Unity3D exporter: Added support for export and run (local webserver) ([davrous](https://github.com/davrous), [deltakosh](https://github.com/deltakosh)) - Moved PBR Material to core ([deltakosh](https://github.com/deltakosh)) - **Updates** - Added postprocess.enablePixelPerfectMode to avoid texture scaling/stretching when dealing with non-power of 2 resolutions. cannot be used on post-processes chain ([deltakosh](https://github.com/deltakosh)) - Added skeleton.getBoneIndexByName(boneName: string) [dad72](https://github.com/dad72) - Added node._children to track children hierarchy ([deltakosh](https://github.com/deltakosh)) - Added Camera.ForceAttachControlToAlwaysPreventDefault to help embedding Babylon.js in iFrames ([deltakosh](https://github.com/deltakosh)) - Support for Layer.alphaTest ([deltakosh](https://github.com/deltakosh)) - New scene.pointerDownPredicate, scene.pointerMovePredicate, scene.pointerUpPredicate to define your own predicates for meshes picking selection ([deltakosh](https://github.com/deltakosh)) - New OnPickTrigger support for spritesManager ([deltakosh](https://github.com/deltakosh)) - New SPS method `digest()` ([jerome](https://github.com/jbousquie)) - New SPS property `computeBoundingBox` ([jerome](https://github.com/jbousquie)) - Added a new OnPickOut trigger fired when you release the pointer button outside of a mesh or sprite. ([deltakosh](https://github.com/deltakosh)) - Added support for OnPointerOver and OnPointerOut for sprites. ([deltakosh](https://github.com/deltakosh)) - Added an optional predicate on Node.getDescendants, Node.getChildren to filter out Nodes based on a callback execution. ([nockawa](https://github.com/nockawa)) - Added Ray.intersectionPlane & intersectionSegment. ([nockawa](https://github.com/nockawa)) - LinesMesh class now supports Intersection. Added the intersectionThreshold property to set a tolerance margin during intersection with wire lines. ([nockawa](https://github.com/nockawa)) - Geometry.boundingBias property to enlarge the boundingInfo objects ([nockawa](https://github.com/nockawa)) - Tools.ExtractMinAndMax & ExtractMinAndMaxIndexed now supports an optional Bias for Extent computation. - Added StringDictionary class to implement an efficient generic typed string dictionary based on Javascript associative array. ([nockawa](https://github.com/nockawa)) - Added RectanglePackingMap class to fix several rectangles in a big map in the most optimal way. ([nockawa](https://github.com/nockawa)) - Scene.onPointerObservable property added to enable a unique Observable event for user input (see ArcRotateCamera inputs for examples) ([nockawa](https://github.com/nockawa)) - **API doc** - class `SolidParticleSystem` documented ([jerome](https://github.com/jbousquie)) - class `MeshBuilder` documented ([jerome](https://github.com/jbousquie)) - class `Mesh` documented ([jerome](https://github.com/jbousquie)) - **Bug fixes** - Fixed bug with billboards and parenting ([deltakosh](https://github.com/deltakosh)) - Fixed bug with ArcRotateCamera.setTarget ([deltakosh](https://github.com/deltakosh)) - Fixed bug with OBJ Loader - All meshes were concatenated with the previous one ([Temechon](https://github.com/Temechon)) - **Breaking changes** - `VertexData.CreateLines()` removed as `MeshBuilder.CreateLines()` now calls `MeshBuilder.CreateLineSystem()` - `scene.onNewXXXAdded` and `scene.onXXXRemoved' callbacks were removed and replaced by `scene.onNewXXXAddedObservable` and `scene.onXXXRemovedObservable` - `Material.dispose` does not dispose textures by default. You have to call `material.dispose(false, true)` to get the previous behavior.