You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added support for thin instances for faster mesh instances. Doc (Popov72)
Added support in ShadowGenerator for soft transparent shadows (Popov72)
Added PBR Next features: Reflection probes for accurate shading and Sub Surface Scattering (CraigFeldpsar and Sebavan)
Added support for latest glTF extensions: KHR_materials_clearcoat, KHR_materials_sheen, KHR_materials_transmission, KHR_texture_basisu (Sebavan and Popov72)
Added support for 3D Commerce glTF extension: KHR_materials_variants (Sebavan and Deltakosh)
Updates
General
Added the ShadowDepthWrapper class to support accurate shadow generation for custom as well as node material shaders. Doc (Popov72)
Added support for postproces serialization (Deltakosh)
Added support for querystrings on KTX file URLs (abogartz)
Refactored React refs from old string API to React.createRef() API (belfortk)
When no submesh can be picked(pointcloud), falls back to bbox intersection (cedricguillemet)
Added support preserving vert colors for CSG objects (PirateJC)
Added boundingBoxRenderer.onBeforeBoxRenderingObservable and boundingBoxRenderer.onAfterBoxRenderingObservable (Deltakosh)
Better plane handling for PointerDragBehavior when camera direction colinear to axis (cedricguillemet)
Added initial code for user facing DeviceSourceManager (PolygonalSun)
Added a Simple and advanced timer, based on observables (RaananW)
Don't log a message in CustomProceduralTexture if the texturePath is not a JSON path (Popov72)
Added an alternate option to the mesh edge renderer to generate edges faster / more accurately for unusual geometries (like the ones generated by CSG) (Popov72)
Added an option when creating the engine to switch matrix computation to 64 bits (Popov72)
Added support for the alpha component to the SSR post-process (Popov72)
Force compute world matrix of the newly-attached mesh of a ray helper (RaananW)
Allow 180 monoscopic videos on top of the video dome (#8575) (RaananW)
Added AssetContainerTask support to AssetsManager class (MackeyK24)
Added fixedDragMeshBoundsSize for boundingbox gizmo to size anchors from bounds size (cedricguillemet)
Changed DeviceSourceManager getInput contract to no longer return nullable values (Drigax)
Photo Dome and Video Dome now use the same abstract class and support the same parameters (#8771) (RaananW)
Added getTransformNodesByTags support to Scene class (MackeyK24)
Added support for multi-pointer mesh selection and pointer over/out triggers (#8820) (RaananW)
Changed DeviceSourceManager getInput contract to no longer return nullable values for reals this time. Also added proper cleanup for DeviceSourceManager observables (Drigax)
Default Loading screen supports any image size and ratio (#8845) (RaananW)
Added optional success and error callbacks for freezeActiveMeshes (RaananW)
Allow cross-eye mode in photo and video dome (#8897) (RaananW)
Added noMipMap option to the photo dome construction process (#8972) (RaananW)
Added a disableBoundingBoxesFromEffectLayer property to the EffectLayer class to render the bounding boxes unaffected by the effect (Popov72)
Removed all references to HTML element from cameras' attach and detach control functions (RaananW)
Updated which node ports are shown on frames by default so that only node ports connected to outside nodes are by default exposed on the frame (belfortk)
Popup Window available (To be used in Curve Editor) (pixelspace)
Added support to update inspector when switching to a new scene (belfortk)
Hex Component for Hex inputs on layer masks. (msDestiny14)
View & edit textures in pop out inspector using tools such as brush and floodfill. Supports region selection, individual channel editing, mipmap previews, and resizing. (DarraghBurkeMS)
Added mesh debug tools to display bone influence weights and bone indices maps. (Pryme8)
Added more functionality and options to the skeleton debug panel. (Pryme8)
Along with bone index it is now possible to select a bone using its name when viewing bone weights (#9117) (RaananW)
Gradient nodes from NME can now be set to be visible in the inspector (msDestiny14)
Cameras
Fixed up vector not correctly handled with stereoscopic rig (cedricguillemet)
Handle reattachment of panning button for ArcRotateCamera (cedricguillemet)
Unattach previous control in scene.InputManager when attaching a new one (cedricguillemet)
Added flag to TargetCamera to invert rotation direction and multiplier to adjust speed (Exolun)
Added upwards and downwards keyboard input to FreeCamera (Pheater)
Updated anchor system's promise resolution and API (#9258) (RaananW)
Fixed an issue with teleportation re-attachment (#9273) (RaananW)
Collisions
Added an option to optimize collision detection performance (jsdream) - PR
Added support for collisions with unindexed meshes (#9267)(Popov72)
Animation
Added support for Additive Animation Blending. Existing animations can be converted to additive using the new MakeAnimationAdditive method for Skeletons, AnimationGroups and Animations. Animations can be played additively using the new isAdditive input parameter to the begin animation methods. (c-morten)
Sort events by frame in ascending order in Animation#addEvent() (ycw)
Added support of metadata in Sound class. (julien-moreau)
Added currentTime property to the Sound class. (jocravio)
Build
Fixed an issue with gulp webpack, webpack stream and the viewer (RaananW)
Playground
Added support for code templates in the playground (sailro)
If createEngine fails, a default engine will be created (#8084) (RaananW)
GUI
Added support for custom word splitting function for TextBlock (Popov72)
Added the fixedRatio property to the Control class (Popov72)
Clip multilines by camera near plane when point is attached to a mesh (cedricguillemet)
Post Processes
SSAO 2, motion blur and screen space reflections are now using the brand new PrePassRenderer to avoid rendering the scene twice (CraigFeldpsar
Added Screen Space Curvature post process: Doc (Popov72 and Sebavan)
Added support of screen based motion blur in MotionBlurPostProcess (default mode is object based) to be used as a fallback to save performances on large scenes (julien-moreau)
Bugs
Fixed infinite loop in GlowLayer.unReferenceMeshFromUsingItsOwnMaterial (Popov72)
Fixed picking issue in the Solid Particle System when MultiMaterial is enabled (jerome)
Fixed picking issue in the Solid Particle System when expandable (jerome)
Fixed use of skeleton override matrix in mesh ray intersection (cedricguillemet)
QuadraticErrorSimplification was not exported (RaananW)
Fixed NME Frames bug where collapsing and moving a frame removed the nodes inside (belfortk)
Fixed moving / disappearing controls when freezing/unfreezing the ScrollViewer (Popov72)
Fix: when using instances, master mesh (if displayed) does not have correct instance buffer values (Popov72)
Exit XR will only trigger only if state is IN_XR (RaananW)
Fixed improper baking of transformed textures in KHR_texture_transform serializer. (drigax)
Fixed NME codegen: missing common properties for float-value input block. (ycw)
Fixed missing options for MeshBuilder.CreateBox. (ycw)
Fixed bug in Plane.transform when matrix passed in is not a pure rotation (Popov72)
Fixed bug in PBR when anisotropy is enabled and no bump texture is provided (Popov72)
Fixed horizon occlusion in PBR materials (Popov72)
Fixed wrong relative position in applyImpulse/applyForce for ammojs plugin (cedricguillemet)
Fixed delay calculation in Animatable.goToFrame when speedRatio != 1 (Reimund Järnfors)
Fixed bug in PBR when translucency is enabled and an irradiance texture is provided (Popov72)
Fixed bug in PBR with translucency when irradiance texture is 2D (Popov72)
Fixed parenting and enabled state of cloned lights (cedricguillemet)
Fixed bug in PBR when specific combinations of parameters are used (Popov72)
Fixed texture being inverted on the Y axis by default when using TextureAsset or AssetManager (broederj)
Make sure bone matrices are up to date when calling TransformNode.attachToBone (Popov72)
Fixed display problem with transparent objects and SSAO2 pipeline (bug in the GeometryBufferRenderer) (Popov72)
Fixed Sound not accepting a TransformNode as a source for spatial sound (Poolminer)
Fixed bug when using ShadowOnlyMaterial with Cascaded Shadow Map and autoCalcDepthBounds is true (Popov72)
Fixed OBJ serializer default scene scene handedness causing OBJ Mirror export
Fixed bug when using shadows + instances + transparent meshes + transparencyShadow = false (Popov72)
Incorrect initialization when reattaching XR pointer selection (#8227) (RaananW)
Fixed DracoCompression to not load empty data into attributes (bghgary)
Fixed Mesh.subdivide where one face could be lost depending on the number of subdivision (Popov72)
Fixed AssetContainer.instantiateModelsToScene with cloneMaterials=true and MultiMaterials to properly set the cloned submaterials (ghempton)
Fixed MSAA fail on MultiRenderTarget textures (CraigFeldpsar
Fixed wrong display when setting DefaultRenderingPipeline.imageProcessingEnabled to false (Popov72)
Fixed crash when loading a .obj file with vertex colors (Popov72)
Fixed skeleton viewer still visible when isEnabled = false (Popov72)
Fixed crash with CSG when no uvs defined (Popov72)
Fixed an issue causing views to render blank when scene rendering is skipped for a given iteration of the render loop (elInfidel)
Fixed docs Matrix.RotationYawPitchRoll and Matrix.RotationYawPitchRollToRef (VSerain)
Fixed issue in GLTFLoader._updateBoneMatrices() where bone rest position was not set. (drigax)
Fixed the bounding box of instances that does not match the instance position / rotation / scaling (Popov72)
Fixed an issue with sound updateOptions not updating the underlying sound buffer/html element (RaananW)
Fixed bug in sphereBuilder where top and bottom segments added 6 indices per triangle instead of 3. (use option dedupTopBottomIndices to enable it) (aWeirdo)
Fixed bug in QuadraticErrorSimplification not correctly optimizing mesh. (aWeirdo)
Fixed bug in ArcRotateCamera where setting the position would recalculate the alpha value to a value outside the current limits. (nilss0n)
Breaking changes
FollowCamera.target was renamed to FollowCamera.meshTarget to not be in conflict with TargetCamera.target (Deltakosh)
EffectRenderer.render now takes a RenderTargetTexture or an InternalTexture as the output texture and only a single EffectWrapper for its first argument (Popov72)
Sound's updateOptions takes options.length and options.offset as seconds and not milliseconds (RaananW)
HDRCubeTexture default rotation is now similar to the industry one. You might need to Added a rotation on y of 90 degrees if you scene changes (Sebavan)
PBRMaterial index of refraction is now defined as index of refraction and not the inverse of it (Sebavan)
SceneLoaderProgress class is now ISceneLoaderProgress interface (bghgary)
Rendering of transparent meshes: stencil state is now set to the value registered in the engine (when calling engine.setStencilBuffer(value)) instead of being set to false unconditionally. This change may affect the highlight layer when using transparent meshes. If you are impacted, you may need to exclude the transparent mesh(es) from the layer (Popov72)
Fixed width/height GUI container computation to take into account paddings when adaptWithToChildren = true (Popov72)
smoothstep in NME is now taking any type of parameters for its value input. If you use generated code from the NME ("Generate code" button), you may have to move the smoothstep output connection AFTER the input connections (Popov72)
SoundTrack.RemoveSound and SoundTrack.AddSound were renamed to SoundTrack.removeSound and SoundTrack.addSound (Deltakosh)
PolygonPoints.add no longer filters out points that are close to the first point (bghgary)
Material created with matching names now have auto-incrementing IDs (Drigax)