Skip to content

Releases: BabylonJS/Babylon.js

4.0.0-alpha.20

17 Jan 18:20
Compare
Choose a tag to compare
Merge pull request #5787 from sebavan/master

Relase  4.0.0-alpha.20

Former-commit-id: f5a43db0fba75602d698d0b993272fd6f95f8b73

4.0.0-alpha.12: Merge pull request #5627 from sebavan/master

11 Dec 22:31
Compare
Choose a tag to compare
4.0.0-alpha.12

Former-commit-id: 9b51f3a095f18b1bea70f833c8a01498b26a5168

4.0.0-alpha.10

23 Nov 21:58
Compare
Choose a tag to compare
Merge pull request #5555 from sebavan/master

Publish

Former-commit-id: 72bded1058a51bf2805b5ad452105f1163889f10

v3.3.0

01 Oct 20:05
Compare
Choose a tag to compare

3.3.0

Major updates

  • Documentation
  • GUI
  • Gizmo Support (TrevorDev)
    • Gizmo and GizmoManager classes used to manipulate meshes in a scene. Gizmo types include: position, scale, rotation and bounding box Doc (TrevorDev)
    • New behaviors: PointerDragBehavior, SixDofDragBehavior and MultiPointerScaleBehavior to enable smooth drag and drop/scaling with mouse or 6dof controller on a mesh Doc (TrevorDev)
    • Added attachToBoxBehavior to attach UI to a bounding box (TrevorDev)
    • Gizmo manager's internal gizmos are now public (TrevorDev)
    • Ability to customize meshes on gizmos (TrevorDev)
    • Added ignoreChildren field to bounding box to save performance when using heavily nested meshes (TrevorDev)
    • Add uniform scaling drag support to the scale gizmo (TrevorDev)
    • Support interacting with child elements (TrevorDev)
    • BoundingBox gizmo support for including/excluding descendants when computing the bounding box (TrevorDev)
    • Drag start and stop events for all gizmos (TrevorDev)
  • Particle system improvements (Deltakosh)
    • Added a ParticleHelper class to create some pre-configured particle systems in a one-liner method style. Doc (Deltakosh) / (DevChris)
    • Improved CPU particles rendering performance (up to x2 on low end devices)
    • Added support for isBillboardBased. Doc
    • Added support for billboard mode. Doc
    • Added support for minScaleX, minScaleY, maxScaleX, maxScaleY. Doc
    • Added support for radiusRange for sphere emitter. Doc
    • Added support for radiusRange and heightRange for cone emitter. Doc
    • Added new point emitter. Doc
    • Added new hemispheric emitter. Doc
    • Added support for ParticleSystem.BLENDMODE_ADD alpha mode. Doc
    • Added support for color gradients. Doc
    • Added support for pre-warming. Doc
    • Added support for minInitialRotation and maxInitialRotation. Doc
    • Added support for size gradients. Doc
    • Added support for life time gradients. Doc
    • Added support for angular speed gradients. Doc
    • Added support for velocity gradients. Doc
    • Added support for limit velocity gradients. Doc
    • Added support for drag gradients. Doc
    • Added support for noise textures. Doc
    • Added support for emit rate gradients. Doc
    • Added support for ramp gradients. Doc
    • Start size gradient support for particles. Doc (TrevorDev)
    • Attached sub emitters. Doc (TrevorDev)
    • Cylinder particle emitter and constructor in baseParticle Doc (TrevorDev)
    • Added support for cylinder particle emitter. Doc (TrevorDev)
    • Added startDelay to support delaying system start of sub emitters. Doc (TrevorDev)
    • Added support for random start cell when using animated sprite sheets. Doc
  • Added SceneComponent to help decoupling Scene from its components. (sebavan)
  • Added Environment Texture Tools to reduce the size of the usual .DDS file (sebavan)
  • Playground can now be used with TypeScript directly! Demo (Deltakosh, NasimiAsl)
  • GUI and Inspector are now ES-Modules (RaananW)
  • Added support for noise procedural textures. Doc (Deltakosh)
  • Added new PhotoDome object to display 360 photos. Demo (SzeyinLee)
  • Added Video Recorder. Doc (sebavan)

Updates

  • Updated TypeScript version to new major 3.0.1 (christopherstock)
  • All NPM packages have latest and preview streams (RaananW)
  • Added New Tools Tab in the inspector (env texture and screenshot tools so far) (sebavan)
  • Moved to gulp 4, updated dependencies to latest (RaananW)

GUI

  • Added dead key support and before key add observable to InputText. Doc (theom)
  • Added TextBlock.computeExpectedHeight, added TextWrapping.Ellipsis as TextBlock.wordWrapping possible value (adrientetar)
  • New vertical mode for sliders in 2D GUI. Demo (Saket Saurabh)
  • Added isEnabled and disabledColor property to Gui Control (barteq100)
  • Added support for connecting multiple InputText controls to VirtualKeyboard and can disconnect individual InputTexts. (brian Zinn)

Core Engine

  • Improved the way world matrices were computed (Deltakosh)
  • Added scene.rootNodes to track root nodes (ie. nodes with no parent) (Deltakosh)
  • Added scene.pickSpriteWithRay function (Deltakosh)
  • Added support for multiple clip planes. Demo (Deltakosh)
  • Added new MixMaterial to the Materials Library allowing to mix up to 8 textures (julien-moreau)
  • Added new BoundingInfo.scale() function to let users control the size of the bounding info (Deltakosh)
  • Added new Animatable.waitAsync function to use Promises with animations. Demo (Deltakosh)
  • Added the choice of forming a closed loop to the catmull-rom-spline curve3 (johnk)
  • Added support for specifying the center of rotation to textures (bghgary)
  • Added webVR support for Oculus Go (TrevorDev)
  • Added ability to not generate polynomials harmonics upon prefiltered texture creation (sebavan)
  • Added predicate function to customize the list of mesh included in the computation of bounding vectors in the getHierarchyBoundingVectors method (sebavan)
  • Added webVR constructor options: disable laser pointer toggle, teleportation floor meshes (TrevorDev)
  • Get a root mesh from an asset container, load a mesh from a file with a single string url (TrevorDev)
  • UtilityLayer class used to ren...
Read more

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)