AmmoJSPlugin
scene file loader (MackeyK24)customAnimationFrameRequester
to allow sessions to hook into engine's render loop (TrevorDev)Camera customDefaultRenderTarget
to allow cameras to render to a custom render target (e.g., XR framebuffer) instead of the canvas (TrevorDev)webXRSession
(TrevorDev)webXRSessionManager
to bridge xrSession
to babylon's camera/engine (TrevorDev)webXRExperienceHelper
to setup a default XR experience (TrevorDev)WebXREnterExitUI
and WebXRManagedOutputCanvas
classes to configure the XR experience (TrevorDev)WebXRInput
to manage controllers for the XR experience (TrevorDev)control.useBitmapCache
to optimize re-rendering of complex controls by keeping a cached version (Deltakosh)cut
, copy
and paste
events (Saket Saurabh)solidParticle.isInFrustum()
(jerome)transformNodes
array and materials
array of the Scene
. As a consequence, the order of the element within these arrays might change during a removal.instances
array of a Mesh
. As a consequence, the order of the element within this array might change during a removal.Array.splice
on the scene.meshes
array and on the engine._uniformBuffer
when removing an element. As a consequence, the order of the element within these arrays might change during a removal.useGeometryUniqueIdsMap
in the Scene
constructor options. When set to true, each Scene
isntance will have and will keep up-to-date a map of geometry per uniqueId
. This is to avoid browsing all the geometries of the scene when a new one is being pushed. It also enables a removal of geometry in constant time. Disabled by default.useMaterialMeshMap
in the Scene
constructor options. When set to true, each Material
isntance will have and will keep up-to-date a map of its bound meshes. This is to avoid browsing all the meshes of the scene to retrieve the ones bound to the current material when disposing the Material. Disabled by default.useClonedMeshhMap
in the Scene
constructor options. When set to true, each Mesh
will have and will keep up-to-date a map of cloned meshes. This is to avoid browsing all the meshes of the scene to retrieve the ones that have the current mesh as source mesh. Disabled by default.blockfreeActiveMeshesAndRenderingGroups
property in the Scene
, following the same model as blockMaterialDirtyMechanism
. This is to avoid calling Scene.freeActiveMeshes
and Scene.freeRenderingGroups
for each disposed mesh when we dispose several meshes in a row. Enable by setting blockfreeActiveMeshesAndRenderingGroups
to true
just before disposing the meshes, then set it back to false
just after.ShaderMaterial
of a LinesMesh
.isIdentity
cached value within a Matrix
.Material.markAsDirty
function.Vector3.UnprojectRayToRef
static function to avoid computing and inverting the projection matrix twice when updating a Ray.inputText.onKeyboardEventProcessedObservable
(Deltakosh)button.image
and button.textBlock
to simplify access to button internal parts (Deltakosh)slider.displayThumb
to show/hide slider's thumb (Deltakosh)grid.rowCount
, grid.columnCount
and grid.getChildrenAt()
(Deltakosh)Control.AllowAlphaInheritance
to let users control the way alpha is used (inherited or not) (Deltakosh)inputText
(Saket Saurabh)inputText.onTextCopyObservable
, inputText.onTextCutObservable
and inputText.onTextPasteObservable
to inputText (Saket Saurabh)AdvancedDynamicTexture.onClipboardObservable
to observe for clipboard events in AdvancedDynamicTexture(Saket Saurabh)inputText.onFocusSelectAll
to allow complete selection of text on focus event.(Saket Saurabh)inputText
(Saket Saurabh)reflectionMatrix
support for more coordinatesMode
's (Dennis Dervisis)WebRequest
class to centralize all network requests. Can be used to configure headers of all network requests (Deltakosh)WebRequest.CustomRequestHeaders
, WebRequest.UseCustomRequestHeaders
to send Custom Request Headers alongside XMLHttpRequest's i.e. when loading files (Tools.Loadfile) from resources requiring special headers like 'Authorization' (susares)shadowGenerator.onBeforeShadowMapRenderMeshObservable
(Deltakosh)scene.customLODSelector
to let users define their own LOD rules (Deltakosh)animatable.onAnimationLoopObservable
(Deltakosh)animationGroup.onAnimationLoopObservable
(Deltakosh)Engine.onNewSceneAddedObservable
(Deltakosh)PassCubePostProcess
to render cube map content (Deltakosh)Tools.BuildArray
for array initialisation (barroij)IOfflineSupport
interface to hide IndexedDB (Deltakosh)PBRMaterial
and StandardMaterial
now use hot swapping feature for shaders, allowing them to keep using a previous shader while a new one is being compiled (Deltakosh)BoundingBox
and BoundingSphere
API and behavior for clarity and simplicity, removing BoundingBox
's method setWorldMatrix
and disallowing modification of the underlying world matrix except by calling reConstruct
or update
(barroij)Material.markAsDirty
and all the markXXXDirty
methods early out when scene.blockMaterialDirtyMechanism
is true. (barroij)wrap
boolean parameter to CreateBox
options to orientate images vertically on box sides (JohnK)GridMaterial
(Deltakosh)Layer
are now supported in RenderTargetTexture
(Sebavan).serialize
and .Parse
functions in ReflectionProbe
to retrieve reflection probes when parsing a previously serialized material (julien-moreau)clearGizmoOnEmptyPointerEvent
options and onAttachedToMeshObservable
event to GizmoManager (TrevorDev)setDirection
function from lookAt
for transform node (bghgary)AxesViewer
(bghgary)UNPACK_FLIP_Y_WEBGL
is not supported by KTX (TrevorDev)boundingBoxGizmo
without needing a parent (TrevorDev)InputsManager
and keyboard bindings for FollowCamera
(mrdunk)FollowCamera InputsManager
when limiting rotation to 360 degrees (mrdunk)FollowCamera InputsManager
, allowed choice of modifier key (Alt, Ctrl and/or Shift) for each camera movement axis (mrdunk)MouseWheel
bindings for FollowCamera
(mrdunk)MouseWheel
bindings for FollowCamera
orientations (mrdunk)FollowCamera
parameters (mrdunk)ArcRotateCamera
to use new BaseCameraPointersInput
(mrdunk)GlowLayer
(Sebavan)forceDisposeChildren
to multiMaterial.dispose
(danjpar)Pointer
bindings for FollowCamera
(mrdunk)multiMultiMaterials
to mesh.mergeMeshes
(danjpar)vrExperienceHelper
(TrevorDev)OnAfterEnteringVRObservable
to webVRHelper
(TrevorDev)BaseCameraPointersInput
and ArcRotateCameraPointersInput
(mrdunk)onActiveCameraChanged
from being fired when rendering rig cameras (TrevorDev)MeshExploder
class (danjpar)Observable
s to make observers top or bottom priority (TrevorDev)DeviceOrientationCamera
from being modified by mouse input when the orientation sensor is active (TrevorDev)LoadScriptAsync
tools helper function MackeyK24)customShaderNameResolve
to PBRMaterialBase
to allow subclasses to specify custom shader information MackeyK24)PBRCustomMaterial
to material library to allow easy subclassing of PBR materials MackeyK24)PBRCustomMaterial
Lockphase)StandardRenderingPipeline
when HDR is enabled (julien-moreau)EquiRectangularCubeTexture
class to enable the usage of browser-canvas supported images as CubeTexture
s (Dennis Dervisis)EquiRectangularCubeTextureAssetTask
to be able to load EquiRectangularCubeTexture
s via Asset Manager (Dennis Dervisis)Matrix.RotationAlignToRef
method to obtain rotation matrix from one vector to another (sable)ArcRotateCamera
will now cache the necessary matrices when modifying its upVector, instead of calculating them each time they're needed (sable)DracoCompression
to use web workers (bghgary)LOD Babylon Mesh Entities
to support to babylonFileLoader.ts (MackeyK24)TransformNode
objects instead of Mesh
objects for glTF nodes without geometry (bghgary)__root__
transform nodeloadMeshPrimitiveAsync
extension support (MackeyK24)KHR_lights_punctual
cameraOffset
vector property in the SkyMaterial
to get an offset according to the horizon (julien-moreau)GradientMaterial
to consider disableLighting working as emissive (julien-moreau)WaterMaterial
(julien-moreau)TerrainMaterial.isReadyForSubMesh
to remove WebGL warnings (julien-moreau)MixMaterial.isReadyForSubMesh
to remove WebGL warnings (dad72)ArcRotateCamera.setTarget
(position was sometimes wrong) (Deltakosh)TransformNode.setDirection
(orientation was wrong) (Deltakosh)ArcRotateCamera
control when upVector
was modified (Deltakosh)anaglyph
mode for Free and Universal cameras (Deltakosh)FileLoader
's loading of a skybox and added a parsed value for whether to create with PBR or STDMaterial (Palmer-JC)CreateScreenshotUsingRenderTarget
stretches mirror textures when setting both width and height (TrevorDev)gltfLoader
transformNode
was changed (TrevorDev)fixedDragMeshScreenSize
stopped working and allow rotating through bounding box (TrevorDev)PointerDragBahavior
using Mesh
as base type, causing type-checking problems with AbstractMesh
(Poolminer)TransformNode
lookAt
not working in world space when node's parent has rotation (TrevorDev)MakeNotPickableAndWrapInBoundingBox
had unexpected behavior when input had scaling of 0 on an axis (TrevorDev)InputText
(Saket Saurabh)SixDofDragBehavior
when the camera is parented (TrevorDev)absolutePosition
instead of pivotPosition
(TrevorDev)receiveShadows
on an instanced mesh (TrevorDev)TransformNode.rotationQuaternion
to include undefined as one of the potential return values (nathankmiller)connectedPivot
joint parameter (TrevorDev)BoundingBoxGizmo
on a child node shouldn't remove its parent, rotation gizmo should work on object with parent (TrevorDev)maxForce
in Oimo plugin and set default force to be consistent with others, Cannon.js support no impostor, Cannon.js cylinder axis, ammo.js wake up impostor when apply force/impulse (TrevorDev)PointerDragBehavior
should not let the drag plane get out of sync when rotating the object during dragging (TrevorDev)submitFrame
fails (TrevorDev)FollowCameraPointersInput
(mrdunk)Tools.CreateScreenshot
stopped working (TrevorDev)import "@babylonjs/core/Helpers/sceneHelpers";
) (TrevorDev)AssetContainer
should not dispose objects it doesn't contain. Support for environmentTexture add/remove (TrevorDev)mesh.visibility
not working properly when certain material properties are set that changes the interpretation of alpha (e.g. refraction, specular over alpha, etc.) (bghgary)AssetContainer
(TrevorDev)ArcRotateCamera
divide by zero error (when looking along up axis) in rebuildAnglesAndRadius
(sable)ArcRotateCamera
rebuildAnglesAndRadius
when upVector
modified (sable)EquiRectangularCubeTexture
/HDRCubeTexture
when the caching returns an empty or corrupt InternalTexture
(Dennis Dervisis)onError
callback chain) in case an EquiRectangularCubeTexture
cannot be loaded, because of a wrong path or IO problems (Dennis Dervisis)mesh.alwaysSelectAsActiveMesh
preventing layerMask to be taken in account (Deltakosh)LinesMesh
intersectionThreshold
by using its value directly when the intersection against a Ray
is checked instead of extending the BoundingInfo
accordingly (barroij)InstancesLinesMesh
class used to create instance of LinesMesh
so that each instance can have its own intersectionThreshold
value (barroij)LineEdgesRenderer
used for edge rendering of LinesMesh
to properly handle LinesMesh
s made of disconnected lines and made it work for instance of LinesMesh
(barroij)Matrix.toNormalMatrix
function (barroij)DeepImmutable<T>
type to specifiy that a referenced object should be considered recursively immutable, meaning that all its properties are readonly
and that if a property is a reference to an object, this object is also recursively immutable. (barroij)VideoTexture
poster property when autoplay is turned off.MeshBuilder.CreatePlane
when specifying a source plane (sable, bghgary)infiniteDistance
not working anymore (Sebavan)SolidParticle
BoundingSphere
update within the SolidParticleSystem
(barroij)LinesMesh
, the index of the picked line is returned in the faceId
property of the PickingInfo
, as we do with face index the picked Mesh
is made of triangle faces (barroij)updateIndices
leads to changing the size of the index buffer by recreating the subMeshes in that case (barroij)PointerDragBehavior
validateDrag
predicate to stop dragging to specific points (TrevorDev)WebRequest.open
to crash if WebRequest.CustomRequestHeaders
are set #6055(susares)Mesh.clone
to crash if no physicsEngineComponent is used (barroij)isInFrustum
to check rigCameras
so that viewMatrix
updates for rigCameras
can notify their parent (TrevorDev)LinesMesh
(rendering and picking) (barroij)loadedAnimationGroups
to MeshAssetTask
(bghgary)linkTransformNode
to BabylonFileLoader
(MackeyK24)WebRequest
(which provides the same signatures) (Deltakosh)Database.IDBStorageEnabled
to false by default (Deltakosh)Database.openAsync
to Database.open
(Deltakosh)scene.database
to scene.offlineProvider
(Deltakosh)BoundingBox.setWorldMatrix
and changed BoundingBox.getWorldMatrix
to return a DeepImmutable<Matrix>
(barroij)Matrix
's accessor m
and methods toArray
and asArray
to return a DeepImmutable<Float32Array>
as the underlying array is not supposed to be modified manually from the outside of the class (barroij)SceneInstrumentation
class unless otherwise specified (Deltakosh)
scene.getInterFramePerfCounter()
scene.interFramePerfCounter
scene.getLastFrameDuration()
scene.lastFramePerfCounter
scene.getEvaluateActiveMeshesDuration()
scene.evaluateActiveMeshesDurationPerfCounter
scene.getRenderTargetsDuration()
scene.getRenderDuration()
scene.renderDurationPerfCounter
scene.getParticlesDuration()
scene.particlesDurationPerfCounter
scene.getSpritesDuration()
scene.spriteDuractionPerfCounter
engine.drawCalls
engine.drawCallsPerfCounter
shadowGenerator.useVarianceShadowMap
(superceded by useExponentialShadowMap
)shadowGenerator.useBlurVarianceShadowMap
(superceded by useBlurExponentialShadowMap
)InstancedMesh
objects when two nodes point to the same mesh (bghgary)TransformNode
objects instead of Mesh
objects for glTF nodes without geometry (bghgary)
Mesh
object and is still the first in the returned list of meshesTransformNode
objects are excluded from the returned list of meshes when importing meshTransformNode
objects do not raise onMeshLoaded
eventsxAxisMesh
, yAxisMesh
, and zAxisMesh
of AxesViewer
to xAxis
, yAxis
, and zAxis
respectively and changed return to a TransformNode
to represent the parent node of the cylinder and line of the arrow (bghgary)Viewport.toglobal
to prevent circular dependency (Sebavan)Vector3.UnprojectRayToRef
to Ray.unprojectRayToRef
instance method to decrease class coupling (Sebavan)Material.ParseMultiMaterial
to MultiMaterial.ParseMultiMaterial
to decrease class coupling (Sebavan)babylon.no-module.max.js
javascript version has the Webpack UMD bundle covers both (Sebavan)es6.js
javascript as it is now available as a true es6 NPM package (Sebavan)babylon.worker.js
javascript following the lack of usage from the feature (Sebavan)Primitive Geometries
as they were not in use since 2.0 (Sebavan)shouldExportTransformNode
callback in glTF serializer options to shouldExportNode
(kcoley)PhysicsHelper
method parameters for event calls (bobalazek)