what's new.md 10 KB

4.1.0

Major updates

Updates

General

  • Added support for dual shock gamepads (Deltakosh)
  • Support Vive Focus 3Dof controller (TrevorDev)
  • Planar positioning support for GizmoManager (Balupg)
  • Individual gizmos can now be enabled/disabled (Balupg)
  • Unify preparation of instance attributes. Added MaterialHelper.PushAttributesForInstances (MarkusBillharz)
  • Added support for PBR irradiance map
  • Ability to set render camera on utility layer instead of using the latest active camera (TrevorDev)
  • Move normalizeToUnitCube to transformNode instead of abstract mesh and add predicate to exclude sub objects when scaling (TrevorDev)
  • Method to check if device orientation is available (TrevorDev)
  • Added support for sound sprites Doc (Deltakosh)
  • Display Oculus Quest controller when using a Quest in WebVR (TrevorDev)
  • Added startAndReleaseDragOnPointerEvents property to pointerDragBehavior which can be set to false for custom drag triggering (TrevorDev)
  • Effect renderer to render one or multiple shader effects to a texture (TrevorDev)
  • Added url parameters to web request modifiers (PierreLeBlond)
  • Added VRExperienceHelper.exitVROnDoubleTap (Deltakosh)
  • Added Scene.getTextureByUniqueID (aWeirdo)
  • Added optional parameter to use Euler angles in planeRotationGizmo (CedricGuillemet)

Engine

  • Morph targets now can morph UV channel as well (Deltakosh)
  • Added MorphTarget support to the DepthRenderer, GeometryBufferRenderer and OutlineRenderer (MarkusBillharz)
  • Added preprocessors for shaders to improve how shaders are compiled for WebGL1/2 or WebGPU (Deltakosh)
  • Added enterPointerlock and exitPointerlock (Separated from enterFullscreen) (aWeirdo)

Inspector

  • Added support for Euler edition only for angles (can be turned off in the new inspector settings) (Deltakosh)
  • Added an option to ignore backfaces for picking (can be turned on and off in the new inspector settings) (Deltakosh)
  • Added support for ShadowGenerator (Deltakosh)
  • Added support for scene normalization (Deltakosh)
  • Added support for morph targets (Deltakosh)
  • Added context menu to add SSAORenderingPipeline and SSAO2RenderingPipeline (Deltakosh)
  • Added support for texture creation and assignments per material (Deltakosh)
  • Added support for occlusion properties (Deltakosh)
  • Texture channels are now displayed in grayscale (Deltakosh)
  • Ambiant and metallic maps are displayed correctly on PBR material even when using ORM packed texture (Deltakosh)
  • Added support for inspectable strings (Deltakosh)

Tools

  • Added Tools.CreateScreenshotAsync and Tools.CreateScreenshotUsingRenderTargetAsync (mehmetoguzderin)
  • Added Color3.toHSV(), Color3.toHSVToRef() and Color3.HSVtoRGBToRef() (Deltakosh)
  • Added ShadowGenerator.onAfterShadowMapRenderObservable and ShadowGenerator.onAfterShadowMapMeshRenderObservable (Deltakosh)
  • Added support for side by side and top bottom images in the PhotoDome (Deltakosh)
  • Added playground ts-local (TypeScript support for local playground) (pjoe)

Meshes

  • Added new CreateTiledPlane and CreateTiledBox (JohnK)
  • Added absolute scaling and rotation getters (haroldma)
  • Added BILLBOARDMODE_USE_POSITION flag to billboards allowing use of camera positioning instead of orientation for mesh rotation (delaneyj)

Physics

  • Update Ammo.js library to support global collision contact callbacks (MackeyK24)
  • Update Ammo.js library to allow native capsule shape impostors (MackeyK24)
  • Update Ammo.js library to allow your own broadphase overlapping pair cache (MackeyK24)
  • Update Ammo.js library and AmmoJS plugin to support ellipsoid (CedricGuillemet)

Loaders

  • Added support for non-float accessors in animation data for glTF loader. (bghgary)
  • Support loading cube data in the .basis loader (TrevorDev)
  • Load glTF extras into BJS metadata (pjoe)

Materials

ScreenshotTools

  • Added interface for argument size of screenshot methods (Dok11)
  • Implementation usage of precision in combination height and width params (Dok11)

Sounds

  • Added ISoundOptions.skipCodecCheck to make Sound more flexible with URLs (nbduke)

Ray

  • Added Ray.intersectsAxis to translate screen to axis coordinates without checking collisions (horusscope)

GUI

  • Added disableMobilePrompt option to InputText for OculusQuest(and other android base VR devices) (shinyoshiaki)
  • Added Button.delegatePickingToChildren to let buttons delegate hit testing to embedded controls (Deltakosh)

Documentation

  • Added a note on shallow bounding of getBoundingInfo (tibotiber)

Bug fixes

  • Fixed Textblock line spacing evaluation when linespacing > 0 (Deltakosh)
  • Fixed Xbox One gamepad controller button schemes (MackeyK24)
  • Added support for AnimationGroup serialization (Drigax)
  • Removing assetContainer from scene will also remove gui layers (TrevorDev)
  • A scene's input manager not adding key listeners when the canvas is already focused (Poolminer)
  • Runtime animation goToFrame when going back in time now correctly triggers future events when reached (zakhenry)
  • Fixed bug in Ray.intersectsTriangle where the barycentric coordinates bu and bv being returned is actually bv and bw. (bghgary)
  • Do not call onError when creating a texture when falling back to another loader (TrevorDev)
  • Context loss should not cause PBR materials to render black or instances to stop rendering (TrevorDev)
  • Only cast pointer ray input when pointer is locked in webVR (TrevorDev)
  • Avoid using default utility layer in gizmo manager to support multiple scenes (TrevorDev)
  • Fix bug when adding and removing observers in quick succession (sable)
  • Cannon and Ammo forceUpdate will no longer cause an unexpected exception (TrevorDev)
  • Loading the same multi-material twice and disposing one should not impact the other (TrevorDev)
  • GLTF exporter should no longer duplicate exported texture data (Drigax)
  • Avoid exception when disposing of Ammo cloth physics (TrevorDev)
  • Make planeDragGizmo usable on its own (TrevorDev)
  • Fix useObjectOrienationForDragging for pointerDragBehavior when using a single axis drag (TrevorDev)
  • Fix VR button not positioning correctly in canvas (haroldma)
  • Fix check for material needing alpha blending in OutlineRenderer (mkmc)

Breaking changes

  • Setting mesh.scaling to a new vector will no longer automatically call forceUpdate (this should be done manually when needed) (TrevorDev)
  • Tools.ExtractMinAndMaxIndexed and Tools.ExtractMinAndMax are now ambiant functions (available on BABYLON.extractMinAndMaxIndexed and BABYLON.extractMinAndMax) (Deltakosh)
  • Tools.QueueNewFrame was removed in favor of Engine.QueueNewFrame (Deltakosh)