@deltakosh deltakosh released this Jun 15, 2016 · 11950 commits to master since this release

Assets 2
  • 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. demo here (sebavan)
    • Support for shaders includes (deltakosh)
    • New mesh type : LineSystem. Demo here (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. Documentation here (gleborgne)
    • Introduced new observable system to handle events. Documentation here (nockawa, deltakosh)
    • Added a new VR camera : VRDeviceOrientationArcRotateCamera (temechon)
    • Moved PBR Material to core (deltakosh)
    • StandardMaterial.maxSimultaneousLights can define how many dynamic lights the material can handle. Demo here (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)
    • Physics engine was completely rewritten, including both plugins for Oimo.js and Cannon.js. overview (RaananW)
    • Interleaved buffers are now directly supported. Create a Buffer object and then use buffer.createVertexBuffer to specify the vertex buffers (benaadams)
    • Vertex buffers can be marked as instanced to allow custom instancing attributes (benaadams)
    • Mesh can have overridenInstanceCount set to specify the number of meshes to draw when custom instancing is used (benaadams)
    • Now supporting the Earcut polygon triangulation library as part of babylon.js library. (Look for the Earcut module). The PolygonMeshBuilder class now relies on Earcut. (nockawa)
  • Updates
    • Added renderTargetTexture.useCameraPostProcesses to control postprocesses for render targets (deltakosh)
    • Added mesh.toLefthanded() to convert a mesh from right handed system (kesshi)
    • Renderlists can now also be defined using predicates (deltakosh)
    • Added support for various normal maps conventions (deltakosh)
    • 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)
    • Got Skeleton.copyAminationRange scaling better for different bone lengths (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)
    • New SPS particle property isVisible (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 doc) (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)
    • Oimo.js updated to the latest version (RaananW)
    • Added PhysicsImpostor and PhysicsJoint classes (RaananW)
    • LensFlareSystem now has both ID and name (RaananW)
    • TargetCamera has now a rotationQuaternion variable to can be used to set the camera's rotation (RaananW)
    • SSAORenderingPipeline now uses bilateral blur post-processes instead of standard blur post-process, in order to remove more efficiently the "textile effect"
    • Engine.updateDynamicVertexBuffer now has optional count as well as offset to allow partial updates (benaadams)
    • vertex attributes are only disabled if they aren't going to be reeabled by the next draw, to reduce gpu state changes (benaadams)
  • Exporters
    • Unity3D exporter: Added support for lightmaps (davrous, deltakosh)
    • Unity3D exporter: Added support for export and run (local webserver) (davrous, deltakosh)
    • 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 & depreciated SceneLoader.Load() in favor of Append() (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)
    • Fixed the device orientation cameras (both VR and non-VR cameras) (RaananW)
    • Fixed the WebVR implementation (RaananW)
    • DynamicTexture.clone() now preserves height in addition to width (dahlbyk)
    • Fixed missing some parameter default values in MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)
    • Fixed model shape initial red vertex color set to zero not formerly being taken in account in the SolidParticleSystem (jerome)
  • 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.
    • SSAORenderingPipeline.getBlurHPostProcess and SSAORenderingPipeline.getBlurVPostProcess. The SSAO rendering pipeline doesn't use standard blur post-process anymore. A bilateral blur post-process is used instead.
    • Engine.bindBuffers is now Engine.bindBuffersDirectly (benaadams)
    • Engine.bindMultiBuffers is now Engine.bindBuffers and strongly typed { [key: string]: VertexBuffer; } of buffers (benaadams)
    • Engine.createDynamicVertexBuffer takes vertices rather than capacity, creating and initalizing in one gpu instruction (benaadams)
    • Internally new Engine.bindBuffer is used rather than gl.bindBuffer which only binds when the bound buffer is changing (benaadams)
    • DynamicTexture no longer forces height/width to exponents of 2 if MIP maps are disabled (dahlbyk)