<<<<<<< HEAD
pbrMetallicRoughnessMaterial and pbrSpecularGlossinessMaterial. Demo - More info here (Sebastien Vandenberghe)pbrMetallicRoughnessMaterial and pbrSpecularGlossinessMaterial. Demo - More info here (Sebastien Vandenberghe)developed
VideoTexture.CreateFromWebCam to generate video texture using WebRTC. Demo (Sebastien Vandenberghe) / (deltakosh)Cell Shading material added into Materials Library Demo (Julien Moreau-Mathis)syncBoneWithImpostor() and syncImpostorWithBone() to PhysicsImpostor to help with creating ragdoll effects. Demo (abow)Texture.readPixels() function to read texture content (deltakosh)ArcRotateCamera.panningInertia to decouple inertia from panning inertia (deltakosh)FIXED_EQUIRECTANGULAR_MIRRORED_MODE mode for reflection texture. Demo here (deltakosh)boundingBox.centerWorld and boundingBox.extendSizeWorld (deltakosh)Light.customProjectionMatrixBuilder to allow developers to define their own projection matrix for shadows (deltakosh)set() function to all basic types (deltakosh)HDRCubeTextureAssetTask to AssetManager (deltakosh)VertexBuffer.updatable is now serialized (deltakosh)intersectsMeshes() to Ray (abow)Mesh.applyDisplacementMap now accepts uvScale and uvOffset parameter (deltakosh)addChild(), removeChild(), setParent() to AbstractMesh (abow)Effect.getVertexShaderSource() and Effect.getFragmentShaderSource() now returns the effective shader code (including evaluation of #define) (deltakosh)getHeightAtCoordinates(), getNormalAtCoordinates() and getNormalAtCoordinatesToRef() can now work with rotated grounds (jerome) GroundMesh, facetData and SolidParticleSystem improvement in normal computations (jerome) AbstractMesh.addRotation() (jerome) Quaternion.RotationQuaternionFromAxis() and Quaternion.RotationQuaternionFromAxisToRef() (jerome, thanks to abow) uvs and colors to MeshBuilder.CreateRibbon() (jerome) frontUVs and backUVs to all the methods MeshBuilder.CreateXXX() supporting sideOrientation (jerome)Curve3.CreateCatmullRomSpline() (jerome and BitOfGold) colorFilter to CreateGroundFromHeightMap() (jerome) Vector3.RotationFromAxisToRef() (jerome, thanks to abow) mesh.markVerticesDataAsUpdatable() to allow a specific vertexbuffer to become updatable (deltakosh) POINTERTAP and POINTERDOUBLETAP PointerEventTypes to register new Observer mask. (Demo here)[ https://www.babylonjs-playground.com/?30] (yuccai)ShadowOnlyMaterial to display shadows on transparent surfaces (deltakosh) VertexBuffer.TangentKind to specify tangents in place of shader-calculated tangents (dewadswo, bghgary)material.twoSidedLighting to PBRMaterial and StandardMaterial to enable flipping normals when backfaceCulling is false (BeardedGnome, bghgary)Motion Blur effect added into StandardRenderingPipeline Demo (Julien Moreau-Mathis)Welcome to Wonderland types of animation (jcpalmer)BABYLON.TextureTools.CreateResizedCopy function to create a copy of a texture and chage its size (deltakosh) positionFunction in addShape() (jerome) start index when used with setParticles(start, end) (jerome) abstractMesh.ts documented (jerome) mesh.ts documented (jerome) groundMesh.ts documented (jerome) instancedMesh.ts documented (jerome) lineMesh.ts documented (jerome) vertexData.ts documented (jerome) subMesh.ts documented (jerome) vertexBuffer.ts documented (jerome) math.ts documented (jerome)light.ts documented (jerome) directionalLight.ts documented (jerome) hemisphericLight.ts documented (jerome) pointLight.ts documented (jerome) spotLight.ts documented (jerome) shadowGenerator.ts documented (jerome) requestVRFullscreen has been removed. Call attachControl() inside a user-interaction callback to start sending frames to the VR displaysetPositionOffset has been used to change the position offset. it is now done using camera.positionshow has been removed. Use new RayHelper.show() insteadhide has been removed. Use new RayHelper.hide() insteadonPhysicsCollide has been removed. Use mesh.physicsImpostor.registerOnPhysicsCollide() insteadsetPhysicsState has been removed. Use new PhysicsImpostor() insteadgetPhysicsMass has been removed. Use mesh.physicsImpostor.getParam("mass") insteadgetPhysicsFriction has been removed. Use mesh.physicsImpostor.getParam("friction") insteadgetPhysicsRestitution has been removed. Use mesh.physicsImpostor.getParam("restitution") insteadupdatePhysicsBodyPosition has been removed. Changes are synchronized automatically nowupdateVerticesDataDirectly has been removed. Use mesh.updateVerticesData() insteadgetBlurHPostProcess has been removed. Blur post-process is no more requiredgetBlurVPostProcess has been removed. Blur post-process is no more requiredsetGravity has been removed. Use scene.getPhysicsEngine().setGravity() insteadcreateCompoundImpostor has been removed. Use PhysicsImpostor parent/child insteadLongPressDelay and DragMovementThreshold are now respectively Scene.LongPressDelay and Scene.DragMovementThresholdHDRRenderingPipeline has been removed because it is deprecated. It is now replaced by StandardRenderingPipeline which is more advanced. See documentationStandardRenderingPipeline effect to support screen space lens flare and depth of field. Demo - (Julien Moreau-Mathis)HighlightLayer object to enable highlights rendering. Demo - (sebavan)scene.useRightHandedSystem = true (deltakosh)gulp build-custom Doc (deltakosh)gulp build-custom Doc (deltakosh)developed
node.doNotSerialize to prevent specific nodes to be serialized by SceneSerializer (deltakosh)scene.multiPick and scene.multiPickWithRay to return an array of pickedMesh objects (deltakosh)Effect.GetVertexShaderSource() and Effect.GetFragmentShaderSource() (deltakosh)Texture.LoadFromDataString() to help loading base64 encoded textures (deltakosh)Engine.setTextureFormatToUse(), and an appropriate one will be chosen. (Palmer-JC)Tools.CreateScreenshot function will capture all canvas data. Previous implementation is now called CreateScreenshotUsingRenderTarget (deltakosh) sprite.playAnimation (deltakosh) camera.isInFrustum and camera.isCompletelyInFrustum. Can be used with meshes, submeshes and boundingInfo (deltakosh) supersample mode to double font quality. (nockawa)particle.intersectsMesh() (jerome)invertUV parameter an all ribbon based shapes : ribbon, tube, lathe, basic and custom extrusion (jerome)scene.hoverCursor property to define a custom cursor when moving mouse over meshes (deltakosh) MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)_computeHeightQuads() that affected all the GroundMesh.getHeightAtCoordinates() and GroundMesh.getNormalAtCoordinates() methods (jerome)Mesh.CreateDashedLines() missing instance parameter on update (jerome)SolidParticleSystem (jerome)SolidParticleSystem (jerome)LineSystem. Demo here (jerome)developed
Buffer object and then use buffer.createVertexBuffer to specify the vertex buffers (benaadams) overridenInstanceCount set to specify the number of meshes to draw when custom instancing is used (benaadams) Earcut module). The PolygonMeshBuilder class now relies on Earcut. (nockawa) renderTargetTexture.useCameraPostProcesses to control postprocesses for render targets (deltakosh)mesh.toLefthanded() to convert a mesh from right handed system (kesshi)node._children to track children hierarchy (deltakosh)digest() (jerome) computeBoundingBox (jerome) isVisible (jerome) Engine.updateDynamicVertexBuffer now has optional count as well as offset to allow partial updates (benaadams) DynamicTexture.clone() now preserves height in addition to width (dahlbyk)MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)SolidParticleSystem (jerome)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.onXXXRemovedObservableMaterial.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) 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)SolidParticleSystem documented (jerome)MeshBuilder documented (jerome)Mesh documented (jerome)StandardMaterial.lightmapTexture which can be controlled with StandardMaterial.useLightmapAsShadowMap (deltakosh)Mesh.CreatePolyhedron() method (jerome)
<<<<<<< HEADMesh.CreateIcoSphere() method Demo here (G'kar)Mesh.CreateIcoSphere() method Demo here (G'kar)developed
CubeTexture.CreateFromImages() (deltakosh)bb.isLocked and bb.update()) (deltakosh)ActionManager.OnLongPressTrigger and ActionManager.OnPickDownTrigger (vouskprod)Mesh.convertToUnIndexedMesh() to create meshes with no indices (which could be faster when vertex reuse is low and vertex structure is small) (deltakosh)Animatable.goToFrame() (deltakosh)Animation.CreateAndStartAnimation and added Animation.CreateMergeAndStartAnimation to reproduce previous behavior (deltakosh)StandardMaterial.linkEmissiveWithDiffuse to, well, link emissive with diffuse value. (With)[ https://www.babylonjs-playground.com/#2FPUCS#2] and (without)[ https://www.babylonjs-playground.com/#2FPUCS#1] (deltakosh)DirectionalLight.autoUpdateExtends to prevent directional lights to adapt to scene extends (deltakosh)debugLayer.show() to define root element to use (deltakosh)MeshBuilder class used to create all kind of mesh shapes (deltakosh)Scene.constantlyUpdateMeshUnderPointer to improve performance when moving mouse (deltakosh)StandardMaterial.disableLighting (deltakosh)Material.sideOrientation property to define clockwise or counter-clockwise faces selection. Demo here (deltakosh)MeshBuilder.CreateCylinder() (jerome)CreateCylinder, CreateSphere, CreateTube, CreateDisc and CreateLathe (jerome)MeshBuilder.CreateSphere() (jerome)closed parameter in MeshBuilder.CreateLathe() (jerome)cap parameter in MeshBuilder.CreateLathe() (jerome)diameter, hasRings, enclose parameters in MeshBuilder.CreateCreateCylinder() (jerome)getNormalAtCoordinates() and getNormalAtCoordinatesToRef() methods in MeshBuilder.CreateLathe() (jerome)Material.dispose() now removes disposed material from meshes (deltakosh)Material.getBindedMeshes() function (deltakosh)Mesh.updateVerticesDataDirectly deprecated (Palmer-JC)Tmp class for internal use in order to improvement the memory management, jerome)Scene.swithActiveCamera(newCamera, attachControl) to go from one camera active to another. (dad72) PRMesh.attachToBone when bone's matrix has a negative determinant (deltakosh)getHeightAtCoordinates() : brand new ultra fast algorithm, can be used for many objects at once in the render loop now (jerome)closePath and closeArray ribbon parameter now working back together (jerome)ActionManager.OnPickTrigger now acts as a single click/tap and is not raised on drag or swipe anymore. To get the old behavior, ActionManager.OnPickDownTrigger should be used instead (vouskprod)VertexData.CreateCylinder() now supports only the single options parameter (jerome)VertexData.CreateRibbon() now supports only the single options parameter (jerome)VertexData.CreateBox() now supports only the single options parameter (jerome)VertexData.CreateSphere) now supports only the single options parameter (jerome)VertexData.CreateTorus() now supports only the single options parameter (jerome)VertexData.CreateTorusKnot() now supports only the single options parameter (jerome)VertexData.CreatePlane() now supports only the single options parameter (jerome)VertexData.CreateDisc() now supports only the single options parameter (jerome)VertexData.CreateLines() now supports only the single options parameter (jerome)VertexData.CreateDashedLines() now supports only the single options parameter (jerome)VertexData.CreateGround() now supports only the single options parameter (jerome)VertexData.CreateTiledGround() now supports only the single options parameter (jerome)VertexData.CreateGroundFromHeightMap() now supports only the single options parameter (deltakosh)Tools.IsExponantOfTwo() renamed to Tools.IsExponentOfTwo() (deltakosh)Tools.GetExponantOfTwo() renamed to Tools.GetExponentOfTwo() (deltakosh)developed
CreateBox (jerome)Vector3.RotationFromAxisToRef() : same as RotationFromAxis() but assigns a reference (jerome)ComputeNormals optimization : less object allocation and normal array initialization (jerome)dof_focus_depth (range 0..1) is deprecated, use dof_focus_distance (range 0..infinity) instead (jahow)RotationFromAxis() : fixed the dot product case outside the range [-1, 1] (jerome)Mesh.CreateDecal() function to create decals. See demo. More info here (deltakosh)BABYLON.Mesh.ExtrudeShape and BABYLON.Mesh.ExtrudeShapeCustom. More info here (jbousquie)Camera.setCameraRigMode to control 3D rendering of any camera (Anaglyph, Stereo, VR) (Palmer-JC, vousk)MultiMaterial.clone() function (deltakosh)mesh.computeNormals() function (jbousquie)Mesh.onLODLevelSelection(distance: number, mesh: Mesh, selectedLevel: Mesh) callback (deltakosh)Material.zOffset to help reducing z-fighting (deltakosh)Curve object (jbousquie) More info herePath3D object (jbousquie) More info hereNo more error when a manifest is not found (deltakosh)
constructor(name: string, urls: string[], scene: Scene, generateMipMaps = false, invertY = false, samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE) (deltakosh)PolygonMeshBuilder object used to create mesh from polygons (ElemarJR)Mesh.simplify() function to automatically simplify meshes. More info here (raananw)scene.enableDepthRenderer() to register depth texture rendering. More info here (deltakosh)SSAORenderingPipeline to apply screen space ambient occlusion. More info here (julien-moreau) VolumetricLightScatteringPostProcess to simulate volumetric light scattering. More info here (julien-moreau) PolygonMeshBuilder object used to create mesh from polygons (ElemarJR)Mesh.simplify() function to automatically simplify meshes. More info here (raananw)scene.enableDepthRenderer() to register depth texture rendering. More info here (deltakosh)SSAORenderingPipeline to apply screen space ambient occlusion. More info here (julien-moreau) VolumetricLightScatteringPostProcess to simulate volumetric light scattering. More info here (julien-moreau) developed
scene.createDefaultCameraOrLight() function (deltakosh)clear() function to DynamicTexture (deltakosh)RawTexture object to create texture from arraybuffer with specific format (luminance, luminance and alpha, alpha, rgb, rgba) (deltakosh) ParticleSystem.updateFunction to define custom behavior for particles (deltakosh) mesh.renderOverlay and mesh.overlayColor (deltakosh)Mesh.setVerticesData function (deltakosh)Texture.CreateFromBase64String function (deltakosh)Effect.onBind callback (deltakosh)mesh.isCompletelyInFrustum(camera) function (deltakosh)Tools.GetFps() and Tools.GetDeltaTime() are now functions hosted by the engine: engine.getFps() and engine.getDeltaTime() deltakosh)BABYLON.FollowCamera used to smoothly follow a given target abogartzBABYLON.AssetsManager used to handle assets loading alongside loading screen display (deltakosh)Engine.displayLoadingUI(), Engine.hideLoadingUI(), Engine.loadingUiText. See more here (deltakosh)StandardMaterial. See demo here and wiki here (deltakosh)mesh.updateVerticesDataDirectly(kind, float32array) to update mesh data directly (deltakosh)camera.projectToScreen() function to transform a vector3 into a screen pixel (deltakosh)effect parameter to define custom shader for BABYLON.ParticleSystem constructor. See demo here and wiki here (deltakosh) StandardMaterial.useSpecularOverAlpha to define if you want specular to appear even on top of transparent surfaces (deltakosh)SceneLoader.Append function to append a babylon.js file to an existing scene (Palmer-JC)LinesMesh.alpha property (deltakosh)Mesh.applyDisplacementMap and Mesh.applyDisplacementMapFromBuffer (deltakosh) Mesh.renderOutline property to render outlines around a mesh (used with Mesh.outlineColor and Mesh.outlineWidth) (deltakosh)Light.includedOnlyMeshes array to define explicitely which mesh is affected by a light (deltakosh) RenderTargetTexture can now specify a camera to use (deltakosh)
Fixing tons of bugs with PostProcessRenderPipeline. Wiki updated. (deltakosh)
mesh.registerAfterRender and mesh.unregisterAfterRender functions (deltakosh) fragmentElement parameter to define custom shader for BABYLON.ParticleSystem constructor (deltakosh) OnKeyDown and OnKeyUp triggers. See actions wiki for more info (deltakosh) Engine.Version property which returns a string with the current version (deltakosh) BABYLON.ActionManager.OnIntersectionEnterTrigger, BABYLON.ActionManager.OnIntersectionExitTrigger. Documentation updated (deltakosh) BABYLON.LinesMesh. You can find a demo here (deltakosh) mesh.moveWithCollisions function. Used with mesh.ellipsoid and '''mesh.ellipsoidOffset```, this function can be used to move a mesh and use an ellipsoid around it to check collisions (deltakosh) BABYLON.PickingInfo.getTextureCoordinates() function (deltakosh) BABYLON.Scene.cameraToUseForPointers property that defines this parameter if you are using multiple cameras and you want to specify which one should be used for pointer position (deltakosh) BABYLON.OculusOrientedCamera was replaced by BABYLON.OculusCamera for better integration into camera system (deltakosh) Mesh.CreateTiledGround() function (kostar111) BABYLON.Action: You can now create a complex system of interactions. More info here (deltakosh)BABYLON.Gamepads & BABYLON.Gamepad: Support for Gamepad API (Xbox 360 Pad & Generic Pads) (davrous)BABYLON.GamepadCamera: use a FPS-like camera controlled by your gamepad using 1 line of code (davrous)BABYLON.GroundMesh created by BABYLON.Mesh.Createground and BABYLON.Mesh.CreateGroundFromHeightMap. This object is optimized for collisions and rendering of grounds (!!!). A first feature is also included GroundMesh.getHeightAtCoordinates (deltakosh)samplingMode parameter when creating textures (deltakosh)scene.meshUnderPointer, scene.pointerX, scene.pointerY (deltakosh)Mesh.showSubMeshesBoundingBox to display sbumeshes bounding boxes (deltakosh)renderTargetTexture.refreshRate property to define the refresh rate of RenderTargetTexture: Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on... (deltakosh)scene.beforeCameraRender and scene.afterCameraRender callbacks (deltakosh)startDirectionFunction and startPositionFunction (deltakosh)useAlphaFromDiffuseTexture option for standard material to use 8-it alpha channel from the diffuse texture instead of using it as an alpha test value (Platane)Tools.Log, Tools.Warn, Tools.Error functions. Filter can be applied using Tools.CurrentLoglevel (MaxenceBrasselet, deltakosh)setDirectionToTarget function added to SpotLight, HemisphericLight and DirectionalLight (Wingnutt)VertexData.CreateGroundFromHeightMap(deltakosh)Tools.CreateScreenshot(nicolas-obre)ArcRotateCamera.setPosition() (Celian)Mesh.setVerticesData signature is now: (kind, values, updatable) instead of (values, kind, updatable) in order to be consistent with Mesh.updateVerticesData deltakosh)mesh.showBoundingBox to display mesh's bounding box. You can configure back and front color using scene.getBoundingBoxRenderer(). This function returns a BABYLON.BoundingBoxRenderer where you can define backColor, frontColor and showBackLines (deltakosh)BABYLON.Mesh.CreateTorusKnot (deltakosh)BABYLON.AnaglyphArcRotateCamera and BABYLON.AnaglyphFreeCamera (michael-korbas), (deltakosh)BABYLON.StandardMaterial (demonixis)BABYLON.VertexData.ExtractFromMesh function (deltakosh)BABYLON.AnaglyphArcRotateCamera for example) (deltakosh)BABYLON.Engine.runEvenInBackground property. True by default. It allows you to stop rendering when the browser is not the foreground application. (deltakosh)onCompiled and onError (deltakosh)Fixed an issue with Internet Explorer while rendering a RenderTargetTexture outside the engine renderLoop (nicolas-obre)
BABYLON.ShaderMaterial object to simply create custom shaders (deltakosh) - See Custom shader - cell shadingBABYLON.VertexData object to easily manipulates vertex attributes (deltakosh) - See VertexDataBABYLON.CubeTexture constructor (deltakosh)BABYLON.Color3.FromInts() and BABYLON.Color4.FromInts() (deltakosh)BABYLON.VideoTexture constructor (deltakosh)BABYLON.Scene.getCameraByID function (deltakosh)BABYLON.Scene.setActiveCameraByName() function (deltakosh)BABYLON.Scene.activeCameraByID() to BABYLON.Scene.setActiveCameraByID() (deltakosh)BABYLON.SceneSerializer.Serialize function (deltakosh)`mesh.convertToFlatShadedMesh()) (deltakosh)mesh.rotate and mesh.translate functions to rotate and translate mesh both locally and globally (deltakosh)ParticleSystem.forceDepthWrite (deltakosh)mesh.lookAt function (professorF)mesh.setAbsolutePosition function (gwenael-hagenmuller)mesh.infiniteDistance (deltakosh)matrix.multiply function (up to 50% faster) (deltakosh)animation.currentFrame property to get current animation frame (deltakosh)animation.floatInterpolateFunction property to define custom float interpolation function (deltakosh)animation.vector3InterpolateFunction property to define custom vector3 interpolation function (deltakosh)animation.quaternionInterpolateFunction property to define custom quaternion interpolation function (deltakosh)light.excludedMeshes property to exclude specific meshes from light computation (deltakosh)texture.anisotropicFilteringLevel property to define the anisotropic level of a texture (deltakosh)mesh.infiniteDistance property to make a mesh static from the point of view of the camera (deltakosh)scene.customRenderTargets property to add our own renderTargetTexture (deltakosh)lockedTarget for freeCamera in order to allow cameras to track moving targets (deltakosh)angularSensibility property for cameras (deltakosh) upVector property for cameras. Cameras are now not limited to a (0, 1, 0) up vector (deltakosh) parent property for cameras and lights: Lights, cameras and meshes can be related. For instance a camera can now be attached to a mesh as child and vice versa (deltakosh)renderingGroupId for SpriteManager (deltakosh)BoundingBox and BoundingSphere are prepared with an identity matrix during construction (deltakosh) SceneLoader.ImportMesh (nicolas-obre)DeviceOrientationCamera that supports W3C DeviceOrientations events (deltakosh)mesh.renderingGroupId and particleSystem.renderingGroupId properties to support rendering layers (deltakosh)predicate parameter for scene.pick function in order to be able to select pickable meshes (deltakosh) mesh.refreshBoundingInfo() method (deltakosh) onAnimationEnd parameter for animations (deltakosh) mesh.setLocalTranslation and mesh.getLocalTranslation functions (deltakosh)matrix.setTranslation function (deltakosh)mesh.rotation and mesh.rotationQuaternion are now two separated functions (deltakosh) dispose() function and a disposeWhenFinishedAnimating property to sprites (Cyle)applyTransform() function to meshes in order to bake a specific transformation into vertices (deltakosh)setPivotMatrix() and getPivotMatrix() to meshes to define pivot matrix (deltakosh)Mesh.CreateCylinder now takes two diameters as parameters to be able to create cone (deltakosh) material.Clone function (deltakosh) scene.IsReady() is more robust now and can be used to detect when the scene is EFFECTIVELY ready :) (deltakosh)attachControl() function (deltakosh)scene.pick() function (deltakosh)