what's new.md 7.9 KB

  • 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 (deltakosh)
    • Added support for HDR cubemaps (sebavan)
    • Support for shaders includes (deltakosh)
    • New mesh type : LineSystem (jerome)
    • SerializationHelper for complex classes using TypeScript decorators (deltakosh)
    • StandardMaterial now supports Parallax and Parallax Occlusion Mapping (tutorial) (nockawa)
    • Animations blending. See demo here. More info here (deltakosh)
    • New debuger tool: SkeletonViewer. See demo here (Adam & deltakosh)
    • Added Camera Inputs Manager to manage camera inputs (mouse, touch, keyboard, gamepad, ...) in a composable way, without relying on class inheritance (gleborgne)
    • Introduced new observable system to handle events (nockawa, deltakosh)
    • Added a new VR camera : VRDeviceOrientationArcRotateCamera (temechon)
    • Unity3D exporter: Added support for lightmaps (davrous, deltakosh)
    • Unity3D exporter: Added support for export and run (local webserver) (davrous, deltakosh)
    • Moved PBR Material to core (deltakosh)
    • StandardMaterial.maxSimultaneousLights can define how many dynamic lights the material can handle (deltakosh)
    • Introduced Canvas2D feature: a 2D engine to render primitives, sprites in 2D, text. Canvas2D can be displayed in Screen Space (above the 3D scene) or in World Space to be a part of the Scene. overview, tutorial (nockawa)
    • Added two new types of Texture: FontTexture and MapTexture (quick doc) (nockawa)
    • Added a dynamic 2D Bin Packing Algorithm, (more info here) (nockawa)
      • Introduced Canvas2D feature: a 2D engine to render primitives, sprites in 2D, text. Canvas2D can be displayed in Screen Space (above the 3D scene) or in World Space to be a part of the Scene. overview, tutorial (nockawa)
    • 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)
    • Enabled other post processes to be used when also using a 3D Rig (jcpalmer)
    • Added skeleton.getBoneIndexByName(boneName: string) (dad72)
    • Added node._children to track children hierarchy (deltakosh)
    • Added Camera.ForceAttachControlToAlwaysPreventDefault to help embedding Babylon.js in iFrames (deltakosh)
    • Support for Layer.alphaTest (deltakosh)
    • New scene.pointerDownPredicate, scene.pointerMovePredicate, scene.pointerUpPredicate to define your own predicates for meshes picking selection (deltakosh)
    • New OnPickTrigger support for spritesManager (deltakosh)
    • New SPS method digest() (jerome)
    • New SPS property computeBoundingBox (jerome)
    • Added a new OnPickOut trigger fired when you release the pointer button outside of a mesh or sprite. (deltakosh)
    • Added support for OnPointerOver and OnPointerOut for sprites. (deltakosh)
    • Added an optional predicate on Node.getDescendants, Node.getChildren to filter out Nodes based on a callback execution. (nockawa)
    • Added Ray.intersectionPlane & intersectionSegment. (nockawa)
    • LinesMesh class now supports Intersection. Added the intersectionThreshold property to set a tolerance margin during intersection with wire lines. (nockawa)
    • Geometry.boundingBias property to enlarge the boundingInfo objects (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. (quick dock) (nockawa)
      • Added RectanglePackingMap class to fit several rectangles in a big map in the most optimal way, dynamically. (nockawa)
      • Added DynamicFloatArray class to store float32 based elements of a given size (stride) into one big Float32Array, with allocation/free/pack operations to then access an optimal buffer that can be used to update a WebGLBuffer dynamically.(quick doc) (nockawa)
      • Scene.onPointerObservable property added to enable a unique Observable event for user input (see ArcRotateCamera inputs for examples) (nockawa)
    • Exporters
    • Unity exporter now support skeletons (sebavan)
    • Support for 3dsmax 2017 (deltakosh)
    • Added support for up to 8 bones influences per vertex for 3dsmax exporter (deltakosh)
    • Added console logging for .babylon file loading (jcpalmer)
    • API doc
    • class SolidParticleSystem documented (jerome)
    • class MeshBuilder documented (jerome)
    • class Mesh documented (jerome)
    • Bug fixes
    • Fixed bug with billboards and parenting (deltakosh)
    • Fixed bug with ArcRotateCamera.setTarget (deltakosh)
    • Fixed bug with OBJ Loader - All meshes were concatenated with the previous one (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.