what's new.md 12 KB

3.3.0

Major updates

  • Added a ParticleHelper class to create some pre-configured particle systems in a one-liner method style (DevChris)
  • Added new MixMaterial to the Materials Library allowing to mix up to 8 textures (julien-moreau)
  • Added new PhotoDome object to display 360 photos. Demo (SzeyinLee)
  • New GUI 3D controls toolset. Complete doc + demos (Deltakosh)
  • Added Environment Texture Tools to reduce the size of the usual .DDS file (sebavan)
  • New GUI control: the Grid (Deltakosh)
  • Gizmo and GizmoManager classes used to manipulate meshes in a scene. Gizmo types include: position, rotation, scale, and bounding box (TrevorDev)
  • Particle system improvements (Deltakosh)
    • Improved CPU particles rendering performance (up to x2 on low end devices)
    • Added support for isBillboardBased. Doc
    • Added support for minScaleX, minScaleY, maxScaleX, maxScaleY. Doc
    • Added support for radiusRange for sphere 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

Updates

  • All NPM packages have latestand preview streams #3055 (RaananW)
  • Added New Tools Tab in the inspector (env texture and screenshot tools so far) (sebavan)

Core Engine

  • Added new Animatable.waitAsync function to use Promises with animations. Demo Here (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 to render another scene as a layer on top of an existing scene (TrevorDev)
  • AnimationGroup has now onAnimationGroupEnd observable (RaananW)
  • New behaviors: PointerDragBehavior, SixDofDragBehavior and MultiPointerScaleBehavior to enable smooth drag and drop/scaling with mouse or 6dof controller on a mesh (TrevorDev)
  • New serialize and Parse functions to serialize and parse all procedural textures from the Procedural Textures Library (julien-moreau)
  • Added a new mesh.ignoreNonUniformScaling to turn off non uniform scaling compensation (Deltakosh)
  • AssetsManager tasks will only run when their state is INIT. It is now possible to remove a task from the assets manager (RaananW)
  • Added sprite isVisible field (TrevorDev)
  • EnvironmentHelper will recreate ground and skybox meshes if force-disposed (RaananW)
  • Added viewport caching mechanism in engine (sebavan)
  • Added unpackFlipY caching mechanism in engine (sebavan)
  • Added rebind optimization of video texture (sebavan)
  • Fix Background Material effect caching (sebavan)
  • Prevent texture getSize to generate garbage collection (sebavan)
  • Prevent lodGenerationScale and lodGenerationOffset to force rebind (sebavan)
  • Added poster property on VideoTexture (sebavan)
  • Added onUserActionRequestedObservable to workaround and detect autoplay video policy restriction on VideoTexture (sebavan)
  • Sound now accepts MediaStream as source to enable easier WebAudio and WebRTC integrations (menduz)
  • Vector x, y and z constructor parameters are now optional and default to 0 (TrevorDev)
  • New vertical mode for sliders in 2D GUI. Demo (Saket Saurabh)

glTF Loader

  • Added support for KHR_texture_transform (bghgary)
  • Added onNodeLODsLoadedObservable and onMaterialLODsLoadedObservable to MSFT_lod loader extension (bghgary)
  • Added glTF loader settings to the GLTF tab in the debug layer (bghgary)
  • Added debug logging and performance counters (bghgary)

Viewer

  • No fullscreen button on small devices (RaananW)
  • Nav-Bar is now displayed on fullscreen per default (RaananW)
  • Viewer configuration supports deprecated values using the new configurationCompatibility processor (RaananW)
  • Shadows will only render while models are entering the scene or animating (RaananW)
  • Support for model drag and drop onto the canvas (RaananW)
  • New lab feature - global light rotation #4347 (RaananW)
  • New NPM package - babylonjs-viewer-assets, to separate the binary assets and the code of the viewer (RaananW)
  • A new HD-Toggler button allows setting a better hardware scaling rate (RaananW)

Documentation

  • Added all code comments for GUI

Bug fixes

  • VR experience helper will now fire pointer events even when no mesh is currently hit (TrevorDev)
  • RawTexture.CreateAlphaTexture no longer fails to create a usable texture (TrevorDev)
  • SceneSerializer.SerializeMesh now serializes all materials kinds (not only StandardMaterial) (julien-moreau)
  • WindowsMotionController's trackpad field will be updated prior to it's onTrackpadChangedObservable event (TrevorDev)
  • VR experience helper's controllers will not fire pointer events when laser's are disabled, instead the camera ray pointer event will be used (TrevorDev)
  • Node's setParent(node.parent) will no longer throw an exception when parent is undefined and will behave the same as setParent(null) (TrevorDev)
  • Mesh.MergeMeshes flips triangles on meshes with negative scaling (SvenFrankson)

Core Engine

  • Fixed shadowEnabled property on lights. Shadows are not visible anymore when disabled (sebavan)
  • Physics unregisterOnPhysicsCollide didn't remove callback correctly #4291 (RaananW)
  • Added missing getter and setter for global exposure in ColorCurves (RaananW)
  • Fixed an issue with view matrix when ArcRotateCamera was used with collisions (Deltakosh)
  • Fixed a bug with setting unlit on PBRMaterial after the material is ready (Wrong dirty flags) (bghgary)
  • Fixed HighlightLayer support on browsers not supporting HalfFloat (sebavan)
  • Fixed support for R and RG texture formats (sebavan)
  • Fixed updatable parameter setting in the SPS (jerome)
  • Angular and linear velocity were using the wrong method to copy values to the physics engine (RaananW)

Viewer

  • Fix Navbar Interaction on Mozilla/Firefox (SzeyinLee)
  • Fix Animation Slider Interaction on Mozilla/Firefox (sebavan)
  • Fix Animation Slider Clickable area size Cross Plat (sebavan)
  • Ground material didn't take the default main color is no material definition was provided (RaananW)
  • Model configuration was not extended correctly if loaded more than one model (RaananW)
  • It wasn't possible to disable camera behavior(s) using configuration #4348 (RaananW)
  • Animation blending was always set to true, ignoring configuration #4412 (RaananW)
  • Animation navbar now updates correctly when a new model is loaded #4441 (RaananW)
  • Non-normalized meshes didn't center and focus correctly (RaananW)
  • Meshes with skeletons could have incorrect animations (RaananW)
  • Removed element IDs from viewer's templates to allow muitiple viewers in a single page #4500 (RaananW)
  • Viewer is not using Engine.LastCreatedScene anymore, to support multiple viewers in a single page #4500 (RaananW)
  • Template location was ignored if html was defined (RaananW)

Loaders

  • STL Loader only supported binary downloads and no data: urls #4473 (RaananW)
  • OBJ Loader is now an async loader #4571 (RaananW)

Breaking changes

  • Fixing support for R and RG texture formats made us remove TextureFormat_R32F and TextureFormat_RG32F as they were mixing formats and types. Please, use the respective TextureFormat_R and TextureFormat_RG with the Float types (sebavan)