3.2.0
Major updates
-Support for GPU particles (deltakosh)
- Improved building process: We now run a full visual validation test for each pull request. Furthermore, code comments and what's new updates are now mandatory (sebavan)
- Introduced texture binding atlas. This optimization allows the engine to reuse texture bindings instead of rebinding textures when they are not on constant sampler indexes (deltakosh)
- New AnimationGroup class to control simultaneously multiple animations with different targets (deltakosh)
WebVRCamera
now supports GearVR (brianzinn)
- New glTF serializer. You can now export glTF or glb files directly from a Babylon scene (kcoley)
- Babylon.js now uses Promises in addition to callbacks. We created several
xxxAsync
functions all over the framework (SceneLoader.AppendAsync
for instance, which returns a Promise). A polyfill is also integrated to support older browsers (deltakosh)
- Introduced Projection Texture on SpotLight (lostink)
- Introduced support for local cubemaps (deltakosh)
- Added VideoDome class to easily support 360 videos (DavidHGillen)
- Added GlowLayer to easily support glow from emissive materials (sebavan)
Updates
- Tons of functions and classes received the code comments they deserved (All the community)
- 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)
- New watcher configuration for VSCode. Now the task only compiles changed files (sebavan)
- 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)
- 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)
AssetsManager
will now clear its tasks
lsit from all successfully loaded tasks (deltakosh)
- Added documentation to WebVRCamera and VRExperienceHelper (trevordev)
- Introduced
isStroke
on HighlightLayerOptions
which makes the highlight solid (PixelsCommander)
- (Viewer) There is now an option to paste payload instead of a URL for configuration (RaananW)
- (Viewer) Models can be loaded async using JavaScript (RaananW)
- 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)
- (Viewer) initScene and initEngine can now be extended. onProgress during model loading is implemented as observable. (RaananW)
- glTF loader now supports the KHR_lights extension (MiiBond)
- Added depth of field effect to the default pipeline (trevordev)
- The observable 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)
- Gulp process now supports multiple outputs when using webpack. (RaananW)
- (Viewer) Scene Optimizer intergrated in viewer. (RaananW)
- (Viewer) The viewer supports custom shaders in the configuration. (RaananW)
- Documented PostProcessRenderEffect, DefaultRenderingPipeline, BlurPostProcess, DepthOfFieldEffect, PostProcess, PostProcessManager, Effect classes (trevordev)
- SPS internal storage of each solid particle rotation matrix (jbousquie)
- SPS particle parenting feature (jbousquie)
- (Viewer) Introducing the viewer labs - testing new features. (RaananW)
- AssetContainer Class and loading methods (trevordev)
- KeepAssets class and AssetContainer.moveAllFromScene (HoloLite trevordev)
- (Viewer) It is now possible to update parts of the configuration without rcreating the objects. (RaananW)
- (Gulp) extra/external declarations can be prepended to final declarations during build. (RaananW)
- (Viewer) Model can be normalized using configuration. (RaananW)
- (Gulp) extra/external declarations can be prepended to final NPM declarations during build. (RaananW)
- GUI.Line can have its world position set from one end or the other (SvenFrankson)
- Added FOV system to background material for zoom effects in skyboxes without adjusting camera FOV (DavidHGillen)
- Improved glTF loader by using promises for asynchronous operations. (bghgary]
- Improved glTF loader performance by compiling materials in parallel with downloading external resources. (bghgary]
- Added unit tests for the glTF 2.0 loader. (bghgary]
- Added promise-based async functions to the SceneLoader, Scene.whenReadyAsync, and material.forceCompilationAsync. (bghgary]
- Added checks to VertexData.merge to ensure data is valid before merging. (bghgary]
- Ability to set a mesh to customize the webVR gaze tracker (trevordev)
- Add stroke (outline) options on GUI text control (SvenFrankson)
- Add floating point texture support for RenderTargetCubeTexture (PeapBoy)
Bug fixes
setPivotMatrix
ws not setting pivot correctly. This is now fixed. We also introduced a new setPreTransformMatrix
to reproduce the sometimes needed behavior of the previous setPivotMatrix
function (deltakosh)
- SPS solid particle
.pivot
property now also behaves like the standard mesh pivot. Former behavior (particle translation) can be kept with the particle property .translateFromPivot
set to true (jbousquie)
- Texture extension detection in
Engine.CreateTexture
(sebavan)
- SPS internal temporary vector3 instead of Tmp.Vector3 to avoid possible concurrent uses (jbousquie)
Breaking changes
- Removed the unused PostProcessRenderPass class and extended postProcessingRenderingEffect to support multiple PostProcesses (trevordev)
- VertexData.merge no longer supports merging of data that do not have the same set of attributes. (bghgary]
- glTF 2.0 loader will now create a mesh for each primitive instead of merging the primitives together into one mesh. (bghgary]