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
New refraction channel for Standard material (including fresnel support). Refraction texture can be provided by a reflection probe or a refraction texture. See demo here (deltakosh)
Added Camera Inputs Manager to manage camera inputs (mouse, touch, keyboard, gamepad, ...) in a composable way, without relying on class inheritance. Documentation here (gleborgne)
StandardMaterial.maxSimultaneousLights can define how many dynamic lights the material can handle. Demo here (deltakosh)
Introduced Canvas2D feature: a 2D engine to render primitives, sprites in 2D, text. Canvas2D can be displayed in Screen Space (above the 3D scene) or in World Space to be a part of the Scene. overview, tutorial (nockawa)
Added two new types of Texture: FontTexture and MapTexture (quick doc) (nockawa)
Physics engine was completely rewritten, including both plugins for Oimo.js and Cannon.js. overview (RaananW)
Interleaved buffers are now directly supported. Create a Buffer object and then use buffer.createVertexBuffer to specify the vertex buffers (benaadams)
Vertex buffers can be marked as instanced to allow custom instancing attributes (benaadams)
Mesh can have overridenInstanceCount set to specify the number of meshes to draw when custom instancing is used (benaadams)
Now supporting the Earcut polygon triangulation library as part of babylon.js library. (Look for the Earcut module). The PolygonMeshBuilder class now relies on Earcut. (nockawa)
Updates
Added renderTargetTexture.useCameraPostProcesses to control postprocesses for render targets (deltakosh)
Added mesh.toLefthanded() to convert a mesh from right handed system (kesshi)
Renderlists can now also be defined using predicates (deltakosh)
Added support for various normal maps conventions (deltakosh)
Added postprocess.enablePixelPerfectMode to avoid texture scaling/stretching when dealing with non-power of 2 resolutions. cannot be used on post-processes chain (deltakosh)
Enabled other post processes to be used when also using a 3D Rig (jcpalmer)
Got Skeleton.copyAminationRange scaling better for different bone lengths (jcpalmer)
New scene.pointerDownPredicate, scene.pointerMovePredicate, scene.pointerUpPredicate to define your own predicates for meshes picking selection (deltakosh)
New OnPickTrigger support for spritesManager (deltakosh)
LinesMesh class now supports Intersection. Added the intersectionThreshold property to set a tolerance margin during intersection with wire lines. (nockawa)
Geometry.boundingBias property to enlarge the boundingInfo objects (nockawa)
Tools.ExtractMinAndMax & ExtractMinAndMaxIndexed now supports an optional Bias for Extent computation.
Added StringDictionary class to implement an efficient generic typed string dictionary based on Javascript associative array. (quick doc) (nockawa)
Added RectanglePackingMap class to fit several rectangles in a big map in the most optimal way, dynamically. (nockawa)
Added DynamicFloatArray class to store float32 based elements of a given size (stride) into one big Float32Array, with allocation/free/pack operations to then access an optimal buffer that can be used to update a WebGLBuffer dynamically.(quick doc) (nockawa)
Scene.onPointerObservable property added to enable a unique Observable event for user input (see ArcRotateCamera inputs for examples) (nockawa)
Added PhysicsImpostor and PhysicsJoint classes (RaananW)
LensFlareSystem now has both ID and name (RaananW)
TargetCamera has now a rotationQuaternion variable to can be used to set the camera's rotation (RaananW)
SSAORenderingPipeline now uses bilateral blur post-processes instead of standard blur post-process, in order to remove more efficiently the "textile effect"
Engine.updateDynamicVertexBuffer now has optional count as well as offset to allow partial updates (benaadams)
vertex attributes are only disabled if they aren't going to be reeabled by the next draw, to reduce gpu state changes (benaadams)
Exporters
Unity3D exporter: Added support for lightmaps (davrous, deltakosh)
Unity3D exporter: Added support for export and run (local webserver) (davrous, deltakosh)
DynamicTexture.clone() now preserves height in addition to width (dahlbyk)
Fixed missing some parameter default values in MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)
Fixed model shape initial red vertex color set to zero not formerly being taken in account in the SolidParticleSystem (jerome)
Breaking changes
VertexData.CreateLines() removed as MeshBuilder.CreateLines() now calls MeshBuilder.CreateLineSystem()
scene.onNewXXXAdded and scene.onXXXRemoved callbacks were removed and replaced by scene.onNewXXXAddedObservable and scene.onXXXRemovedObservable
Material.dispose does not dispose textures by default. You have to call material.dispose(false, true) to get the previous behavior.
SSAORenderingPipeline.getBlurHPostProcess and SSAORenderingPipeline.getBlurVPostProcess. The SSAO rendering pipeline doesn't use standard blur post-process anymore. A bilateral blur post-process is used instead.
Engine.bindBuffers is now Engine.bindBuffersDirectly (benaadams)
Engine.bindMultiBuffers is now Engine.bindBuffers and strongly typed { [key: string]: VertexBuffer; } of buffers (benaadams)
Engine.createDynamicVertexBuffer takes vertices rather than capacity, creating and initalizing in one gpu instruction (benaadams)
Internally new Engine.bindBuffer is used rather than gl.bindBuffer which only binds when the bound buffer is changing (benaadams)
DynamicTexture no longer forces height/width to exponents of 2 if MIP maps are disabled (dahlbyk)