Skip to content

Releases: BabylonJS/Babylon.js

3.3.0-beta.3

20 Aug 23:24
Compare
Choose a tag to compare
Merge pull request #4969 from sebavan/master

3.3.0-beta.3

Former-commit-id: 915e46f40c6b1bb07fdca5cb2f4a32040e451fe2

3.3.0-beta.2

14 Aug 17:33
Compare
Choose a tag to compare
Merge pull request #4944 from sebavan/master

Release 3.3.0-beta.2

Former-commit-id: df34c13ef7ef8a2cb9260014d8d849ca9b791984

v3.2.0

30 Apr 21:37
Compare
Choose a tag to compare

3.2.0

Major updates

Documentation

  • Tons of functions and classes received the code comments they deserved (All the community with a special thanks to John King)
  • Moved the class API documentation to Typedoc (deltakosh)

Updates

  • Improved animation blending (deltakosh)
  • New particle system emitter shapes: cone and sphere (IbraheemOsama)
  • Added support for 16bits TGA (deltakosh)
  • New AnimationPropertiesOverride class used to simplify setting animation properties on child animations. Documentation (deltakosh)
  • New Texture.UseSerializedUrlIfAny static property to let textures serialize complete URL instead of using side by side loading (deltakosh)
  • Added particleSystem.reset() to clear a particle system (deltakosh)
  • Added support for all RGBA orders (BGR, RGB, etc..) for the DDS loader (deltakosh)
  • Improved SceneOptimizer to provide better adaptability (deltakosh)
  • Improved scene.isReady() function which now takes in account shadows and LOD (deltakosh)
  • Added new draw modes to engine (points, lines, linesloop, linestrip, trianglestrip, trianglefan) (benaadams)
  • Added GUI Textblock.lineSpacing setter and getter to configure vertical space between lines in pixels or percentage values when working with text wrapping (carloslanderas)
  • WebVR:
    • VRExperienceHelper will create an empty controller model so that controller interactions can be used while the actual model is still loading (trevordev)
    • VRHelper now has onSelectedMeshUnselected observable that will notify observers when the current selected mesh gets unselected
      (carloslanderas)
    • VRHelper now has onBeforeCameraTeleport and onAfterCameraTeleport observables that will be notified before and after camera teleportation is triggered.
      (carloslanderas)
    • VRHelper now has the public property teleportationEnabled to enable / disable camera teleportation.
      (carloslanderas)
    • VRHelper now exposes onNewMeshPicked observable that will notify a PickingInfo object after meshSelectionPredicate evaluation
      (carloslanderas)
    • VRHelper will notify now onSelectedMeshUnselected observable to subscribers when the applied ray selection predicate does not produce a hit and a mesh compliant with the meshSelectionPredicate was previously selected (carloslanderas)
    • Support multiple simultaneous WebVR controller gui interactions in VRExperienceHelper (trevordev)
    • Ability to set a mesh to customize the WebVR gaze tracker (trevordev)
  • AssetsManager will now clear its tasks list from all successfully loaded tasks (deltakosh)
  • Added documentation to WebVRCamera and VRExperienceHelper (trevordev)
  • Introduced isStroke on HighlightLayerOptions which makes the highlight solid (PixelsCommander)
  • The observables can now notify observers using promise-based callback chain (RaananW)
  • Added base64 helper functions to Tools (bghgary)
  • Added createDefaultCamera and createDefaultLight functions to Scene (bghgary)
  • Viewer:
    • initScene and initEngine can now be extended. onProgress during model loading is implemented as observable (RaananW)
    • There is now an option to paste payload instead of a URL for configuration (RaananW)
    • Models can be loaded asynchronously using JavaScript (RaananW)
    • Scene Optimizer integrated in viewer (RaananW)
    • The viewer supports custom shaders in the configuration (RaananW)
    • Introducing the viewer labs - testing new features (RaananW)
    • Model can be normalized using configuration, camera is dynamically configured (RaananW)
    • It is now possible to update parts of the configuration without recreating the objects (RaananW)
    • Viewer supports model animations and multi-model loading (RaananW)
    • Viewer's declaration file automatically generated (RaananW)
  • Build process:
    • New watcher configuration for VSCode. Now the task only compiles changed files (sebavan)
    • Gulp process now supports multiple outputs when using webpack. (RaananW)
    • Extra/external declarations can be prepended to final declarations during build. (RaananW)
    • Extra/external declarations can be prepended to final NPM declarations during build. (RaananW)
    • NPM package now has a dependency system, updated during build. ([RaananW](https://github.c...
Read more

v3.1.0

13 Dec 01:05
Compare
Choose a tag to compare

Major updates

Updates

  • Introduced TransformNode class as a parent of AbstractMesh. This class was extensively asked by the community to hold only tranformation for a node (deltakosh)
  • Collider object is now exposed on meshes. It can be used to get precise information about mesh to mesh collisions (used with mesh.moveWithCollisions function) (deltakosh)
  • Added boundingInfo.centerOn to recreate the bounding info to be centered around a specific point given a specific extend (deltakosh)
  • Added mesh.normalizeToUnitCube to uniformly scales the mesh to fit inside of a unit cube (1 X 1 X 1 units) (deltakosh)
  • Added scene.onDataLoadedObservable which is raised when SceneLoader.Append or SceneLoader.Load or SceneLoader.ImportMesh were successfully executed (deltakosh)
  • Support for adaptiveKernelBlur on MirrorTexture (deltakosh)
  • Support for non uniform scaling. Normals are now correctly computed (deltakosh)
  • Added MultiObserver. Documentation (deltakosh)
  • Added shadowGenerator.addShadowCaster and shadowGenerator.removeShadowCaster helper functions (deltakosh)
  • Several inspector improvements (temechon)
  • New observables for actions: onBeforeExecuteObservable for all actions and onInterpolationDoneObservable for InterpolateValueAction (deltakosh)
  • New observables for gamepads: onButtonDownObservable, onButtonUpObservable, onPadDownObservable, onPadUpObservable (deltakosh)
  • New camera.storeState() and camera.restoreState() functions to store / restore cameras position / rotation / fov. Documentation (deltakosh)
  • POW2 textures rescale is now done by shaders (It was previously done using canvas) (deltakosh)
  • Added SceneLoader.CleanBoneMatrixWeights to force the loader to normalize matrix weights when loading bones (off by default) (deltakosh)
  • Added camera.onViewMatrixChangedObservable and camera.onProjectionMatrixChangedObservable (deltakosh)
  • Added support for folders when drag'n'dropping into the sandbox (deltakosh)
  • Better serialization support (deltakosh)
  • Introduced performanceMonitor class to get better FPS analysis (deltakosh)
  • GUI: Added support for pointer move events on projected UI (deltakosh)
  • Normals are generated automatically by StandardMaterial if meshes do not have normals (deltakosh)
  • Added mesh.onMaterialChangedObservable to notify when a new material is set (deltakosh)
  • Improved the SPS perfs for dead or invisible solid particles (jerome)
  • Added enableDepthSort parameter to the SPS in order to sort the particles from the camera position (jerome)
  • Added pivot property to the SPS solid particles (jerome)
  • Added the mesh facet depth sort to FacetData (jerome)
  • Added LineSystem and LineMesh per point colors (jerome)
  • Added AdvancedDynamicTexture.renderScale to allow users to render at higher DPI (deltakosh)
  • WaterMaterial works on VR (RaananW)
  • Playground has an optional createEngine function to replace the default engine. Example (RaananW)
  • Error handling in the Assets Manager was revamped and now also includes a message and an exception (if provided). Documentation (RaananW)
  • Asset Task has a state (INIT, RUNNING, DONE and ERROR). Documentation (RaananW)
  • Added new options to the physics impostor constructor - ignoreParent and diableBidirectionalTransformation. Documentation (RaananW)
  • It is now possible to define which loader to use when loading assets using the SceneLoader. Commit (RaananW)
  • Added scope option to Observerable (adam)
  • Added shadowBlur, shadowOffsetX, shadowOffsetY, shadowColor to GUI Controls (adam)
  • Added alignWithNormal to AbstractMesh (adam)

Bug fixes

  • Fixed a bug with ellipsoid offset not being taking in account on cameras (deltakosh)
  • Fixed a bug with ellipsoid offset badly taking in account on meshes (deltakosh)
  • Fixed a bug with PBR on iOS (sebavan)
  • MTLLoader didn't parse values correctly (RaananW)
  • Fixed an error with child positions of parents in the physics engine (RaananW)
  • Fixed a bug with error while executing onSuccess callbacks in the Assets manager. (RaananW)
  • Fixed a bug with the Heightmap impostor when the heightmap is scaled or rotated. Commit (RaananW)
  • Fixed an error with deterministic step. (RaananW)
  • Fixed a bug with controller jitter when in VR. ([RaananW](https://github...
Read more

v3.0.0

11 Jul 21:48
Compare
Choose a tag to compare

Major updates

Updates

  • Added syncBoneWithImpostor() and syncImpostorWithBone() to PhysicsImpostor to help with creating ragdoll effects. Demo (abow)
  • New automatic creation mode for skybox. Doc here (deltakosh)
  • New way to force compilation of materials. Doc here (deltakosh)
  • Added a Physics tab to the inspector (abow)
  • New Debug.PhysicsViewer class for viewing PhysicsImpostors. Demo (abow)
  • New ColorPicker for GUI. Demo (abow)
  • Added slerp and limits to BoneLookController. Demo (abow)
  • new Texture.readPixels() function to read texture content (deltakosh)
  • New helpers to use ExtrudePolygon. Demo (Cubees)
  • PostProcess can now use alpha blending and share outputs (deltakosh)
  • Added ArcRotateCamera.panningInertia to decouple inertia from panning inertia (deltakosh)
  • Added FIXED_EQUIRECTANGULAR_MIRRORED_MODE mode for reflection texture. Demo here (deltakosh)
  • Introduced boundingBox.centerWorld and boundingBox.extendSizeWorld (deltakosh)
  • Improved FXAA post-process (deltakosh)
  • Added Light.customProjectionMatrixBuilder to allow developers to define their own projection matrix for shadows (deltakosh)
  • Added set() function to all basic types (deltakosh)
  • Added HDRCubeTextureAssetTask to AssetManager (deltakosh)
  • Engine now uses range based fog (deltakosh)
  • VertexBuffer.updatable is now serialized (deltakosh)
  • Added intersectsMeshes() to Ray (abow)
  • New RayHelper class for easily viewing and attaching a ray to a mesh. Demo abow)
  • Mesh.applyDisplacementMap now accepts uvScale and uvOffset parameter (deltakosh)
  • Added addChild(), removeChild(), setParent() to AbstractMesh (abow)
  • Effect.getVertexShaderSource() and Effect.getFragmentShaderSource() now returns the effective shader code (including evaluation of #define) (deltakosh)
  • GroundMesh : getHeightAtCoordinates(), getNormalAtCoordinates() and getNormalAtCoordinatesToRef() can now work with rotated grounds (jerome)
  • GroundMesh, facetData and SolidParticleSystem improvement in normal computations (jerome)
  • Added AbstractMesh.addRotation() (jerome)
  • Added Quaternion.RotationQuaternionFromAxis() and Quaternion.RotationQuaternionFromAxisToRef() (jerome, thanks to abow)
  • Added parameters uvs and colors to MeshBuilder.CreateRibbon() (jerome)
  • Added parameters frontUVs and backUVs to all the methods MeshBuilder.CreateXXX() supporting sideOrientation (jerome)
  • Added Curve3.CreateCatmullRomSpline() (jerome and BitOfGold)
  • Added the optional parametercolorFilter to CreateGroundFromHeightMap() (jerome)
  • Improved the internal code of Vector3.RotationFromAxisToRef() (jerome, thanks to abow)
  • GroundMeshes are now serialized correctly (deltakosh)
  • Added mesh.markVerticesDataAsUpdatable() to allow a specific vertexbuffer to become updatable (deltakosh)
  • Added POINTERTAP and POINTERDOUBLETAP PointerEventTypes to register new Observer mask. (Demo here)[http://www.babylonjs-playground.com/?30] (yuccai)
  • Added OnDoublePickTrigger for ActionManager (yuccai)
  • Added Scene.DoubleClickDelay to set the timing within a double click event like PointerEventTypes.POINTERDOUBLETAP or ActionManager.OnDoublePickTrigger has to be processed (yuccai)
  • New material: ShadowOnlyMaterial to display shadows on transparent surfaces (deltakosh)
  • Added VertexBuffer.TangentKind to specify tangents in place of shader-calculated tangents (dewadswo, bghgary)
  • Added material.twoSidedLighting to PBRMaterial and StandardMaterial to enable flipping normals when backfaceCulling is false (BeardedGnome, bghgary)
  • Added a HTML page with embedded directions to improve the custom build process. (jcpalmer)
  • Added glTF 2.0 loader with versioning support (bghgary, thanks to BeardedGnome for ...
Read more

v2.5.0: Dist 2.5 Files moved

06 Dec 17:39
Compare
Choose a tag to compare

Major updates

  • New StandardRenderingPipeline effect to support screen space lens flare and depth of field. Demo - (Julien Moreau-Mathis)
  • New HighlightLayer object to enable highlights rendering. Demo - (sebavan)
  • Babylon.js now supports right handed system with scene.useRightHandedSystem = true (deltakosh)
  • Babylon.js is now compiled with optimize-js to get faster initial load (deltakosh)
  • New BoneIKController Demo (abow)
  • New BoneLookController Demo (abow)
  • You can now build your own version of babylon.js with gulp build-custom Doc - (deltakosh)

Updates

  • Added node.doNotSerialize to prevent specific nodes to be serialized by SceneSerializer (deltakosh)
  • Added scene.multiPick and scene.multiPickWithRay to return an array of pickedMesh objects (deltakosh)
  • Added Effect.GetVertexShaderSource() and Effect.GetFragmentShaderSource() (deltakosh)
  • New Texture.LoadFromDataString() to help loading base64 encoded textures (deltakosh)
  • Added Engine detection of the compresed texture formats supported by Hw / browser. You can specify those formats you have files for using Engine.setTextureFormatToUse(), and an appropriate one will be chosen. (Palmer-JC)
  • Added Ray.intersectsMesh, Ray.show, Ray.hide (abow)
  • Added AbstractMesh.setPivotPoint, AbstractMesh.getPivotPoint, AbstractMesh.getAbsolutePivotPoint (abow)
  • Added Debug.AxesViewer and Debug.BoneAxesViewer (abow)
  • Added Bone.getAbsolutePositionFromLocal and getLocalPositionFromAbsolute (abow)
  • Added Bone.setRotation, Bone.getRotation, Bone.setRotationQuaternion, Bone.getRotationQuaternion (abow)
  • Added Bone.getAbsolutePosition and Bone.getAbsolutePositionToRef (abow)
  • Added Bone.translate, Bone.setPosition, Bone.setAbsolutePosition (abow)
  • Added Bone.setYawPitchRoll, Bone.setRotationMatrix, Bone.setScale, Bone.setAxisAngle (abow)
  • Added Bone.rotate (abow)
  • Added Bone.scale (abow)
  • Added Camera.getDirection, AbstractMesh.getDirection, Bone.getDirection (abow)
  • Added subdivisionsX, subdivisionsY option to GroundMesh (abow)
  • New Tools.CreateScreenshot function will capture all canvas data. Previous implementation is now called CreateScreenshotUsingRenderTarget (deltakosh)
  • Cube textures are now cached by texture cache (deltakosh)
  • Added onAnimationEnd callback for sprite.playAnimation (deltakosh)
  • Added support for non square textures for sprites (deltakosh)
  • Added support for texture arrays (deltakosh)
  • Added camera.isInFrustum and camera.isCompletelyInFrustum. Can be used with meshes, submeshes and boundingInfo (deltakosh)
  • Several memory allocation reduction (benaadams)
  • Several GPU state change reduction (benaadams)
  • MapTexture: add supersample mode to double font quality. (nockawa)
  • New SPS feature : solid particle intersection with other solid particle or with any mesh particle.intersectsMesh() (jerome)
  • New invertUV parameter an all ribbon based shapes : ribbon, tube, lathe, basic and custom extrusion (jerome)
  • Text2D: new fontSuperSample setting to use high quality font (nockawa)
  • PerfCounter class added to monitor time/counter and expose min/max/average/lastSecondAverage/current metrics. Updated engine/scene current counter to use this class, exposing new properties as well to access the PerfCounter object (nockawa)
  • Better keyboard event handling which is now done at canvas level and not at window level (deltakosh)
  • New scene.hoverCursor property to define a custom cursor when moving mouse over meshes (deltakosh)
  • WebVR Camera was updated to be conform with the current specs. (RaananW)
  • New "CubeTextureTask" function will allow you to load a CubeTexture in the assetsManager. (agallouin)
  • Scene.stopAnimation has now an optional second parameter, the name of the animation to kill. Usefull if a mesh has multiple animations. (agallouin)

Bug fixes

  • Fixed issue with SkeletonViewer not displaying correctly with meshes that have a PoseMatrix (abow)
  • Fixed issue with Quaternion.toEulerAnglesToRef (abow)
  • Fixed issue with Animatable.goToFrame (abow)
  • Fixed issue with instancse and viewports (deltakosh)
  • Fixed issue with FreeCamera not working in fullscreen or when pointer locked (abow)
  • MapTexture: Font Characters are now correctly aligned on Chrome (nockawa)
  • Fixed some missing parameter default values in MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)
  • Fixed cross vector calculation in _computeHeightQuads() that affected all the GroundMesh.getHeightAtCoordinates() and GroundMesh.getNormalAtCoordinates() methods (jerome)
  • Fixed Mesh.CreateDashedLines() missing instance parameter on update (jerome)
  • Added BBox update on each ribbon based shape (ribbon, tube, extrusion, etc) on dynamic updates (jerome)
  • Fixed model shape initial red vertex color set to zero not formerly being taken in account in the SolidParticleSystem (jerome)
  • Fixed billboard when the SPS mesh is parented in the SolidParticleSystem (jerome)
  • Fixed RenderTargetTexture meshes selection (deltakosh)
  • Fixed camera speed computation (deltakosh)
  • Fixed bug with instances, LOD and edgesRendering (deltakosh)

Breaking changes

  • FollowCamera.target was renamed to FollowCamera.lockedTarget to avoid conflicts (deltakosh)
  • Removed legacy shaders support (deltakosh)

v2.4.0

15 Jun 18:09
Compare
Choose a tag to compare
  • 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](https://github.c...
Read more

v2.3.0

03 Feb 17:16
Compare
Choose a tag to compare
  • Major updates
  • Updates
    • Audio files are now saved for offline access (davrous)
    • New CubeTexture.CreateFromImages() (deltakosh)
    • Bounding info can be locked and updated (bb.isLocked and bb.update()) (deltakosh)
    • 2D layers now have a scale and offset properties (deltakosh)
    • TouchCamera can now fallback to regular mouse/keyboard controls (deltakosh)
    • Added ability to skip current prepared Action to next active Action (chained by Action.then(Action)) (vouskprod)
    • Added new event triggers ActionManager.OnLongPressTrigger and ActionManager.OnPickDownTrigger (vouskprod)
    • new Mesh.convertToUnIndexedMesh() to create meshes with no indices (which could be faster when vertex reuse is low and vertex structure is small) (deltakosh)
    • Unity3D exporter will recognise instances of prefabs (ozRocker)
    • New parse mechanism (for loading .babylon file) (deltakosh)
    • New button to log the camera position in the debug layer (temechon)
    • Shader files (fragment and vertex) can now be specified via direct URL (vouskprod)
    • Added Animatable.goToFrame() (deltakosh)
    • Fixed behavior or Animation.CreateAndStartAnimation and added Animation.CreateMergeAndStartAnimation to reproduce previous behavior (deltakosh)
    • Adding StandardMaterial.linkEmissiveWithDiffuse to, well, link emissive with diffuse value. (With)[http://www.babylonjs-playground.com/#2FPUCS#2] and (without)http://www.babylonjs-playground.com/#2FPUCS#1
    • Adding support for equi-rectangular mapping. See demo here (deltakosh)
    • Sprites and particles scheduler updated to be resolved before transparent objects (deltakosh)
    • Added ability to deactivate ArcRotateCamera panning mechanism (by setting panningSensibility to 0) (vouskprod)
    • Added DirectionalLight.autoUpdateExtends to prevent directional lights to adapt to scene extends (deltakosh)
    • Added a new parameter to debugLayer.show() to define root element to use (deltakosh)
    • New MeshBuilder class used to create all kind of mesh shapes (deltakosh)
    • Added Scene.constantlyUpdateMeshUnderPointer to improve performance when moving mouse (deltakosh)
    • Added StandardMaterial.disableLighting (deltakosh)
    • Improved reflection shader performance (deltakosh)
    • New Material.sideOrientation property to define clockwise or counter-clockwise faces selection. Demo here (deltakosh)
    • It is now possible to create a custom loading screen. PR (RaananW)
    • Per face color and texture feature in MeshBuilder.CreateCylinder() (jerome)
    • Arc feature in CreateCylinder, CreateSphere, CreateTube, CreateDisc and CreateLathe (jerome)
    • Slice feature in MeshBuilder.CreateSphere() (jerome)
    • closed parameter in MeshBuilder.CreateLathe() (jerome)
    • cap parameter in MeshBuilder.CreateLathe() (jerome)
    • diameter, hasRings, enclose parameters in MeshBuilder.CreateCreateCylinder() (jerome)
    • added getNormalAtCoordinates() and getNormalAtCoordinatesToRef() methods in MeshBuilder.CreateLathe() (jerome)
    • Material.dispose() now removes disposed material from meshes (deltakosh)
    • New Material.getBindedMeshes() function (deltakosh)
    • OimoJS Plugin now uses Quaternions exclusively and calculates body rotations correctly. PR (RaananW)
    • It is now possible to get the physics engine's body and wolrd objects using the physics engine. PR (RaananW)
    • new Heightmap Impostor for Cannon.js physics engine. PR, Demo (RaananW)
    • A plane mesh can be created with a source plane (math). PR (RaananW)
    • AbstractMesh.onPhysicsCollide will be triggered when a physics-enabled mesh collides against another. PR (RaananW)
    • Added scene onPointerMove public callback. PR (RaananW)
    • Added streaming support for BABYLON.Sound (davrous)
    • Added collisionsEnabled and workerCollisions for serialization PR (Dad72)
    • Changed from a fixed maximum of bone influencers, 4, to variable, 1-8 (Palmer-JC)
      • Support for added to Blender Exporter (Palmer-JC)
    • Float32Arrays can now directly be specified for vertex data attributes, Mesh.updateVerticesDataDirectly deprecated (Palmer-JC)
    • Added panning axis to the ArcRotateCamera PR (mstdokumaci, RaananW)
    • Added Tmp class for internal use in order to improvement the memory management, jerome)
    • Added `Scene.swithActiveCamera(newCamera, attachContro...
Read more

v2.2.0

22 Sep 20:39
Compare
Choose a tag to compare
  • Major updates
  • Updates
    • Adding layerMask to lensFlareSystem, spritesManager, particleSystem (deltakosh)
    • Adding emissiveAsIllumination and reflectionFresnelFromSpecular for StandardMaterial (deltakosh)
    • Adding isEnabled for ProceduralTexture (deltakosh)
    • Compression supported for raw textures (deltakosh)
    • New TonemapPostProcess. See demo here (deltakosh)
    • New options parameters for Box, Sphere, Plane and Ground. See demo here (deltakosh)
    • Added per face UV and Colors options for CreateBox (jerome)
    • Added darkness support for soft shadows (deltakosh)
    • Added scene.getLensFlareSystemByName() (deltakosh)
    • Added LensFlareSystem.setEmitter() (deltakosh)
    • Added Color3.FromHexString() and Color3.toHexString() (deltakosh)
    • Added Color4.FromHexString() and Color4.toHexString() (deltakosh)
    • Added mesh.computeBonesUsingShaders to allow developers to disable HW skinning for low end devices (deltakosh)
    • Added material.disableDepthWrite (default is off) (deltakosh)
    • Added material.alphaMode (default is BABYLON.Engine.ALPHA_COMBINE, can be set to BABYLON.Engine.ALPHA_ADD, *_SUBTRACT, *_MULTIPLY or *_MAXIMIZED ) (deltakosh, jahow)
    • Added Animatable.reset() function (deltakosh)
    • New parameter for ArcRotateCamera.zoomOn to preserve maxZ (deltakosh)
    • PickingInfo.getNormal can now use either vertices normals or vertices positions (deltakosh)
    • Meshes can now support uv2, uv4, uv5 and uv6 for ShaderMaterials (deltakosh)
    • Panning support for ArcRotateCamera (julien-moreau)
    • Vertex color and diffuse color can now be mixed (deltakosh)
    • Depth-of-field improvements PR (jahow)
    • Engine now initialize WebGL with preserveDrawingBuffer = false by default (deltakosh)
    • withEpsilon with a user defined epsilon PR (RaananW)
    • Adding onAfterRender function in BABYLON.PostProcess PR (julien-moreau)
    • Improved shaders optimizer to remove specular code when not needed (deltakosh)
    • Added some utility functions to Vector2/3/4 PR (jahow)
    • Added split angularSensibiliy into X and Y for arcRotateCamera PR (Remwrath)
    • Added function getFrontPosition(distance) for Camera PR (dad72)
    • New rawTexture.update function (robgdl)
    • Changes to meshes transform baking and added flipFaces PR (jahow)
    • SerializeMesh serializes a mesh or array of meshes to be imported with the loader's ImportMesh optionally including their children and/or parents. PR PR2 (RaananW)
    • onCollide callback for meshes calling moveWithCollisions. PR (RaananW)
    • Unity Exporter now uses game object name as the Babylon.js mesh name, instead of mesh name which is not unique when dealing with primitive objects (cubes, spheres, planes, etc..) (ozRocker)
    • Path3D construction : new raw parameter, if true returns a non-normalized Path3D object (jerome)
      • Added Vector3.RotationFromAxisToRef() : same as RotationFromAxis() but assigns a reference (jerome)
      • ComputeNormals optimization : less object allocation and normal array initialization (jerome)
      • Ribbon : closePath parameter now creates a smooth seam (jerome)
  • Bug fixes
    • Fixing bug with rig cameras positioning (deltakosh)
    • Instance meshes' geometry ID is now serialized correctly. PR (RaananW)
    • Bug fix at set numberOfBricksWidth PR (Polatouche)
  • Breaking changes
    • In LensRenderingPipeline: parameter dof_focus_depth (range 0..1) is deprecated, use dof_focus_distance (range 0..infinity) instead (jahow)
    • Cylinder Mesh complete reimplementation for better normals (jerome)
    • RotationFromAxis() : fixed the dot product case outside the range -1, 1
    • Path3D : fix wrong normal/binormal due to normalization approximations (jerome)

v2.1

08 Jun 16:29
Compare
Choose a tag to compare
  • Major updates
    • Collisions can now be offloaded on webworkers (raananw)
    • SIMD.js support for math library. See demo (deltakosh)
    • Unity 5 scene exporter. More info here (davrous, deltakosh)
    • New Mesh.CreateDecal() function to create decals. See demo. More info here (deltakosh)
    • New tool for debugLayer: You can now dump renderTargets to see their content (deltakosh)
    • Complete shadows code rework: New bias property for ShadowGenerator, new orthogonal shadows for directional shadows, automatic projection size for directional lights, new BlurVarianceShadowMap filter. See demo. Documentation updated here (deltakosh)
    • New lens effects rendering pipeline. More info here (jahow)
    • New basic mesh type: Ribbons. See demo. More info here (jbousquie)
    • New BABYLON.Mesh.ExtrudeShape and BABYLON.Mesh.ExtrudeShapeCustom. More info here (jbousquie)
    • New Loaders folder with a first additionnal plugin: STL (raananw, deltakosh)
    • Gulp building process revamped, updated and simplified and now includes a config.json (raananw)
  • Updates
    • Better beta angle support for ArcRotateCamera (raananw)
    • Better video textures support (deltakosh)
    • Cameras hierarchy rework (deltakosh)
    • New Camera.setCameraRigMode to control 3D rendering of any camera (Anaglyph, Stereo, VR) (Palmer-JC)
    • VR cameras can disable distortion postprocess to get more performance (deltakosh)
    • New cameras: AnaglyphGamepadCamera, StereoscopicFreeCamera, StereoscopicArcRotateCamera, StereoscopicGamepadCamera (deltakosh)
    • New MultiMaterial.clone() function (deltakosh)
    • Faster mesh.computeNormals() function (jbousquie)
    • Added the ability to dynamically update or to morph an mesh instance (jbousquie)
    • Allow static Mesh.MergeMeshes to work with clones & Mesh subclasses (Palmer-JC)
    • Added mesh.freezeWorldMatrix() for static meshes (deltakosh)
    • Added mesh.freezeNormals() for parametric mesh updates (jbousquie)
    • Added Vector3.RotationFromAxis() to get Euler rotation angles from a target system (jbousquie)
    • Added mesh.alwaysSelectAsActiveMesh to disable frustum clipping for a specific mesh (deltakosh)
    • Added updateMeshPositions method (jbousquie)
    • Callbacks for geometry changes (raananw)
    • Allow Engine to run for CocoonJS with standard html, including devices where the hardware scaling != 1 (Palmer-JC)
    • Material onBind callback improvement (jahow)
    • New front/back/double side feature for meshes (jbousquie)
    • New basic mesh type: Disc (jbousquie)
    • New basic mesh type : Dashed Lines (jbousquie)
    • New basic mesh type : Lathe (jbousquie)
    • New basic mesh type: Tube. More info here (jbousquie)
    • Allow ComputeNormals to work with Typed Arrays & the Typescript Level (Palmer-JC)
    • Added uniqueId for nodes (raananw)
    • Added Mesh.onLODLevelSelection(distance: number, mesh: Mesh, selectedLevel: Mesh) callback (deltakosh)
    • Added Material.zOffset to help reducing z-fighting (deltakosh)
    • Added excludeWithLayerMask to lights (Palmer-JC)
    • Added includeOnlyWithLayerMask for filtering meshes (Palmer-JC)
    • Mesh Default layerMask changed to allow more "special cameras filtering" (Palmer-JC)
    • Sprite can now have .width and .height properties (deltakosh)
    • Ability to register events based on mesh/camera/light addition and deletion (raananw)
    • New Curve object (jbousquie) More info here
    • New Path3D object (jbousquie) More info here
    • New 'color correction' post process (jahow)
    • Added sampling mode as a parameter for SpriteManager (jahow)
    • RenderTexture can now be saved to a file (deltakosh)
    • Better attributes management (deltakosh)
    • Source conform to typescript 1.4 (raananw)
    • Adding subMeshId property in PickingInfo structure (deltakosh)
    • No more error when a manifest is not found (deltakosh)
  • Bug fixes
    • Initial quaternion fix for OIMO plugin (raananw)
    • ArcRotateCamera pinch zoom debug (vousk)
    • Fixing animatable bug when animation is over (temechon)
    • useCameraPostProcess whenever there is a special camera in use (m0ppers)
    • delta in BoundingBox's intersectsPoint is now calculated correctly (raananw)
    • textures cache fixed (deltakosh)
    • ImportMesh now imports referenced geometries of selected meshes (raananw)
    • CSG toMesh() and FromMesh() now support meshes without quaternion (raananw)
  • Breaking changes
    • OculusCamera was removed (deltakosh)
    • VRDeviceOrientationCamera was renamed to VRDeviceOrientationFreeCamera (deltakosh)
    • WebVRCamera was renamed to WebVRFreeCamera (deltakosh)
    • VideoTexture does not require a size parameter anymore. The new constructor is: constructor(name: string, urls: string[], scene: Scene, generateMipMaps = false, invertY = false, samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE) (deltakosh)