html5 webgl stl,新闻|Babylon.js|Babylon.js教程|Babylon.js开发|Babylon.js制作|webgl|three.js|html53D可视化开发...

4.0.0

主要更新

添加了对ammo.js的支持, 作为物理插件(复合对象,电机,关节)

(TrevorDev)Added 在ammo.js物理插件

中增加了对 3D软体,2D布和1D绳索的软体的支持

(JohnK)

添加了 AmmoJSPlugin场景文件加载器(MackeyK24)

添加了对WebXR支持

(TrevorDev)添加 customAnimationFrameRequester以允许会话挂钩到引擎的渲染循环'(TrevorDev)

添加 Camera customDefaultRenderTarget 以允许相机渲染到自定义渲染目标(例如,XR帧缓冲区)而不是画布(TrevorDev)

添加了webXR摄像头,可由webXRSession (TrevorDev)更新

添加 webXRSessionManager 到桥 xrSession 接到巴比伦的相机/引擎(TrevorDev)

添加webXRExperienceHelper 以设置默认XR体验(TrevorDev)

添加WebXREnterExitUI 和 WebXRManagedOutputCanvas 配置XR体验的类 (TrevorDev)

添加 WebXRInput 以管理XR体验的控制器 (TrevorDev)

使用父容器控制WebXR相机旋转(TrevorDev)

GUI:添加 control.useBitmapCache以通过保留缓存版本来优化复杂控件的重新呈现 (Deltakosh)

增加了对剪贴板事件的支持,让用户执行cut, copy以及paste 事件 (Saket Saurabh)

添加了新的ScrollViewer,鼠标滚轮滚动,可以使用滑块 (JohnK 和 Deltakosh)查看更大的容器

移动到测量/绘制机制(Deltakosh)

增加了对图像的 九种贴片拉伸模式的支持 (Deltakosh)

添加了invalidateRect到AdvancedDynamicTexture 以改善人口密集的GUI的性能,与阴影一起使用(TrevorDev)

添加了 TrailMesh类。感谢furcatomasz

(danjpar)

支持使用多视图引擎组件渲染到多视图outputRenderTargetTexture,以提高XR场景的性能(TrevorDev)

添加STL导出器(pryme8)

优化

添加了引擎创建选项以编译具有中等精度的所有着色器(Deltakosh)

优化效果重复用于阴影贴图(Deltakosh)

增加了对剪刀测试的支持(Deltakosh)

改进的着色器精度检测 (Deltakosh)

添加了对骨骼矩阵纹理的支持,允许骨骼在可能的情况下使用纹理而不是制服(Deltakosh)

重构SolidParticleSystem代码以提高性能和代码质量 (barroij)

每固体颗粒剔除可能性加入solidParticle.isInFrustum() (jerome)

以绩效为导向的变革(barroij):防止可避免的矩阵求逆或平方根计算。

从transformNodes数组和materials数组中启用恒定时间删除Scene。因此,在删除期间,这些数组中元素的顺序可能会发生变化。

E从a的instances数组中启用恒定时间删除Mesh。 因此,此数组中元素的顺序可能会在删除期间发生更改。

停止调用Array.splice的上scene.meshes阵列和在engine._uniformBuffer移除元素时。因此,在删除期间,这些数组中元素的顺序可能会发生变化。

useGeometryUniqueIdsMap在Scene构造函数选项中添加了一个选项。设置为true时,每个Sceneisntance都将拥有并将保持最新的几何图形uniqueId。这是为了避免在推送新场景时浏览场景的所有几何形状。它还可以在恒定时间内移除几何体。默认情况下禁用。

useMaterialMeshMap在Scene构造函数选项中添加了一个选项。设置为true时,每个Materialisntance都将拥有并将保持其绑定网格的最新映射。这是为了避免在处理材质时浏览场景的所有网格以检索绑定到当前材质的网格。默认情况下禁用。

useClonedMeshhMap在Scene构造函数选项中添加了一个选项。设置为true时,每个都Mesh将拥有并将保持最新的克隆网格地图。这是为了避免浏览场景的所有网格以检索具有当前网格作为源网格的网格。默认情况下禁用。

添加blockfreeActiveMeshesAndRenderingGroups属性Scene,遵循相同的模型blockMaterialDirtyMechanism。这是为了避免在我们连续处理多个网格时调用Scene.freeActiveMeshes和Scene.freeRenderingGroups处理每个处理过的网格。通过设置启用blockfreeActiveMeshesAndRenderingGroups到true刚刚设置网格之前,然后将其设置回false之后。

在处理ShaderMateriala 时,防止代码执行无用且可能耗时的计算LinesMesh。

更好地利用a中的isIdentity缓存值Matrix。

确保我们只在Material.markAsDirty功能中浏览所有子网格。

添加了一个Vector3.UnprojectRayToRef静态函数,以避免在更新Ray时计算和反转投影矩阵两次。

每网格剔除策略 (jerome)添加

更新

GUI

补充inputText.onKeyboardEventProcessedObservable (Deltakosh)

添加button.image并button.textBlock简化对按钮内部零件的访问 (Deltakosh)

添加slider.displayThumb到显示/隐藏滑块的拇指(Deltakosh)

补充grid.rowCount,grid.columnCount和grid.getChildrenAt() (Deltakosh)

添加Control.AllowAlphaInheritance让用户控制使用alpha的方式(继承与否)(Deltakosh)

添加了对执行操作的支持,例如选择全部,文本突出显示,删除选择inputText(Saket Saurabh)

添加inputText.onTextCopyObservable,inputText.onTextCutObservable并inputText.onTextPasteObservable输入文本 (Saket Saurabh)

添加AdvancedDynamicTexture.onClipboardObservable以观察AdvancedDynamicTexture中的剪贴板事件(Saket Saurabh)

添加inputText.onFocusSelectAll以允许在焦点事件上完整选择文本。(Saket Saurabh)

添加了鼠标拖动以突出显示文本inputText (Saket Saurabh)

核心引擎

增加了reflectionMatrix对更多coordinatesMode人的支持(Dennis Dervisis)

添加了新WebRequest类以集中所有网络请求。可用于配置所有网络请求的标头(Deltakosh)

添加WebRequest.CustomRequestHeaders,WebRequest.UseCustomRequestHeaders发送自定义请求标头和XMLHttpRequest,即从需要特殊标头的资源(如“授权”)(susares)

添加了对LineMeshes (Deltakosh)的用户剪辑平面的支持

补充shadowGenerator.onBeforeShadowMapRenderMeshObservable (Deltakosh)

补充animationGroup.onAnimationLoopObservable (Deltakosh)

添加了FlyCamera,在3D空间中进行免费导航,设置有限(Deltakosh)

补充Engine.onNewSceneAddedObservable (Deltakosh)

添加PassCubePostProcess了渲染立方体贴图内容的新内容(Phuein)

添加了对SkeletonViewer(Deltakosh)实用程序层的支持

增加Tools.BuildArray了数组初始化的实用功能 (Deltakosh)

引入了一个IOfflineSupport隐藏IndexedDB 的新界面 (Deltakosh)

为了清晰和简单,对齐BoundingBox和BoundingSphereAPI以及行为,删除BoundingBox方法setWorldMatrix并禁止修改基础世界矩阵,除非通过调用reConstruct或update(barroij)

确保及时提供的Material.markAsDirty所有markXXXDirty方法scene.blockMaterialDirtyMechanism都是正确的(Deltakosh)

将updateUpVectorFromRotation添加到目标摄像头以允许从旋转计算向上矢量 (Deltakosh)

wrap为CreateBox选项添加布尔参数以在盒子两侧垂直定向图像 (barroij)

将updateUpVectorFromRotation添加到目标摄像头以允许从旋转计算向上矢量(TrevorDev)

wrap为CreateBox选项添加布尔参数以在盒子两侧垂直定向图像(JohnK)

为GridMaterial(Deltakosh)添加了不透明纹理支持

添加了对动画组中变形目标动画进行反序列化的支持

AssetContainer配置方法 (TrevorDev)

如果KTX加载程序失败,使用KTX加载纹理将回退到非KTX加载程序 (TrevorDev)

Layer现在支持RenderTargetTexture(Sebavan)

制作屏幕操纵杆的公共画布 (TrevorDev)

在解析以前序列化的材料时添加.serialize并.Parse运行ReflectionProbe以检索反射探针 (julien-moreau)

为添加了clearGizmoOnEmptyPointerEvent选项和onAttachedToMeshObservable事件(TrevorDev)

添加了对覆盖用于具有骨架的网格的世界矩阵的网格的支持(bghgary)

添加了将骨骼链接到变换节点的支持 (bghgary)

setDirection从lookAt变换节点分解出函数(bghgary)

添加了对设置renderingGroupId和创建实例的支持AxesViewer (bghgary)

添加了压缩KTX纹理的vScale反转,因为它们在文件中被反转,并且UNPACK_FLIP_Y_WEBGLKTX不支持 (TrevorDev)

在boundingBoxGizmo不需要父级的情况下启用拖动 (TrevorDev)

InputsManager为FollowCamera (mrdunk)添加和键盘绑定

修正了FollowCamera InputsManager将旋转限制为360度时的拼写错误 (mrdunk)

在FollowCamera InputsManager,允许为每个摄像机移动轴 (mrdunk)选择修改键(Alt,Ctrl和/或Shift )

MouseWheel为FollowCamera (mrdunk)添加了绑定

调整方向MouseWheel绑定FollowCamera (mrdunk)

添加了FollowCamera参数的最大和最小限制 (mrdunk)

转换ArcRotateCamera为使用new BaseCameraPointersInput (mrdunk)

为GlowLayer (Sebavan)增加透明度支持

增加的选择forceDisposeChildren,以multiMaterial.dispose (danjpar)

Pointer为FollowCamera (mrdunk)添加了绑定

添加了带图标的Inspector light Gizmo (TrevorDev)

增加的选择multiMultiMaterials,以mesh.mergeMeshes (danjpar)

vrExperienceHelper(TrevorDev)暴露的后备相机失真度量选项

添加OnAfterEnteringVRObservable到webVRHelper (TrevorDev)

增加了对频的视频圆顶 (Sebavan)中并排和顶部/底部VR视

为BaseCameraPointersInput和ArcRotateCameraPointersInput(mrdunk)添加了单元测试

防止onActiveCameraChanged在渲染钻机相机时被解雇 (TrevorDev)

增加了MeshExploder课程(danjpar)

启用Observables使观察者成为最高或最低优先级 (TrevorDev)

防止网格轮廓在透明时通过网格显示 (TrevorDev)

DeviceOrientationCamera当方向传感器处于活动状态时,防止被鼠标输入修改(TrevorDev)

添加LoadScriptAsync工具辅助功能MackeyK24)

添加customShaderNameResolve到PBRMaterialBase允许子类指定自定义着色器信息 MackeyK24)

添加PBRCustomMaterial到材料库以允许轻松子类化PBR材料 MackeyK24)

在PBRCustomMaterial Lockphase)添加了粗糙度和微表面的自定义定义)

StandardRenderingPipeline启用HDR时添加了自动曝光支持 (julien-moreau)

添加了EquiRectangularCubeTexture类以使用支持浏览器画布的图像作为CubeTextures(Dennis Dervisis)

添加EquiRectangularCubeTextureAssetTask为能够EquiRectangularCubeTexture通过Asset Manager(Dennis Dervisis)

添加Matrix.RotationAlignToRef从一个向量到另一个向量获取旋转矩阵的方法(sable)

ArcRotateCamera现在将在修改其upVector时缓存必要的矩阵,而不是在每次需要时计算它们 (sable)

更新DracoCompression为使用网络工作者(bghgary)

添加LOD Babylon Mesh Entities到babylonFileLoader.ts (MackeyK24)的支持

OBJ装载机

添加了颜色顶点支持(不是标准的一部分) (brianzinn)

添加了在材料无法加载时静默失败的选项 (brianzinn)

添加了跳过装载材料的选项(brianzinn)

glTF装载机

添加了对网格实例化的支持,以便在多个节点指向同一网格时提高性能 (bghgary)

S切换为没有几何的glTF节点创建TransformNode对象而不是Mesh对象(bghgary)

添加了glTF JSON指针,指向节点,材质和纹理的元数据(bghgary)

在引擎上设置textureFormat时,启用在gltf2加载器中加载KTX纹理 (TrevorDev)

固定蒙皮网格的行为符合glTF(bghgary)的意图在蒙皮网格上设置覆盖网格,而不是重新显示到__root__变换节点

将加载的骨骼链接到为相应的glTF节点创建的变换节点

通过在装载过程中阻止材料弄脏来提高负载性能 (bghgary)

添加了动画组目标覆盖以支持自定义动画目标(MackeyK24)

增加了loadMeshPrimitiveAsync扩展支持 (MackeyK24)

glTF序列化器

添加了对导出的支持 KHR_lights_punctual

使用右手坐标系统从巴比伦场景导出glTF时,防止网格法线被翻转(Nicholas Barlow)

后处理库

材料库

添加了cameraOffset矢量属性以SkyMaterial根据地平线获得偏移量 (julien-moreau)

固定GradientMaterial以考虑禁用照明工作作为自发光 (julien-moreau)

固定菲涅尔项计算WaterMaterial(julien-moreau)

已修复TerrainMaterial.isReadyForSubMesh以删除WebGL警告 (julien-moreau)

已修复MixMaterial.isReadyForSubMesh以删除WebGL警告 (dad72)

基础设施

迁移CI到Azure DevOps管道(Sebavan)

为WebGL1和WebGL2 (Sebavan)创建测试套件

Bug修复

固定ArcRotateCamera.setTarget(位置有时是错误的) (Deltakosh)

固定TransformNode.setDirection(方向错误)(Deltakosh)

修改后的固定ArcRotateCamera控制upVector(Deltakosh)

anaglyph自由和通用相机的固定模式 (Deltakosh)

修复了FileLoader加载天空盒的问题,并为是否使用PBR或STDMaterial(Palmer-JC)添加了解析值

从rootNodes中删除了它们应该永远不存在的骨骼 (Deltakosh)

使用指针事件重新关注输入gui (TrevorDev)

当相机成为父母时,Gizmo缩放不一致 (TrevorDev)

使用动态纹理,具有相同名称的几何图形和reflectTextures (TrevorDev)导致意外结果的上下文丢失

CreateScreenshotUsingRenderTarget设置宽度和高度时拉伸镜面纹理 (TrevorDev)

VR辅助工具仅在进入VR时更新VR摄像头位置,旋转失踪,激光距离停止工作(TrevorDev)

gltfLoader transformNode更改后的固定VR控制器 (TrevorDev)

边界框fixedDragMeshScreenSize停止工作并允许旋转通过边界框(TrevorDev)

VVR助手会在VR中旋转非VR摄像头 (TrevorDev)

PointerDragBahavior使用Mesh作为基本类型,导致类型检查问题AbstractMesh (Poolminer)

TransformNode lookAt当节点的父节点有旋转时,不在世界空间中工作(TrevorDev)

MakeNotPickableAndWrapInBoundingBox输入在轴上缩放为0时出现意外行为 (TrevorDev)

修复了在glTF加载器中加载base64编码图像的问题 (bghgary)

在多相机场景中,Inspector会使相机的交互事件脱离 (TrevorDev)

修复了键盘输入后删除突出显示的文本,双击事件后的节拍延迟InputText (Saket Saurabh)

FSixDofDragBehavior当相机成为父母时固定(TrevorDev)

不在VR中时停用WebVR激光器 (TrevorDev)

使用absolutePosition而不是pivotPosition (TrevorDev)更新物理位置

在Mac OS上按下命令键时禁用的摄像机箭头键控制 (kcoley)

查看器不应设置receiveShadows在实例网格上 (TrevorDev)

旋转/缩放对齐不起作用 (TrevorDev)

更新评论TransformNode.rotationQuaternion以包括undefined作为潜在返回值之一(nathankmiller)

Cannon.js忽略了connectedPivot联合参数(TrevorDev)

修复区分大小写的路径 (mrdunk)

修复了更多区分大小写的路径 (mrdunk)

附加一个BoundingBoxGizmo子节点不应该删除它的父节点,旋转Gizmo应该处理父节点对象(TrevorDev)

ammo.js修复包括模块更新后引起的问题,并使用世界联系点与Oimo和Cannon(TrevorDev)保持一致

maxForce在Oimo插件中发出警告并设置默认力与其他人保持一致,Cannon.js不支持冒充者,Cannon.js柱轴,ammo.js在施加力/冲动时唤醒冒名顶替者(TrevorDev)

效用图层应在最后一个活动相机上渲染(TrevorDev)

PointerDragBehavior在拖动过程中旋转对象时不应让拖拽平面失去同步 (TrevorDev)

如果WebVR submitFrame失败,请不要崩溃应用程序失去同步 (TrevorDev)

修复捏合动作FollowCameraPointersInput(mrdunk)

Tools.CreateScreenshot停止工作(TrevorDev)

检查器在连接到Gizmo时显示重复的节点(TrevorDev)

为文件添加了缺少的依赖项以支持从直接路径中包含它们(例如import "@babylonjs/core/Helpers/sceneHelpers";) (TrevorDev)

AssetContainer不应该丢弃它不包含的对象。支持environmentTexture添加/删除(TrevorDev)

修复了mesh.visibility在设置某些材质属性时无法正常工作,这些属性会更改alpha的解释(例如折射,镜面反射等) (bghgary)

使用AssetContainer(TrevorDev)加载/删除GLTF / obj / babylon文件时固定材料和纹理泄漏

在加农炮世界步骤中移除冒名顶替者时避免例外(TrevorDev)

固定ArcRotateCamera除零误差(沿轴向上看)rebuildAnglesAndRadius(sable)

固定ArcRotateCamera rebuildAnglesAndRadius时upVector修改 (sable)

固定代码分支,不会尝试(重新)加载EquiRectangularCubeTexture/ HDRCubeTexture当缓存返回空或损坏时InternalTexture (Dennis Dervisis)

添加了错误事件监听器(冒泡onError回调链),以防EquiRectangularCubeTexture无法加载,因为路径错误或IO问题(Dennis Dervisis)

使用多点触控设备按下时,3D GUI按钮不再会向上扩展 (TrevorDev)

当双VR控制器与元素交互时,2D GUI元素将使用最后单击的控制器而不是正确的控制器(TrevorDev)

虚拟键盘在显示时不显示(TrevorDev)

核心引擎

修复了mesh.alwaysSelectAsActiveMesh阻止使用layerMask 的错误(Deltakosh)

修复了指针向上两次火灾的错误(Deltakosh)

修复了每个相机更新粒子系统一次而不是每帧更新一次的错误 (Deltakosh)

LinesMesh intersectionThreshold通过Ray检查与a的交点时直接使用其值来正确处理,而不是相应地扩展BoundingInfo (barroij)

添加了一个InstancesLinesMesh用于创建实例的类,LinesMesh以便每个实例都可以拥有自己的intersectionThreshold值 (barroij)

修复了LineEdgesRenderer用于边缘渲染LinesMesh以正确处理LinesMesh由断开线组成的s并使其适用于LinesMesh(barroij)

固定Matrix.toNormalMatrix功能 (barroij)

向资产容器添加缺失效果图层 (TrevorDev)

固定效果层与多种材料的兼容性 (Sebavan)

添加了一个DeepImmutable类型,以指定引用的对象应该被认为是递归不可变的,这意味着它的所有属性都是readonly,并且如果属性是对对象的引用,则此对象也是递归不可变的。 (barroij)

VideoTexture关闭自动播放时修复海报属性。

修正了MeshBuilder.CreatePlane在指定源平面时创建的平面网格的位置和旋转(sable, bghgary)

固定检查员动态加载 (Sebavan)

修复infiniteDistance不再工作(Sebavan)

修复SolidParticle BoundingSphere了SolidParticleSystem (barroij)更新中的错误

更新了拾取,以便当拾取的网格为a时LinesMesh,拾取线的索引将返回到faceId属性中PickingInfo,就像我们使用面部索引一样,拾取的Mesh是三角形面 (barroij)

修复了网格可观测量的无意克隆 (Sebavan)

修复了使用AMD装载程序(Sebavan)的Inspector解决方案

修复了一个错误,当一个调用updateIndices导致通过在那种情况下重新创建subMeshes来改变索引缓冲区的大小时 (barroij)

添加了在vrExperienceHelper中禁用gazeTracker颜色更改的选项(TrevorDev)

添加PointerDragBehavior validateDrag谓词以停止拖动到特定点 (TrevorDev)

添加了自动更新触摸操作 #5674(Sebavan)

为小玩意添加了半球形照明以避免平坦的外观(TrevorDev)

修复了设置为#6055(susares)导致WebRequest.open崩溃的错误WebRequest.CustomRequestHeaders

修复了Mesh.clone如果没有使用physicsEngineComponent导致崩溃的错误(barroij)

固定变焦惯性使得难以使用ArcRotateCamera缩小 (TrevorDev)

添加isInFrustum了检查选项,rigCameras以便viewMatrix更新rigCameras可以通知其父级 (TrevorDev)

正确处理无索引LinesMesh(渲染和拾取) (barroij)

装载机

新增失踪loadedAnimationGroups到MeshAssetTask (bghgary)

新增失踪linkTransformNode到BabylonFileLoader (MackeyK24)

打破变化

Replaced all references to XmlHttpRequest with WebRequest (which provides the same signatures) (Deltakosh)

Set Database.IDBStorageEnabled to false by default (Deltakosh)

Renamed Database.openAsync to Database.open (Deltakosh)

Renamed scene.database to scene.offlineProvider (Deltakosh)

Removed BoundingBox.setWorldMatrix and changed BoundingBox.getWorldMatrix to return a DeepImmutable (barroij)

Changed Matrix's accessor m and methods toArray and asArray to return a DeepImmutable as the underlying array is not supposed to be modified manually from the outside of the class (barroij)

Removed some deprecated (flagged since 3.0) properties and functions, all of which are superceded by the SceneInstrumentation class unless otherwise specified (Deltakosh)scene.getInterFramePerfCounter()

scene.interFramePerfCounter

scene.getLastFrameDuration()

scene.lastFramePerfCounter

scene.getEvaluateActiveMeshesDuration()

scene.evaluateActiveMeshesDurationPerfCounter

scene.getRenderTargetsDuration()

scene.getRenderDuration()

scene.renderDurationPerfCounter

scene.getParticlesDuration()

scene.particlesDurationPerfCounter

scene.getSpritesDuration()

scene.spriteDuractionPerfCounter

engine.drawCalls

engine.drawCallsPerfCounter

shadowGenerator.useVarianceShadowMap (superceded by useExponentialShadowMap)

shadowGenerator.useBlurVarianceShadowMap (superceded by useBlurExponentialShadowMap)

The glTF loader now creates InstancedMesh objects when two nodes point to the same mesh (bghgary)

The glTF loader now creates TransformNode objects instead of Mesh objects for glTF nodes without geometry (bghgary)Note: The root node is still a Mesh object and is still the first in the returned list of meshes

TransformNode objects are excluded from the returned list of meshes when importing mesh

TransformNode objects do not raise onMeshLoaded events

Renamed xAxisMesh, yAxisMesh, and zAxisMesh of AxesViewer to xAxis, yAxis, and zAxis respectively and changed return to a TransformNode to represent the parent node of the cylinder and line of the arrow (bghgary)

Disallowed passing the engine into Viewport.toglobal to prevent circular dependency (Sebavan)

Moved Vector3.UnprojectRayToRef to Ray.unprojectRayToRef instance method to decrease class coupling (Sebavan)

Moved Material.ParseMultiMaterial to MultiMaterial.ParseMultiMaterial to decrease class coupling (Sebavan)

Removed babylon.no-module.max.js javascript version has the Webpack UMD bundle covers both ([Sebavan]

(https://github.com/Sebavan))

Removed es6.js javascript as it is now available as a true es6 NPM package (Sebavan)

Removed babylon.worker.js javascript following the lack of usage from the feature ([Sebavan]

(https://github.com/Sebavan))

Removed Primitive Geometries as they were not in use since 2.0 (Sebavan)

Changed shouldExportTransformNode callback in glTF serializer options to shouldExportNode (kcoley)

Changed PhysicsHelper method parameters for event calls (bobalazek)

3.3.0

Major updates

DocumentationEntire codebase is now documented. API documentation

GUINew GUI 3D controls toolset. Complete doc + demos (Deltakosh)

New GUI control: Grid (Deltakosh)

New GUI control: InputPassword (theom)

New GUI container SelectionPanel (JohnK)

Gizmo Support (TrevorDev)Gizmo and GizmoManager classes used to manipulate meshes in a scene. Gizmo types include: position, scale, rotation and bounding box Doc (TrevorDev)

New behaviors: PointerDragBehavior, SixDofDragBehavior and MultiPointerScaleBehavior to enable smooth drag and drop/scaling with mouse or 6dof controller on a mesh Doc (TrevorDev)

Added attachToBoxBehavior to attach UI to a bounding box (TrevorDev)

Gizmo manager's internal gizmos are now public (TrevorDev)

Ability to customize meshes on gizmos (TrevorDev)

Added ignoreChildren field to bounding box to save performance when using heavily nested meshes (TrevorDev)

Add uniform scaling drag support to the scale gizmo (TrevorDev)

Support interacting with child elements (TrevorDev)

BoundingBox gizmo support for including/excluding descendants when computing the bounding box (TrevorDev)

Drag start and stop events for all gizmos (TrevorDev)

Particle system improvements (Deltakosh)Added a ParticleHelper class to create some pre-configured particle systems in a one-liner method style. Doc (Deltakosh) / (DevChris)

Improved CPU particles rendering performance (up to x2 on low end devices)

Added support for isBillboardBased. Doc

Added support for billboard mode. Doc

Added support for minScaleX, minScaleY, maxScaleX, maxScaleY. Doc

Added support for radiusRange for sphere emitter. Doc

Added support for radiusRange and heightRange for cone emitter. Doc

Added new point emitter. Doc

Added new hemispheric emitter. Doc

Added support for ParticleSystem.BLENDMODE_ADD alpha mode. Doc

Added support for color gradients. Doc

Added support for pre-warming. Doc

Added support for minInitialRotation and maxInitialRotation. Doc

Added support for size gradients. Doc

Added support for life time gradients. Doc

Added support for angular speed gradients. Doc

Added support for velocity gradients. Doc

Added support for limit velocity gradients. Doc

Added support for drag gradients. Doc

Added support for noise textures. Doc

Added support for emit rate gradients. Doc

Added support for ramp gradients. Doc

Start size gradient support for particles. Doc (TrevorDev)

Attached sub emitters. Doc (TrevorDev)

Cylinder particle emitter and constructor in baseParticle Doc (TrevorDev)

Added support for cylinder particle emitter. Doc (TrevorDev)

Added startDelay to support delaying system start of sub emitters. Doc (TrevorDev)

Added support for random start cell when using animated sprite sheets. Doc

Added SceneComponent to help decoupling Scene from its components. (sebavan)

Added Environment Texture Tools to reduce the size of the usual .DDS file (sebavan)

Playground can now be used with TypeScript directly! Demo (Deltakosh, NasimiAsl)

GUI and Inspector are now ES-Modules (RaananW)

Added support for noise procedural textures. Doc (Deltakosh)

Added new PhotoDome object to display 360 photos. Demo (SzeyinLee)

Added Video Recorder. Doc (sebavan)

Updates

Updated TypeScript version to new major 3.0.1 (christopherstock)

All NPM packages have latest and preview streams (RaananW)

Added New Tools Tab in the inspector (env texture and screenshot tools so far) (sebavan)

Moved to gulp 4, updated dependencies to latest (RaananW)

GUI

Added dead key support and before key add observable to InputText. Doc (theom)

Added TextBlock.computeExpectedHeight, added TextWrapping.Ellipsis as TextBlock.wordWrapping possible value (adrientetar)

New vertical mode for sliders in 2D GUI. Demo (Saket Saurabh)

Added isEnabled and disabledColor property to Gui Control (barteq100)

Added support for connecting multiple InputText controls to VirtualKeyboard and can disconnect individual InputTexts. (brian Zinn)

Core Engine

Improved the way world matrices were computed (Deltakosh)

Added scene.rootNodes to track root nodes (ie. nodes with no parent) (Deltakosh)

Added scene.pickSpriteWithRay function (Deltakosh)

Added support for multiple clip planes. Demo (Deltakosh)

Added new MixMaterial to the Materials Library allowing to mix up to 8 textures (julien-moreau)

Added new BoundingInfo.scale() function to let users control the size of the bounding info (Deltakosh)

Added new Animatable.waitAsync function to use Promises with animations. Demo (Deltakosh)

Added the choice of forming a closed loop to the catmull-rom-spline curve3 (johnk)

Added support for specifying the center of rotation to textures (bghgary)

Added webVR support for Oculus Go (TrevorDev)

Added ability to not generate polynomials harmonics upon prefiltered texture creation (sebavan)

Added predicate function to customize the list of mesh included in the computation of bounding vectors in the getHierarchyBoundingVectors method (sebavan)

Added webVR constructor options: disable laser pointer toggle, teleportation floor meshes (TrevorDev)

Get a root mesh from an asset container, load a mesh from a file with a single string url (TrevorDev)

UtilityLayer class used to render another scene as a layer on top of an existing scene (TrevorDev)

AnimationGroup has now onAnimationGroupEnd observable (RaananW)

New serialize and Parse functions to serialize and parse all procedural textures from the Procedural Textures Library (julien-moreau)

Added a new mesh.ignoreNonUniformScaling to turn off non uniform scaling compensation (Deltakosh)

AssetsManager tasks will only run when their state is INIT. It is now possible to remove a task from the assets manager (RaananW)

Added sprite isVisible field (TrevorDev)

EnvironmentHelper will recreate ground and skybox meshes if force-disposed (RaananW)

Added viewport caching mechanism in engine (sebavan)

Added unpackFlipY caching mechanism in engine (sebavan)

Added rebind optimization of video texture (sebavan)

Fix Background Material effect caching (sebavan)

Prevent texture getSize to generate garbage collection (sebavan)

Prevent lodGenerationScale and lodGenerationOffset to force rebind (sebavan)

Added poster property on VideoTexture (sebavan)

Added onUserActionRequestedObservable to workaround and detect autoplay video policy restriction on VideoTexture (sebavan)

Sound now accepts MediaStream as source to enable easier WebAudio and WebRTC integrations (menduz)

Vector x, y and z constructor parameters are now optional and default to 0 (TrevorDev)

Added and removed camera methods in the default pipeline (TrevorDev)

Added internal texture format support for RenderTargetCubeTexture (PeapBoy)

Added canvas toBlob polyfill in tools (sebavan)

Added RawCubeTexture class with RGBD and mipmap support (bghgary)

Added effect layer per rendering group addressing (sebavan)

Added predicate function targetMask argument to scene.beginWeightedAnimation, scene.beginAnimation, scene.stopAnimation, and animatable.stop to allow for selective application of animations. (fmmoret)

Oculus GO and GearVR 3dof controllers will now rotate with the user's head if they turn around in their room (TrevorDev)

Added onPoseUpdatedFromDeviceObservable to webVRCamera to detect when the camera's pose has been updated (TrevorDev)

Added gltf light falloff (sebavan)

Added falloff type per light to prevent material only inconsistencies (sebavan)

Added WeightedSound; selects one from many Sounds with random weight for playback. (najadojo)

Added HDR support to ReflectionProbe (Deltakosh)

Added ACES ToneMapping to the image processing to help getting more parity with other engines (sebavan)

Added Image Processing to the particle system to allow consistency in one pass forward rendering scenes (sebavan)

Added support for main WebGL2 texture formats (PeapBoy)

Added fadeInOutBehavior and tooltipText for holographic buttons (TrevorDev)

StartDrag method added to pointerDragBehavior used to simulate the start of a drag (TrevorDev)

Added EdgesLineRenderer to address #4919 (barteq100)

Added ambientTextureImpactOnAnalyticalLights in PBRMaterial to allow fine grained control of the AmbientTexture on the analytical diffuse light (sebavan)

BoundingBoxGizmo scalePivot field that can be used to always scale objects from the bottom (TrevorDev)

Improved _isSyncronized performance and reduced GC in TransformNode.computeWorldMatrix by directly reading property (Bolloxim)

Added supports for reflectionMatrix in Skybox Mode Cube Texture allowing offsetting the world center or rotating the matrix (sebavan)

Improved performance of cached nodes but ensuring parent always updates cache. This removes failed isSynchronized test that meant computeWorldMatrix would always have to rebuild. On large scenes this could double framerate. (Bolloxim)

Added FXAA and MSAA support to the StandardRenderingPipeline (julien-moreau)

Make teleportCamera public in VR experience helper (TrevorDev)

Added optional alphaFilter parameter to CreateGroundFromHeightMap to allow for heightmaps to be created that ignore any transparent data (Postman-nz)

Fixed renormalization of mesh weights to in cleanMatrixWeights function. (Bolloxim)

Added a validationSkin function to report out any errors on skinned meshes. (Bolloxim)

glTF Loader

Added support for KHR_texture_transform (bghgary)

Added onNodeLODsLoadedObservable and onMaterialLODsLoadedObservable to MSFT_lod loader extension (bghgary)

Added glTF loader settings to the GLTF tab in the debug layer (bghgary)

Added debug logging and performance counters (bghgary)

Added support for EXT_lights_imageBased (bghgary)

Added support for MSFT_audio_emitter (najadojo)

Added support for custom loader extensions (bghgary)

Added support for validating assets using glTF-Validator (bghgary)

Added automatically renormalizes skinweights when loading geometry. Calls core mesh functions to do this (Bolloxim)

glTF Serializer

Added support for exporting the scale, rotation and offset texture properties (kcoley)

Viewer

No fullscreen button on small devices (RaananW)

Nav-Bar is now displayed on fullscreen per default (RaananW)

Viewer configuration supports deprecated values using the new configurationCompatibility processor (RaananW)

Shadows will only render while models are entering the scene or animating (RaananW)

Support for model drag and drop onto the canvas (RaananW)

New lab feature - global light rotation (RaananW)

New NPM package - babylonjs-viewer-assets, to separate the binary assets and the code of the viewer (RaananW)

A new HD-Toggler button allows setting a better hardware scaling rate (RaananW)

An initial support for WebVR is implemented (RaananW)

It is now possible to choose the element that goes fullscreen in the default viewer (RaananW)

The default viewer has a plugin system with which new buttons can be added externally (RaananW)

The extended configuration is now the default when not providing the "extended" parameter (RaananW)

viewer.updateConfiguration also accepts a URL to download configuration remotely (RaananW)

Viewer supports 3D printing on windows 10 (RaananW)

The viewer's environment map is using the new .env feature (RaananW)

Materials Library

Added unlit mode to lava material (sebavan)

Bug fixes

VR experience helper will now fire pointer events even when no mesh is currently hit (TrevorDev)

RawTexture.CreateAlphaTexture no longer fails to create a usable texture (TrevorDev)

SceneSerializer.SerializeMesh now serializes all materials kinds (not only StandardMaterial) (julien-moreau)

WindowsMotionController's trackpad field will be updated prior to it's onTrackpadChangedObservable event (TrevorDev)

VR experience helper's controllers will not fire pointer events when laser's are disabled, instead the camera ray pointer event will be used (TrevorDev)

Node's setParent(node.parent) will no longer throw an exception when parent is undefined and will behave the same as setParent(null) (TrevorDev)

Mesh.MergeMeshes flips triangles on meshes with negative scaling (SvenFrankson)

Avoid firing button events multiple times when calling vrController.attachMesh() (TrevorDev)

Parse geometry when load binary mesh (SinhNQ)

Removing observers during observable notify should not skip over valid observers (TrevorDev)

Initializing gamepadManager should register the gamepad update events (TrevorDev)

Do not generate mipmaps for RawCubeTexture if OES_texture_float_linear and/or EXT_color_buffer_float extensions are not supported (PeapBoy)

Do not modify passed camera array parameter when creating a default pipeline (TrevorDev)

Fixed issue where gaze trackers were appearing even after leaving VR (atulyar)

AdvancedDynamicTexture should not overwrite skipOnPointerObservable to false (TrevorDev)

Fixed issue where VRExperienceHelper.onExitingVR observable was being fired twice (atulyar)

Avoid firing onExitingVR observable multiple times when calling exitVR() and add observables to Viewer that can be used instead of the ones in VRExperienceHelper (atulyar)

GizmoManager should hide existing gizmos if a non-attachable mesh is selected (TrevorDev)

Ignore isPickable = false for vr ray casting if the mesh's name matches the specified floorMeshName to maintain backwards compatability (TrevorDev)

Fix File Loading if hosted from file:-Protocol (ltetzlaff)

Do not throw error when updating a controller with no left stick (TrevorDev)

Exiting VR can result in messed up view (TrevorDev)

Dispose existing gazeTrackers when setting a new one (TrevorDev)

Set missing parentId in Mesh.serialize() for instances (julien-moreau)

Do not modify pivot point when using bounding box gizmo or behaviors (TrevorDev)

GPUParticleSystem does not get stuck in burst loop when stopped and started (TrevorDev)

trackPosition:false not working in webVRCamera/controllers (TrevorDev)

Spring Joint could not be removed (TrevorDev)

Sometimes duplicate controller models are loaded in VR (TrevorDev)

Particle emit rate and start size over time do not reset on every particle system start (TrevorDev)

Core Engine

Fixed shadowEnabled property on lights. Shadows are not visible anymore when disabled (sebavan)

Physics unregisterOnPhysicsCollide didn't remove callback correctly (RaananW)

Added missing getter and setter for global exposure in ColorCurves (RaananW)

Fixed an issue with view matrix when ArcRotateCamera was used with collisions (Deltakosh)

Fixed a bug with setting unlit on PBRMaterial after the material is ready (Wrong dirty flags) (bghgary)

Fixed HighlightLayer support on browsers not supporting HalfFloat (sebavan)

Fixed support for R and RG texture formats (sebavan)

Fixed updatable parameter setting in the SPS (jerome)

Angular and linear velocity were using the wrong method to copy values to the physics engine (RaananW)

Fixed env texture generation in Byte Mode (sebavan)

Oimo.js now receives quaternion and not euler when a body is being constructed (RaananW)

Improving visual quality on SSAO2 shader (CraigFeldspar)

Fixed a bug where changing the sample count on PostProcess would not update the WebGL Texture (CraigFeldspar)

Fixed multi camera support in defaultRenderingPipeline depth of field (sebavan)

Viewer

Fix Navbar Interaction on Mozilla/Firefox (SzeyinLee)

Fix Animation Slider Interaction on Mozilla/Firefox (sebavan)

Fix Animation Slider Clickable area size Cross Plat (sebavan)

Ground material didn't take the default main color is no material definition was provided (RaananW)

Model configuration was not extended correctly if loaded more than one model (RaananW)

It wasn't possible to disable camera behavior(s) using configuration (RaananW)

Animation blending was always set to true, ignoring configuration (RaananW)

Animation navbar now updates correctly when a new model is loaded (RaananW)

Non-normalized meshes didn't center and focus correctly (RaananW)

Meshes with skeletons could have incorrect animations (RaananW)

Removed element IDs from viewer's templates to allow muitiple viewers in a single page (RaananW)

Viewer is not using Engine.LastCreatedScene anymore, to support multiple viewers in a single page (RaananW)

Template location was ignored if html was defined (RaananW)

Drag and Drop only worked if a model was already loaded before (RaananW)

It was not possible to add new custom optimizers, only use existing ones (RaananW)

Button texts were truncated incorrectly (RaananW)

Animation names with more than one word didn't work correctly (RaananW)

Loaders

STL Loader only supported binary downloads and no data: urls (RaananW)

OBJ Loader is now an async loader (RaananW)

GLTF Loader does not have texture conflicts on subsequent loads anymore (sebavan)

Breaking changes

Fixing support for R and RG texture formats made us remove TextureFormat_R32F and TextureFormat_RG32F as they were mixing formats and types. Please, use the respective TextureFormat_R and TextureFormat_RG with the Float types (sebavan)

Replacing scene.onRenderingGroupObservable by onBeforeRenderingGroupObservable and onAfterRenderingGroupObservable to prevent the stage check (sebavan)

Replacing IActiveMeshCandidateProvider and the according scene setter by a set of custom predicates scene.getActiveMeshCandidates, scene.getActiveSubMeshCandidates, scene.getIntersectingSubMeshCandidates and scene.getCollidingSubMeshCandidates (sebavan). This helps opening more customization to everybody.

3.2.0

Major updates

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)

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 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: added basic support for Daydream and Gear VR (brianzinn)

Introduced support for local cubemaps. Demo here (deltakosh)

Added VideoDome class to easily support 360 videos. Demo here (DavidHGillen)

Added GlowLayer to easily support glow from emissive materials. Demo here (sebavan)

New AssetContainer class and loading methods (trevordev)

Added sub emitters for particle system which will spawn new particle systems when particles die. Demo here (IbraheemOsama)

New Babylon.js and glTF exporter for Autodesk Maya (Noalak)

New glTF exporter for Autodesk 3dsmax (Noalak)

New glTF serializer. You can now export glTF or glb files directly from a Babylon scene (kcoley)

Physics - Latest production version of Oimo.js is being used - 1.0.9 (RaananW)

Introduces PCF and PCSS shadow support in WebGL 2 (sebavan))

Documentation

Tons of functions and classes received the code comments they deserved (All the community with a special thanks to John King)

Moved the class API documentation to Typedoc (deltakosh)

Updates

Added support for 16bits TGA (deltakosh)

New AnimationPropertiesOverride class used to simplify setting animation properties on child animations. Documentation (deltakosh)

New Texture.UseSerializedUrlIfAny static property to let textures serialize complete URL instead of using side by side loading (deltakosh)

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)

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)

WebVR:VRExperienceHelper will create an empty controller model so that controller interactions can be used while the actual model is still loading (trevordev)

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)

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)

Support multiple simultaneous WebVR controller GUI interactions in VRExperienceHelper (trevordev)

Ability to set a mesh to customize the WebVR gaze tracker (trevordev)

AssetsManager will now clear its tasks list from all successfully loaded tasks (deltakosh)

Added documentation to WebVRCamera and VRExperienceHelper (trevordev)

Introduced isStroke on HighlightLayerOptions which makes the highlight solid (PixelsCommander)

The observables 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)

Viewer:initScene and initEngine can now be extended. onProgress during model loading is implemented as observable (RaananW)

There is now an option to paste payload instead of a URL for configuration (RaananW)

Models can be loaded asynchronously using JavaScript (RaananW)

Scene Optimizer integrated in viewer (RaananW)

The viewer supports custom shaders in the configuration (RaananW)

Introducing the viewer labs - testing new features (RaananW)

Model can be normalized using configuration, camera is dynamically configured (RaananW)

It is now possible to update parts of the configuration without recreating the objects (RaananW)

Viewer supports model animations and multi-model loading (RaananW)

Viewer's declaration file automatically generated (RaananW)

Build process:New watcher configuration for VSCode. Now the task only compiles changed files (sebavan)

Gulp process now supports multiple outputs when using webpack. (RaananW)

Extra/external declarations can be prepended to final declarations during build. (RaananW)

Extra/external declarations can be prepended to final NPM declarations during build. (RaananW)

NPM package now has a dependency system, updated during build. (RaananW)

SPS internal storage of each solid particle rotation matrix (jbousquie)

SPS particle parenting feature (jbousquie)

KeepAssets class and AssetContainer.moveAllFromScene (HoloLite trevordev)

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)

glTF loader:glTF loader now supports the KHR_lights extension (MiiBond)

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 support for primitive modes to glTF 2.0 loader (bghgary]

Add support for sparse accessors to glTF 2.0 loader (bghgary)

Add support for cameras to glTF 2.0 loader (bghgary]

Add support for preprocessing urls to glTF 2.0 loader (bghgary]

Added Draco mesh compression support to glTF 2.0 loader. (bghgary)

Added unlit material extension support to 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]

Added promise-based async functions for initWebVRAsync and useStandingMatrixAsync (trevordev)

Add stroke (outline) options on GUI text control (SvenFrankson)

Add isThumbClamped option on GUI slider control (JeanPhilippeKernel)

Add floating point texture support for RenderTargetCubeTexture (PeapBoy)

Support for mutli-touch when interacting with multiple gui elements simultaneously (trevordev)

Added Tools.WorkerPool class for web worker management. (bghgary)

Support depth maps for multiple active cameras for post processes like depth of field (trevordev)

Integrates depth texture support in the engine (sebavan)

Default fragment shader will clamp negative values to avoid underflow, webVR post processing will render to eye texture size (trevordev)

Supports Environment Drag and Drop in Sandbox (sebavan)

EnvironmentHelper has no an onError observable to handle errors when loading the textures (RaananW)

Tests for sharpen, chromatic aberration, default pipeline and enable/disable post processes (trevordev)

onPointer* callbacks have now the event type as a 3rd variable (RaananW)

Lightmap texture in PBR material follow the gammaSpace Flag of the texture (sebavan)

Added setTextureFromPostProcessOutput to bind the output of a postprocess into an effect (trevordev)

Updated bloom effect to only bloom areas of the image above a luminance threshold (trevordev)

Cannon and Oimo are optional dependencies (RaananW)

Shadows - Introduces Normal Bias (sebavan))

Earcut is an external, optional dependency. (RaananW)

Return animation groups when calling SceneLoader.ImportMesh. (bghgary]

Add support for normalized and non-float data to Buffer and VertexBuffer. (bghgary]

New serialize and parse functions for effect layers (Highlight and Glow layers) (julien-moreau)

GUI: Introduced MultiLine which will draw lines between any number of meshes, controls and points. Documentation (royibernthal)

Added alphaCutOff support for StandardMaterial (deltakosh)

New serialize and Parse functions for SSAO2 Rendering Pipeline (julien-moreau)

Added furOcclusion property to FurMaterial to control the occlusion strength (julien-moreau)

Bug fixes

setPivotMatrix was 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 uses internal temporary Vector3 instead of Tmp.Vector3 to avoid possible concurrent uses (jbousquie)

Fixed a bug when calling load on an empty assets manager - #3739 (RaananW)

Enabling teleportation in the vr helper class caused a redundant post process to be added (trevordev)

(Viewer) Fixed a bug where loading another mesh positioned it incorrectly (RaananW)

(Viewer) Disabling templates now work correctly (RaananW)

Scale vr controllers by deviceScale when it is set in VRExperienceHelper (trevordev)

AMD "define" declaration is no longer anonymous (RaananW)

Collision worker didn't initialize instanced meshes correctly - #3819 (RaananW)

postMessage calls in webworkers were fixed (RaananW)

Fixed WebCam Texture on Firefox and Edge - #3825 (sebavan)

Add onLoadObservable on VideoTexture - #3845 (sebavan)

beforeRender is now triggered after the camera updated its state - #3873 (RaananW)

Reflection and refraction no longer apply a toLinear conversion twice when applying image processing as a post process - #4060 (trevordev)

Fix ember.js compatibility in PostProcessRenderEffect (sebavan)

Fix ember.js compatibility in BloomEffect and Camera (kaysabelle)

Fix bug with glTF animation when animating bone scale. (bghgary]

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 now creates a mesh for each primitive instead of merging the primitives together into one mesh. If a mesh only has one primitive, the behavior is the same as before. This change only affects meshes that have multiple primitives. (bghgary]

Engine's onCanvasPointerOutObservable will now return a PointerEvent instead of the Engine. (trevordev)

Removed public references to default rendering pipeline's internal post process (trevordev)

Bone.setScale does not support scaleChildren property anymore. You can use Bone.scale to achieve the same effect (deltakosh)

Vector3 & Vector4:MinimizeInPlace has been renamed to minimizeInPlace

MaximizeInPlace has been renamed to maximizeInPlace

3.1.0

Major updates

Added VRExperienceHelper to create WebVR experience with 2 lines of code. Documentation (davrous, TrevorDev)

Added BackgroundMaterial. Documentation (sebavan)

Added EnvironmentHelper. Documentation (sebavan)

Added support for WebGL context lost and restored events. Documentation (deltakosh)

Added support for non-pow2 textures when in WebGL2 mode (deltakosh)

Engine can now be initialized with an existing WebGL context (deltakosh)

Introduced behaviors. Documentation (deltakosh)

Added support for WebGL Occlusion queries. Documentation (Ibraheem Osama)

New behaviors for ArcRotateCamera. Documentation AutoRotation (deltakosh)

Framing (deltakosh)

Bouncing (deltakosh)

New InputText for Babylon.GUI. Documentation (deltakosh)

New VirtualKeyboard for Babylon.GUI. Documentation (deltakosh / adam)

Added support for depth pre-pass rendering. Documentation (deltakosh)

Added support for material.separateCullingPass. Documentation (sebavan)

Added support for Windows Motion Controllers (Lewis Weaver)

Added support for Particle animation in ParticleSystem. Documentation (Ibraheem Osama)

More robust TypeScript code with strictNullChecks, noImplicitAny, noImplicitThis and noImplicitReturns compiler options (deltakosh and RaananW)

Introduced NullEngine which can be used to use Babylon.js in headless mode. Documentation (deltakosh)

New instrumentations tools. Documentation (deltakosh)

Complete rework of Unity3D exporter. Documentation (MackeyK24)

Introducing the BabylonJS viewer, an HTML-based 3D/model viewer, with Babylon at its core. Documentation (RaananW)

Full NPM support for BabylonJS and its modules, based on UMD and including Typings. BabylonJS on npm (RaananW)

Updates

Introduced TransformNode class as a parent of AbstractMesh. This class was extensively asked by the community to hold only transformation for a node (deltakosh)

Collider object is now exposed on meshes. It can be used to get precise information about mesh to mesh collisions (used with mesh.moveWithCollisions function) (deltakosh)

Added boundingInfo.centerOn to recreate the bounding info to be centered around a specific point given a specific extend (deltakosh)

Added mesh.normalizeToUnitCube to uniformly scales the mesh to fit inside of a unit cube (1 X 1 X 1 units) (deltakosh)

Added scene.onDataLoadedObservable which is raised when SceneLoader.Append or SceneLoader.Load or SceneLoader.ImportMesh were successfully executed (deltakosh)

Support for adaptiveKernelBlur on MirrorTexture (deltakosh)

Support for non-uniform scaling. Normals are now correctly computed (deltakosh)

Added shadowGenerator.addShadowCaster and shadowGenerator.removeShadowCaster helper functions (deltakosh)

Several inspector improvements (temechon)

New observables for actions: onBeforeExecuteObservable for all actions and onInterpolationDoneObservable for InterpolateValueAction (deltakosh)

New observables for gamepads: onButtonDownObservable, onButtonUpObservable, onPadDownObservable, onPadUpObservable (deltakosh)

New camera.storeState() and camera.restoreState() functions to store / restore cameras position / rotation / fov. Documentation (deltakosh)

POW2 textures rescale is now done by shaders (It was previously done using canvas) (deltakosh)

Added SceneLoader.CleanBoneMatrixWeights to force the loader to normalize matrix weights when loading bones (off by default) (deltakosh)

Added camera.onViewMatrixChangedObservable and camera.onProjectionMatrixChangedObservable (deltakosh)

Added support for folders when drag'n'dropping into the sandbox (deltakosh)

Better serialization support (deltakosh)

Introduced performanceMonitor class to get better FPS analysis (deltakosh)

GUI: Added support for pointer move events on projected UI (deltakosh)

Normals are generated automatically by StandardMaterial if meshes do not have normals (deltakosh)

Added mesh.onMaterialChangedObservable to notify when a new material is set (deltakosh)

Improved the SPS perfs for dead or invisible solid particles (jerome)

Added enableDepthSort parameter to the SPS in order to sort the particles from the camera position (jerome)

Added pivot property to the SPS solid particles (jerome)

Added the mesh facet depth sort to FacetData (jerome)

Added LineSystem and LineMesh per point colors (jerome)

Added AdvancedDynamicTexture.renderScale to allow users to render at higher DPI (deltakosh)

WaterMaterial works on VR (RaananW)

Playground has an optional createEngine function to replace the default engine. Example (RaananW)

Error handling in the Assets Manager was revamped and now also includes a message and an exception (if provided). Documentation (RaananW)

Asset Task has a state (INIT, RUNNING, DONE and ERROR). Documentation (RaananW)

Added new options to the physics impostor constructor - ignoreParent and diableBidirectionalTransformation. Documentation (RaananW)

It is now possible to define which loader to use when loading assets using the SceneLoader. Commit (RaananW)

Added scope option to Observerable (adam)

Added shadowBlur, shadowOffsetX, shadowOffsetY, shadowColor to GUI Controls (adam)

Added alignWithNormal to AbstractMesh (adam)

Bug fixes

Fixed a bug with ellipsoid offset not being taking in account on cameras (deltakosh)

Fixed a bug with ellipsoid offset badly taking in account on meshes (deltakosh)

Fixed a bug with PBR on iOS (sebavan)

MTLLoader didn't parse values correctly (RaananW)

Fixed an error with child positions of parents in the physics engine (RaananW)

Fixed a bug with error while executing onSuccess callbacks in the Assets manager. (RaananW)

Fixed a bug with the Heightmap impostor when the heightmap is scaled or rotated. Commit (RaananW)

Fixed an error with deterministic step. (RaananW)

Fixed a bug with controller jitter when in VR. (RaananW)

Fixed a bug with impostor jitter when in VR. (RaananW)

Fixed a bug with GUI Slider not working correctly when rotated (adam)

Fixed IE11 "spacebar" bug with GUI InputText (adam)

Breaking changes

Gamepads was removed in favor of scene.gamepadManager

DynamicFloatArray, MapTexture and RectPakingMap were removed because there were not used anymore

IAssetTask was removed in favor of AbstractAssetTask class

WebVR 1.0 support removed.

3.0.0

Major updates

WebGL2 context support. WebGL2 is now used instead of WebGL 1 when available. More info here (deltakosh)

Complete WebVR 1.1 support including controllers for HTC Vive and Oculus. More info here (raanan & davrous)

Complete rewrite of PBRMaterial. Introduced two new helper materials: pbrMetallicRoughnessMaterial and pbrSpecularGlossinessMaterial. Demo - More info here (Sebastien Vandenberghe)

Support for Morph Targets. More info here (deltakosh)

New Babylon.GUI to create user interface (compatible with WebVR). More info here (deltakosh)

Added support for Exponential Shadow maps to replace Variance Shadow maps. more info here Demo#1 Demo#2 (deltakosh)

Support for multisample render targets. Demo (deltakosh)

New DebugLayer. Doc (temechon)

New VideoTexture.CreateFromWebCam to generate video texture using WebRTC. Demo (Sebastien Vandenberghe) / (deltakosh)

New Facet Data feature (jerome)

babylon.fontTexture.ts was moved from babylon.js to canvas2D (nockawa)

Multi-platform Compressed Textures for Desktops & Mobile Devices with fall back. Batch (dos) scripts to convert entire directories of .jpg's & .png's Doc (jcpalmer)

All deprecated functions and properties were removed (deltakosh)

New build system based on workloads. More info here (deltakosh)

New Cell Shading material added into Materials Library Demo (Julien Moreau-Mathis)

New kernel based blur. Demo (deltakosh)

New highlights postprocess (deltakosh)

New DefaultRenderingPipeline to enable image processing effect. Demo (deltakosh)

New image processing postprocess. Doc here (deltakosh)

New blur mode for mirrors. Demo (deltakosh)

Updates

Added syncBoneWithImpostor() and syncImpostorWithBone() to PhysicsImpostor to help with creating ragdoll effects. Demo (abow)

New automatic creation mode for skybox. Doc here (deltakosh)

New way to force compilation of materials. Doc here (deltakosh)

Added a Physics tab to the inspector (abow)

New Debug.PhysicsViewer class for viewing PhysicsImpostors. Demo (abow)

New ColorPicker for GUI. Demo (abow)

Added slerp and limits to BoneLookController. Demo (abow)

new Texture.readPixels() function to read texture content (deltakosh)

New helpers to use ExtrudePolygon. Demo (Cubees)

PostProcess can now use alpha blending and share outputs (deltakosh)

Added ArcRotateCamera.panningInertia to decouple inertia from panning inertia (deltakosh)

Added FIXED_EQUIRECTANGULAR_MIRRORED_MODE mode for reflection texture. Demo here (deltakosh)

Introduced boundingBox.centerWorld and boundingBox.extendSizeWorld (deltakosh)

Improved FXAA post-process (deltakosh)

Added Light.customProjectionMatrixBuilder to allow developers to define their own projection matrix for shadows (deltakosh)

Added set() function to all basic types (deltakosh)

Added HDRCubeTextureAssetTask to AssetManager (deltakosh)

Engine now uses range based fog (deltakosh)

VertexBuffer.updatable is now serialized (deltakosh)

Added intersectsMeshes() to Ray (abow)

New RayHelper class for easily viewing and attaching a ray to a mesh. Demo abow)

Mesh.applyDisplacementMap now accepts uvScale and uvOffset parameter (deltakosh)

Added addChild(), removeChild(), setParent() to AbstractMesh (abow)

Effect.getVertexShaderSource() and Effect.getFragmentShaderSource() now returns the effective shader code (including evaluation of #define) (deltakosh)

GroundMesh : getHeightAtCoordinates(), getNormalAtCoordinates() and getNormalAtCoordinatesToRef() can now work with rotated grounds (jerome)

GroundMesh, facetData and SolidParticleSystem improvement in normal computations (jerome)

Added AbstractMesh.addRotation() (jerome)

Added Quaternion.RotationQuaternionFromAxis() and Quaternion.RotationQuaternionFromAxisToRef() (jerome, thanks to abow)

Added parameters uvs and colors to MeshBuilder.CreateRibbon() (jerome)

Added parameters frontUVs and backUVs to all the methods MeshBuilder.CreateXXX() supporting sideOrientation (jerome)

Added Curve3.CreateCatmullRomSpline() (jerome and BitOfGold)

Added the optional parametercolorFilter to CreateGroundFromHeightMap() (jerome)

Improved the internal code of Vector3.RotationFromAxisToRef() (jerome, thanks to abow)

GroundMeshes are now serialized correctly (deltakosh)

Added mesh.markVerticesDataAsUpdatable() to allow a specific vertexbuffer to become updatable (deltakosh)

Added POINTERTAP and POINTERDOUBLETAP PointerEventTypes to register new Observer mask. (Demo here)[ https://www.babylonjs-playground.com/?30] (yuccai)

Added OnDoublePickTrigger for ActionManager (yuccai)

Added Scene.DoubleClickDelay to set the timing within a double click event like PointerEventTypes.POINTERDOUBLETAP or ActionManager.OnDoublePickTrigger has to be processed (yuccai)

New material: ShadowOnlyMaterial to display shadows on transparent surfaces (deltakosh)

Added VertexBuffer.TangentKind to specify tangents in place of shader-calculated tangents (dewadswo, bghgary)

Added material.twoSidedLighting to PBRMaterial and StandardMaterial to enable flipping normals when backfaceCulling is false (BeardedGnome, bghgary)

Added a HTML page with embedded directions to improve the custom build process. (jcpalmer)

Added glTF 2.0 loader with versioning support (bghgary, thanks to BeardedGnome for animation updates)

New Motion Blur effect added into StandardRenderingPipeline Demo (Julien Moreau-Mathis)

Allow the BlackAndWhite post process to adjust the degree in subsequent frames, for Welcome to Wonderland types of animation (jcpalmer)

New BABYLON.TextureTools.CreateResizedCopy function to create a copy of a texture and chage its size (deltakosh)

Bug fixes

Fixed issue with FPS not decreasing when reflections are disabled (abow)

Fixed disappearing BoneAxesViewer (abow)

Fixed disappearing SkeletonViewer (abow)

Fixed billboarding for parented meshes (abow)

Fixed issue with BoneIKController and left-handed coordinate systems (abow)

Fixed a bug with spotlight direction (deltakosh)

Fixed an issue with Mesh.attachToBone when a mesh is moving and an animation is changed (abow)

Fixed an issue withaspect ratio when using CreateScreenshot (deltakosh)

Fixed SPS particle initial status when used as updatable with a positionFunction in addShape() (jerome)

Fixed SPS particle access start index when used with setParticles(start, end) (jerome)

Fixed SPS billboard mode when used with a parented camera (jerome)

API Documentation

File abstractMesh.ts documented (jerome)

File mesh.ts documented (jerome)

File groundMesh.ts documented (jerome)

File instancedMesh.ts documented (jerome)

File lineMesh.ts documented (jerome)

File vertexData.ts documented (jerome)

File subMesh.ts documented (jerome)

File vertexBuffer.ts documented (jerome)

File math.ts documented (jerome)

File light.ts documented (jerome)

File directionalLight.ts documented (jerome)

File hemisphericLight.ts documented (jerome)

File pointLight.ts documented (jerome)

File spotLight.ts documented (jerome)

File shadowGenerator.ts documented (jerome)

Breaking changes

WebVRCamera:requestVRFullscreen has been removed. Call attachControl() inside a user-interaction callback to start sending frames to the VR display

setPositionOffset has been used to change the position offset. it is now done using camera.position

Ray :show has been removed. Use new RayHelper.show() instead

hide has been removed. Use new RayHelper.hide() instead

AbstractMesh:onPhysicsCollide has been removed. Use mesh.physicsImpostor.registerOnPhysicsCollide() instead

setPhysicsState has been removed. Use new PhysicsImpostor() instead

getPhysicsMass has been removed. Use mesh.physicsImpostor.getParam("mass") instead

getPhysicsFriction has been removed. Use mesh.physicsImpostor.getParam("friction") instead

getPhysicsRestitution has been removed. Use mesh.physicsImpostor.getParam("restitution") instead

updatePhysicsBodyPosition has been removed. Changes are synchronized automatically now

Mesh:updateVerticesDataDirectly has been removed. Use mesh.updateVerticesData() instead

SsaoRenderingPipeline:getBlurHPostProcess has been removed. Blur post-process is no more required

getBlurVPostProcess has been removed. Blur post-process is no more required

Scene:setGravity has been removed. Use scene.getPhysicsEngine().setGravity() instead

createCompoundImpostor has been removed. Use PhysicsImpostor parent/child instead

ActionManager:LongPressDelay and DragMovementThreshold are now respectively Scene.LongPressDelay and Scene.DragMovementThreshold

HDRRenderingPipeline:HDRRenderingPipeline has been removed because it is deprecated. It is now replaced by StandardRenderingPipeline which is more advanced. See documentation

PBRMaterial:Fixed several bugs which could lead to visual changes. More info here

Removed all overloadedXXX properties

Removed all fresnelXXX properties

Removed .babylon.hdr textures: We now use DDS files.

2.5.0

Core Engine

Major updates

New StandardRenderingPipeline effect to support screen space lens flare and depth of field. Demo - (Julien Moreau-Mathis)

New HighlightLayer object to enable highlights rendering. Demo - (sebavan)

Babylon.js now supports right handed system with scene.useRightHandedSystem = true (deltakosh)

Babylon.js is now compiled with optimize-js to get faster initial load (deltakosh)

New BoneIKController Demo (abow)

New BoneLookController Demo (abow)

You can now build your own version of babylon.js with gulp build-custom Doc (deltakosh)

Updates

Added node.doNotSerialize to prevent specific nodes to be serialized by SceneSerializer (deltakosh)

Added scene.multiPick and scene.multiPickWithRay to return an array of pickedMesh objects (deltakosh)

Added Effect.GetVertexShaderSource() and Effect.GetFragmentShaderSource() (deltakosh)

New Texture.LoadFromDataString() to help loading base64 encoded textures (deltakosh)

Added Engine detection of the compresed texture formats supported by Hw / browser. You can specify those formats you have files for using Engine.setTextureFormatToUse(), and an appropriate one will be chosen. (Palmer-JC)

Added Ray.intersectsMesh, Ray.show, Ray.hide (abow)

Added AbstractMesh.setPivotPoint, AbstractMesh.getPivotPoint, AbstractMesh.getAbsolutePivotPoint (abow)

Added Debug.AxesViewer and Debug.BoneAxesViewer (abow)

Added Bone.getAbsolutePositionFromLocal and getLocalPositionFromAbsolute (abow)

Added Bone.setRotation, Bone.getRotation, Bone.setRotationQuaternion, Bone.getRotationQuaternion (abow)

Added Bone.getAbsolutePosition and Bone.getAbsolutePositionToRef (abow)

Added Bone.translate, Bone.setPosition, Bone.setAbsolutePosition (abow)

Added Bone.setYawPitchRoll, Bone.setRotationMatrix, Bone.setScale, Bone.setAxisAngle (abow)

Added Bone.rotate (abow)

Added Bone.scale (abow)

Added Camera.getDirection, AbstractMesh.getDirection, Bone.getDirection (abow)

Added subdivisionsX, subdivisionsY option to GroundMesh (abow)

New Tools.CreateScreenshot function will capture all canvas data. Previous implementation is now called CreateScreenshotUsingRenderTarget (deltakosh)

Cube textures are now cached by texture cache (deltakosh)

Added onAnimationEnd callback for sprite.playAnimation (deltakosh)

Added support for non square textures for sprites (deltakosh)

Added support for texture arrays (deltakosh)

Added camera.isInFrustum and camera.isCompletelyInFrustum. Can be used with meshes, submeshes and boundingInfo (deltakosh)

Several memory allocation reduction (benaadams)

Several GPU state change reduction (benaadams)

MapTexture: add supersample mode to double font quality. (nockawa)

New SPS feature : solid particle intersection with other solid particle or with any mesh particle.intersectsMesh() (jerome)

New invertUV parameter an all ribbon based shapes : ribbon, tube, lathe, basic and custom extrusion (jerome)

PerfCounter class added to monitor time/counter and expose min/max/average/lastSecondAverage/current metrics. Updated engine/scene current counter to use this class, exposing new properties as well to access the PerfCounter object (nockawa)

Better keyboard event handling which is now done at canvas level and not at window level (deltakosh)

New scene.hoverCursor property to define a custom cursor when moving mouse over meshes (deltakosh)

WebVR Camera was updated to be conform with the current specs. (RaananW)

New "CubeTextureTask" function will allow you to load a CubeTexture in the assetsManager. (agallouin)

Scene.stopAnimation has now an optional second parameter, the name of the animation to kill. Usefull if a mesh has multiple animations. (agallouin)

Bug fixes

Fixed issue with SkeletonViewer not displaying correctly with meshes that have a PoseMatrix (abow)

Fixed issue with Quaternion.toEulerAnglesToRef (abow)

Fixed issue with Animatable.goToFrame (abow)

Fixed issue with instancse and viewports (deltakosh)

Fixed issue with FreeCamera not working in fullscreen or when pointer locked (abow)

MapTexture: Font Characters are now correctly aligned on Chrome (nockawa)

Fixed some missing parameter default values in MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)

Fixed cross vector calculation in _computeHeightQuads() that affected all the GroundMesh.getHeightAtCoordinates() and GroundMesh.getNormalAtCoordinates() methods (jerome)

Fixed Mesh.CreateDashedLines() missing instance parameter on update (jerome)

Added BBox update on each ribbon based shape (ribbon, tube, extrusion, etc) on dynamic updates (jerome)

Fixed model shape initial red vertex color set to zero not formerly being taken in account in the SolidParticleSystem (jerome)

Fixed billboard when the SPS mesh is parented in the SolidParticleSystem (jerome)

Fixed RenderTargetTexture meshes selection (deltakosh)

Fixed camera speed computation (deltakosh)

Fixed bug with instances, LOD and edgesRendering (deltakosh)

Breaking changes

FollowCamera.target was renamed to FollowCamera.lockedTarget to avoid conflicts (deltakosh)

Removed legacy shaders support (deltakosh)

2.4.0

Core Engine

Major updates

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 support for HDR cubemaps. demo here (sebavan)

Support for shaders includes (deltakosh)

New mesh type : LineSystem. Demo here (jerome)

SerializationHelper for complex classes using TypeScript decorators (deltakosh)

StandardMaterial now supports Parallax and Parallax Occlusion Mapping (tutorial) (nockawa)

Animations blending. See demo here. More info here (deltakosh)

New debuger tool: SkeletonViewer. See demo here (Adam & 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)

Introduced new observable system to handle events. Documentation here (nockawa, deltakosh)

Added a new VR camera : VRDeviceOrientationArcRotateCamera (temechon)

Moved PBR Material to core (deltakosh)

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. feature, 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. feature (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)

Added skeleton.getBoneIndexByName(boneName: string) (dad72)

Added node._children to track children hierarchy (deltakosh)

Added Camera.ForceAttachControlToAlwaysPreventDefault to help embedding Babylon.js in iFrames (deltakosh)

Support for Layer.alphaTest (deltakosh)

New scene.pointerDownPredicate, scene.pointerMovePredicate, scene.pointerUpPredicate to define your own predicates for meshes picking selection (deltakosh)

New OnPickTrigger support for spritesManager (deltakosh)

New SPS method digest() (jerome)

New SPS property computeBoundingBox (jerome)

New SPS particle property isVisible (jerome)

Added a new OnPickOut trigger fired when you release the pointer button outside of a mesh or sprite. (deltakosh)

Added support for OnPointerOver and OnPointerOut for sprites. (deltakosh)

Added an optional predicate on Node.getDescendants, Node.getChildren to filter out Nodes based on a callback execution. (nockawa)

Added Ray.intersectionPlane & intersectionSegment. (nockawa)

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 StringDictionaryclass 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)

Oimo.js updated to the latest version (RaananW)

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)

Bug fixes

Fixed bug with billboards and parenting (deltakosh)

Fixed bug with ArcRotateCamera.setTarget (deltakosh)

Fixed bug with OBJ Loader - All meshes were concatenated with the previous one (Temechon)

Fixed the device orientation cameras (both VR and non-VR cameras) (RaananW)

Fixed the WebVR implementation (RaananW)

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)

Exporters

Unity3D exporter: Added support for lightmaps (davrous, deltakosh)

Unity3D exporter: Added support for export and run (local webserver) (davrous, deltakosh)

Unity exporter now support skeletons (sebavan)

Support for 3dsmax 2017 (deltakosh)

Added support for up to 8 bones influences per vertex for 3dsmax exporter (deltakosh)

Added console logging for .babylon file loading & depreciated SceneLoader.Load() in favor of Append() (jcpalmer)

API doc

class SolidParticleSystem documented (jerome)

class MeshBuilder documented (jerome)

class Mesh documented (jerome)

2.3.0

Core Engine

Major updates

Support for procedural cube textures Demo here (deltakosh)

New UniversalCamera which support keyboard, mouse, touch and gamepad (davrous)

Point lights shadow mapping. Demo here (deltakosh)

Introducing Materials Library (deltakosh)Water material: //doc.babylonjs.com/extensions/Water. Demo here (julien-moreau)

Fire material: //doc.babylonjs.com/extensions/fire. Demo here (julien-moreau)

Normal material: //doc.babylonjs.com/extensions/normal (temechon)

Lava Material: //doc.babylonjs.com/extensions/lava (temechon)

PBR Material: //doc.babylonjs.com/extensions/pbr (deltakosh)

Fur Material: //doc.babylonjs.com/extensions/Fur. Demo here (julien-moreau)

New cache mechanism for StandardMaterial (deltakosh)

New Solid Particle System Demo here (jerome)

New StandardMaterial.lightmapTexture which can be controlled with StandardMaterial.useLightmapAsShadowMap (deltakosh)

Support for reflection probes. See documentation here (deltakosh)

New serializers folder to host .babylon serializers (deltakosh)New .obj serializer (BitOfGold)

Sprites now can be picked and can use actions (deltakosh)

New Mesh.CreatePolyhedron() method (jerome)

New Mesh.CreateIcoSphere() method Demo here (G'kar)

Introducing AnimationRanges for Skeletons and Animations (deltakosh)Added parsing / serialization, copying between similar skeletons & better deletion (Palmer-JC)

Expanded AnimationRanges for Nodes (Mesh, Lights, Cameras) (Palmer-JC)

Support for added to Blender Exporter (Palmer-JC)

Support for glTF files loader (julien-moreau)

Updates

Audio files are now saved for offline access (davrous)

New CubeTexture.CreateFromImages() (deltakosh)

Bounding info can be locked and updated (bb.isLocked and bb.update()) (deltakosh)

2D layers now have a scale and offset properties (deltakosh)

TouchCamera can now fallback to regular mouse/keyboard controls (deltakosh)

Added ability to skip current prepared Action to next active Action (chained by Action.then(Action)) (vouskprod)

Added new event triggers ActionManager.OnLongPressTrigger and ActionManager.OnPickDownTrigger (vouskprod)

new Mesh.convertToUnIndexedMesh() to create meshes with no indices (which could be faster when vertex reuse is low and vertex structure is small) (deltakosh)

Unity3D exporter will recognise instances of prefabs (ozRocker)

New parse mechanism (for loading .babylon file) (deltakosh)

New button to log the camera position in the debug layer (temechon)

Shader files (fragment and vertex) can now be specified via direct URL (vouskprod)

Added Animatable.goToFrame() (deltakosh)

Fixed behavior or Animation.CreateAndStartAnimation and added Animation.CreateMergeAndStartAnimation to reproduce previous behavior (deltakosh)

Adding 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)

Adding support for equi-rectangular mapping. See demo here (deltakosh)

Sprites and particles scheduler updated to be resolved before transparent objects (deltakosh)

Added ability to deactivate ArcRotateCamera panning mechanism (by setting panningSensibility to 0) (vouskprod)

Added DirectionalLight.autoUpdateExtends to prevent directional lights to adapt to scene extends (deltakosh)

Added a new parameter to debugLayer.show() to define root element to use (deltakosh)

New MeshBuilder class used to create all kind of mesh shapes (deltakosh)

Added Scene.constantlyUpdateMeshUnderPointer to improve performance when moving mouse (deltakosh)

Added StandardMaterial.disableLighting (deltakosh)

Improved reflection shader performance (deltakosh)

New Material.sideOrientation property to define clockwise or counter-clockwise faces selection. Demo here (deltakosh)

It is now possible to create a custom loading screen. PR (RaananW)

Per face color and texture feature in MeshBuilder.CreateCylinder() (jerome)

Arc feature in CreateCylinder, CreateSphere, CreateTube, CreateDisc and CreateLathe (jerome)

Slice feature in MeshBuilder.CreateSphere() (jerome)

closed parameter in MeshBuilder.CreateLathe() (jerome)

cap parameter in MeshBuilder.CreateLathe() (jerome)

diameter, hasRings, enclose parameters in MeshBuilder.CreateCreateCylinder() (jerome)

added getNormalAtCoordinates() and getNormalAtCoordinatesToRef() methods in MeshBuilder.CreateLathe() (jerome)

Material.dispose() now removes disposed material from meshes (deltakosh)

New Material.getBindedMeshes() function (deltakosh)

OimoJS Plugin now uses Quaternions exclusively and calculates body rotations correctly. PR (RaananW)

It is now possible to get the physics engine's body and wolrd objects using the physics engine. PR (RaananW)

new Heightmap Impostor for Cannon.js physics engine. PR, [Demo] ( https://www.babylonjs-playground.com/#D3LQD#3) (RaananW)

A plane mesh can be created with a source plane (math). PR (RaananW)

AbstractMesh.onPhysicsCollide will be triggered when a physics-enabled mesh collides against another. PR (RaananW)

Added scene onPointerMove public callback. PR (RaananW)

Added streaming support for BABYLON.Sound (davrous)

Added collisionsEnabled and workerCollisions for serialization PR (Dad72)

Changed from a fixed maximum of bone influencers, 4, to variable, 1-8 (Palmer-JC)Support for added to Blender Exporter (Palmer-JC)

Float32Arrays can now directly be specified for vertex data attributes, Mesh.updateVerticesDataDirectly deprecated (Palmer-JC)

Added panning axis to the ArcRotateCamera PR (mstdokumaci, RaananW)

Added Tmp class for internal use in order to improvement the memory management, jerome)

Added Scene.swithActiveCamera(newCamera, attachControl) to go from one camera active to another. (dad72) PR

Bug fixes

Fixed IDB for offline support (davrous)

Fixed a bug with spherical mapping (deltakosh)

Fixed a bug with clone and createInstance which was forcing the recomputation of bounding boxes (deltakosh)

Fixed a bug with CSG when submeshes are kept (deltakosh)

Fixed a bug with texture coordinates matrices (deltakosh)

Fixed Sphere texture coordinates generation (deltakosh)

Fixed a bug with Mesh.attachToBone when bone's matrix has a negative determinant (deltakosh)

Fixed a possible but with the active camera while taking a screenshot. PR (RaananW)

Fixed a bug with worker-collisions and instances. PR (RaananW)

Fixed a bug with removed meshes and geometries from the worker-cache. PR (RaananW)

Fixed getHeightAtCoordinates() : brand new ultra fast algorithm, can be used for many objects at once in the render loop now (jerome)

Fixed closePath and closeArray ribbon parameter now working back together (jerome)

Fixed morphing on capped tubes (jerome)

Fixed morphing on extruded shapes (jerome)

Fixed tube and extruded shape cap light artifact (jerome)

Fixed lathe light artifact with dedicated new geometry (jerome)

Fixed a bug calculating velocity during collision with gravity enabled. PR (RaananW)

Fixed a bug in instance serialization. PR (RaananW)

Fixed a memory leak with textures (deltakosh)

Breaking changes

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)

Updated Cannon.js plugin to the newest version (0.6.2). New cannon.js must be used. PR (RaananW)

2.2.0

Core Engine

Major updates

Blender can now bake Procedural textures & Cycles materials. Plus more. See documentation here (Palmer-JC)

Meshes can now be attached to bones. See documentation here and sample here (deltakosh)

HDR Rendering pipeline. See demo here (julien-moreau)

New rewored StandardMaterial.isReady for better memory usage and performance (deltakosh)

Revamping of FBX exporter. Now supports animations and bones (simonferquel, deltakosh)

StandardMaterial.useGlossinessFromSpecularMapAlpha to use specular map alpha as glossiness level (deltakosh)

Added support for StandardMaterial.roughness. See demo here (deltakosh)

OBJ loader. See demo here (Temechon)

EdgesRenderer. See demo here (deltakosh)

Actions Builder tool for 3dsmax exporter. More info here (julien-moreau)

Updates

Adding layerMask to lensFlareSystem, spritesManager, particleSystem (deltakosh)

Adding emissiveAsIllumination and reflectionFresnelFromSpecular for StandardMaterial (deltakosh)

Adding isEnabled for ProceduralTexture (deltakosh)

Compression supported for raw textures (deltakosh)

New TonemapPostProcess. See demo here (deltakosh)

New options parameters for Box, Sphere, Plane and Ground. See demo here (deltakosh)

Added per face UV and Colors options for CreateBox (jerome)

Added darkness support for soft shadows (deltakosh)

Added scene.getLensFlareSystemByName() (deltakosh)

Added LensFlareSystem.setEmitter() (deltakosh)

Added Color3.FromHexString() and Color3.toHexString() (deltakosh)

Added Color4.FromHexString() and Color4.toHexString() (deltakosh)

Added mesh.computeBonesUsingShaders to allow developers to disable HW skinning for low end devices (deltakosh)

Added material.disableDepthWrite (default is off) (deltakosh)

Added material.alphaMode (default is BABYLON.Engine.ALPHA_COMBINE, can be set to BABYLON.Engine.ALPHA_ADD, _SUBTRACT,_MULTIPLY or *_MAXIMIZED ) (deltakosh, jahow)

Added Animatable.reset() function (deltakosh)

New parameter for ArcRotateCamera.zoomOn to preserve maxZ (deltakosh)

PickingInfo.getNormal can now use either vertices normals or vertices positions (deltakosh)

Meshes can now support uv2, uv4, uv5 and uv6 for ShaderMaterials (deltakosh)

Panning support for ArcRotateCamera (julien-moreau)

Vertex color and diffuse color can now be mixed (deltakosh)

Depth-of-field improvements PR (jahow)

Engine now initialize WebGL with preserveDrawingBuffer = false by default (deltakosh)

withEpsilon with a user defined epsilon PR (RaananW)

Adding onAfterRender function in BABYLON.PostProcess PR (julien-moreau)

Improved shaders optimizer to remove specular code when not needed (deltakosh)

Added some utility functions to Vector2/3/4 PR (jahow)

Added split angularSensibiliy into X and Y for arcRotateCamera PR (Remwrath)

Added function getFrontPosition(distance) for Camera PR (dad72)

New rawTexture.update function (robgdl)

Changes to meshes transform baking and added flipFaces PR (jahow)

SerializeMesh serializes a mesh or array of meshes to be imported with the loader's ImportMesh optionally including their children and/or parents. PR PR2 (RaananW)

onCollide callback for meshes calling moveWithCollisions. PR (RaananW)

Unity Exporter now uses game object name as the Babylon.js mesh name, instead of mesh name which is not unique when dealing with primitive objects (cubes, spheres, planes, etc..) (ozRocker)

Path3D construction : new raw parameter, if true returns a non-normalized Path3D object (jerome)

Added Vector3.RotationFromAxisToRef() : same as RotationFromAxis() but assigns a reference (jerome)

ComputeNormals optimization : less object allocation and normal array initialization (jerome)

Ribbon : closePath parameter now creates a smooth seam (jerome)

Bug fixes

Fixing bug with rig cameras positioning (deltakosh)

Instance meshes' geometry ID is now serialized correctly. PR (RaananW)

Bug fix at set numberOfBricksWidth PR (Polatouche)

Breaking changes

In LensRenderingPipeline: parameter dof_focus_depth (range 0..1) is deprecated, use dof_focus_distance (range 0..infinity) instead (jahow)

Cylinder Mesh complete reimplementation for better normals (jerome)

RotationFromAxis() : fixed the dot product case outside the range [-1, 1] (jerome)

Path3D : fix wrong normal/binormal due to normalization approximations (jerome)

2.1.0

Core Engine

Major updates

Collisions can now be offloaded on webworkers (raananw)

SIMD.js support for math library. See demo (deltakosh)

Unity 5 scene exporter. More info here (davrous, deltakosh)

New Mesh.CreateDecal() function to create decals. See demo. More info here (deltakosh)

New tool for debugLayer: You can now dump renderTargets to see their content (deltakosh)

Complete shadows code rework: New bias property for ShadowGenerator, new orthogonal shadows for directional shadows, automatic projection size for directional lights, new BlurVarianceShadowMap filter. See demo. Documentation updated here (deltakosh)

New lens effects rendering pipeline. More info here (jahow)

New basic mesh type: Ribbons. See demo. More info here (jbousquie)

New BABYLON.Mesh.ExtrudeShape and BABYLON.Mesh.ExtrudeShapeCustom. More info here (jbousquie)

New Loaders folder with a first additionnal plugin: STL (raananw, deltakosh)

Gulp building process revamped, updated and simplified and now includes a config.json (raananw)

Updates

Better beta angle support for ArcRotateCamera (raananw)

Better video textures support (deltakosh)

Cameras hierarchy rework (deltakosh)

New Camera.setCameraRigMode to control 3D rendering of any camera (Anaglyph, Stereo, VR) (Palmer-JC, vousk)

VR cameras can disable distortion postprocess to get more performance (deltakosh)

New cameras: AnaglyphGamepadCamera, StereoscopicFreeCamera, StereoscopicArcRotateCamera, StereoscopicGamepadCamera (deltakosh)

New MultiMaterial.clone() function (deltakosh)

Faster mesh.computeNormals() function (jbousquie)

Allow static Mesh.MergeMeshes to work with clones & Mesh subclasses (Palmer-JC)

Added mesh.freezeWorldMatrix() for static meshes (deltakosh)

Added mesh.freezeNormals() for parametric mesh updates (jbousquie)

Added Vector3.RotationFromAxis() to get Euler rotation angles from a target system (jbousquie)

Added mesh.alwaysSelectAsActiveMesh to disable frustum clipping for a specific mesh (deltakosh)

Added updateMeshPositions method (jbousquie)

Callbacks for geometry changes (raananw)

Allow Engine to run for CocoonJS with standard html, including devices where the hardware scaling != 1 (Palmer-JC)

Material onBind callback improvement (jahow)

New front/back/double side feature for meshes (jbousquie)

New basic mesh type: Disc (jbousquie)

New basic mesh type : Dashed Lines (jbousquie)

New basic mesh type : Lathe (jbousquie)

New basic mesh type: Tube. More info here (jbousquie)

Allow ComputeNormals to work with Typed Arrays & the Typescript Level (Palmer-JC)

Added uniqueId for nodes (raananw)

Added Mesh.onLODLevelSelection(distance: number, mesh: Mesh, selectedLevel: Mesh) callback (deltakosh)

Added Material.zOffset to help reducing z-fighting (deltakosh)

Added excludeWithLayerMask to lights (Palmer-JC)

Added includeOnlyWithLayerMask for filtering meshes (Palmer-JC)

Mesh Default layerMask changed to allow more "special cameras filtering" (Palmer-JC)

Sprite can now have .width and .height properties (deltakosh)

Ability to register events based on mesh/camera/light addition and deletion (raananw)

New Curve object (jbousquie) More info here

New Path3D object (jbousquie) More info here

New 'color correction' post process (jahow)

Added sampling mode as a parameter for SpriteManager (jahow)

RenderTexture can now be saved to a file (deltakosh)

Better attributes management (deltakosh)

Source conform to typescript 1.4 (raananw)

Adding subMeshId property in PickingInfo structure (deltakosh)

No more error when a manifest is not found (deltakosh)

Bug fixes

Initial quaternion fix for OIMO plugin (raananw)

ArcRotateCamera pinch zoom debug (vousk)

Fixing animatable bug when animation is over (temechon)

useCameraPostProcess whenever there is a special camera in use (m0ppers)

delta in BoundingBox's intersectsPoint is now calculated correctly (raananw)

textures cache fixed (deltakosh)

ImportMesh now imports referenced geometries of selected meshes (raananw)

CSG toMesh() and FromMesh() now support meshes without quaternion (raananw)

Breaking changes

OculusCamera was removed (deltakosh)

VRDeviceOrientationCamera was renamed to VRDeviceOrientationFreeCamera (deltakosh)

WebVRCamera was renamed to WebVRFreeCamera (deltakosh)

VideoTexture does not require a size parameter anymore. The new constructor is: constructor(name: string, urls: string[], scene: Scene, generateMipMaps = false, invertY = false, samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE) (deltakosh)

2.0.0

Core Engine

Major updates

Support for WebAudio. More info here (davrous)

Support for Procedural Texture with standard usable samples and custom support. More info here (meulta)

Support for OES_element_index_uint extension in order to support 32 bits indices and then meshes with more than 65536 vertices (deltakosh)

Support for levels of detail (LOD) for meshes. More info here (deltakosh)

New Scene Optimizer tool. More here (deltakosh)

Using High Resolution Time for performance and FPS measurement (deltakosh)

Easing functions for animations. More info here (mimetis)

New debug layer than can be used to display debug informations. More info here (deltakosh)

New PolygonMeshBuilder object used to create mesh from polygons (ElemarJR)

New Mesh.simplify() function to automatically simplify meshes. More info here (raananw)

New scene.enableDepthRenderer() to register depth texture rendering. More info here (deltakosh)

New SSAORenderingPipeline to apply screen space ambient occlusion. More info here (julien-moreau)

New VolumetricLightScatteringPostProcess to simulate volumetric light scattering. More info here (julien-moreau)

3dsMax exporter can now generate binary format files (deltakosh)

Updates

Moving of cloning into Mesh constructor (Palmer-JC)

Camera types support in 3dsmax exporter (deltakosh)

Babylon.Math is now a fluid API (deltakosh)

Added FOV mode setting to cameras (jahow)

You can now define if OnIntersectionEnterTrigger and OnIntersectionExitTrigger may use precise intersections. More info here (deltakosh)

New scene.createDefaultCameraOrLight() function (deltakosh)

Added POV movement & rotation (Palmer-JC)

Starting documenting public API (raananw)

Added render target type (unsigned or floating point) (julien-moreau)

Decomposition and interpolation methods for matrices (kpko)

Spot lights can now cast shadows (deltakosh)

Adding clear() function to DynamicTexture (deltakosh)

New RawTexture object to create texture from arraybuffer with specific format (luminance, luminance and alpha, alpha, rgb, rgba) (deltakosh)

Animation's key can now be functions (deltakosh)

Bones and instances can be used together (deltakosh)

Engine can now accept more than one render loop (deltakosh)

New ParticleSystem.updateFunction to define custom behavior for particles (deltakosh)

New mesh.renderOverlay and mesh.overlayColor (deltakosh)

New "Automatically launch animations" option for Blender 3D (deltakosh)

Support for vertex color and vertex alpha function (deltakosh)

Adding stride size attributes to Mesh.setVerticesData function (deltakosh)

New Texture.CreateFromBase64String function (deltakosh)

Extending the Ray class functionality to support ray's length (raananw)

New Effect.onBind callback (deltakosh)

Added support for point rendering (FreeFrags deltakosh)

Robust Euler->Quaternion->Euler conversions (MavenRain)

new mesh.isCompletelyInFrustum(camera) function (deltakosh)

Added the possibility to disable fog for a specific material (demonixis)

Added the possibility to disable fog for a specific sprite manager (deltakosh)

Added a property to ArcRotateCamera that moves the screen position of the target (daner)

Breaking changes

Tools.GetFps() and Tools.GetDeltaTime() are now functions hosted by the engine: engine.getFps() and engine.getDeltaTime() deltakosh)

Bug fixes

Insane amount of fixes for 3dsmax and blender exporters (deltakosh)

Fixed nearest texture filters (deltakosh)

Fixed mesh loading when url has a query string (dlajarretie)

Fixed a bug with pause/restart on animations (deltakosh)

Fixed a bug with CSG and transformations (deltakosh)

1.14.0

Core Engine

Major updates

New VRDeviceOrientionCamera for cardboard like systems (demonixis)

New WebVRCamera for WebVR compatible systems (demonixis)

All shaders now use high precision profile to address iOS8 compatibility (deltakosh)

New camera: BABYLON.FollowCamera used to smoothly follow a given target abogartz

New BABYLON.AssetsManager used to handle assets loading alongside loading screen display (deltakosh)

New Engine.displayLoadingUI(), Engine.hideLoadingUI(), Engine.loadingUiText. See more here (deltakosh)

New cache engine (Based on state objects) (deltakosh)

Fresnel support for diffuse, emissive, opacity and reflection on StandardMaterial. See demo here and wiki here (deltakosh)

TypeScript declaration file is now available (deltakosh)

Binary file format supported. You can use online converter here (r2d2Proton)

Updates

New mesh.updateVerticesDataDirectly(kind, float32array) to update mesh data directly (deltakosh)

Sandbox & IndexedDB layer are now supporting TGA & DDS textures (davrous)

Integrating lights animations, cameras type and animations for Blender exporter (Palmer-JC)

New "Get zip" option for CYOS (deltakosh)

Add pinch and zoom for iOS and Android on ArcRotateCamera (Eucly2)

New camera.projectToScreen() function to transform a vector3 into a screen pixel (deltakosh)

New effect parameter to define custom shader for BABYLON.ParticleSystem constructor. See demo here and wiki here (deltakosh)

Added toEulerAnglesToRef and CopyFromFloats to Quaternion (Demonixis)

Added function to calculate the inverse of a quaternion (Daner)

New StandardMaterial.useSpecularOverAlpha to define if you want specular to appear even on top of transparent surfaces (deltakosh)

New SceneLoader.Append function to append a babylon.js file to an existing scene (Palmer-JC)

New LinesMesh.alpha property (deltakosh)

Adding instances exportation support for 3DSMax exporter (deltakosh)

New Mesh.applyDisplacementMap and Mesh.applyDisplacementMapFromBuffer (deltakosh)

New Mesh.renderOutline property to render outlines around a mesh (used with Mesh.outlineColor and Mesh.outlineWidth) (deltakosh)

New Light.includedOnlyMeshes array to define explicitely which mesh is affected by a light (deltakosh)

Added multiply and divide functions to Vector2 (daner)

RenderTargetTexture can now specify a camera to use (deltakosh)

Bug fixes

Fixing tons of bugs with PostProcessRenderPipeline. Wiki updated. (deltakosh)

1.13.0

Core Engine

Major updates

TypeScript port finished (davrous & deltakosh)

Physics engine: new OIMO plugin (temechon)

New demo: V8 engine (Michel Rousseau)

Updates

Fixed ray creation when the devicePixelRatio is not equals to 1 (demonixis)

New mesh.registerAfterRender and mesh.unregisterAfterRender functions (deltakosh)

New fragmentElement parameter to define custom shader for BABYLON.ParticleSystem constructor (deltakosh)

New OnKeyDown and OnKeyUp triggers. See actions wiki for more info (deltakosh)

ArcRotateCamera can now check collisions wiki (deltakosh)

New Engine.Version property which returns a string with the current version (deltakosh)

New "Export and Run" feature for Max2Babylon (deltakosh)

Animations delta time is now capped between Scene.MinDeltaTime and Scene.MaxDeltaTime (deltakosh)

Non-squared DDS are now supported (deltakosh)

New triggers: BABYLON.ActionManager.OnIntersectionEnterTrigger, BABYLON.ActionManager.OnIntersectionExitTrigger. Documentation updated (deltakosh)

New mesh type: BABYLON.LinesMesh. You can find a demo here (deltakosh)

New 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)

New BABYLON.PickingInfo.getTextureCoordinates() function (deltakosh)

New 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)

New Mesh.CreateTiledGround() function (kostar111)

Shadow Poisson Sampling (clementlevasseur)

Bug fixes

Fixing a bug when instances are used with a mesh with submeshes.length > 1 (deltakosh)

CreateCylinder() : add subdivisions parameter and fix normals bug (kostar111)

1.12.0

Core Engine

Major updates

Babylon.js is now entirely developed using TypeScript (deltakosh, davrous)

Physics plugins: You can add your own physics engine to Babylon.js. More info here. Cannon.js is the first supported plugin (deltakosh)

BABYLON.Action: You can now create a complex system of interactions. More info here (deltakosh)

Babylon.js Playground: Experiment and learn Babylon.js using the playground (deltakosh)

Support for TGA textures based on Vincent Thibault work (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)

Hardware accelerated instances used to render identical meshes. More info here (deltakosh)

New 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)

Updates

DDS: Support for RGB, Luminance and cube file format (deltakosh)

New LensFlareSystem.isEnabled property (deltakosh)

New samplingMode parameter when creating textures (deltakosh)

Blender: changed object.isVisible to reflect the corresponding param in Blender (vousk)

New properties: scene.meshUnderPointer, scene.pointerX, scene.pointerY (deltakosh)

Added "layerMask" property to meshes and cameras (marcolebdech)

New Mesh.showSubMeshesBoundingBox to display sbumeshes bounding boxes (deltakosh)

Octree are now more generics and used to optimize rendering, collisions and picking. More info (deltakosh)

Shadows now support alpha testing (deltakosh)

New feature demo: particles (deltakosh)

New 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)

New scene.beforeCameraRender and scene.afterCameraRender callbacks (deltakosh)

New custom functions for ParticleSystem: 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)

New Tools.Log, Tools.Warn, Tools.Error functions. Filter can be applied using Tools.CurrentLoglevel (MaxenceBrasselet, deltakosh)

Using grunt-contrib-uglify to reduce babylon.js size (from 500KB to 384KB) (deltakosh)

setDirectionToTarget function added to SpotLight, HemisphericLight and DirectionalLight (Wingnutt)

Picking now takes viewport in account (deltakosh)

Point lights and spot lights now have a range (deltakosh)

Color3 interpolator for animations (deltakosh)

New function: VertexData.CreateGroundFromHeightMap(deltakosh)

New function: Tools.CreateScreenshot(nicolas-obre)

Bug fixes

Fixing ArcRotateCamera.setPosition() (Celian)

RenderTarget crashed when used with incremental engine (deltakosh)

Depth clear is now more controlled (Mainly for Ejecta) (deltakosh)

Fixed a bug with ratio when using RenderTargetTexture deltakosh)

Fixed a bug in the sandbox tool (davrous)

Fixed a bug with skybox seams holcombj)

Moved mousewheel event from window to canvas deltakosh)

Fixed matricesIndices serialization (gwenael-hagenmuller)

Bug fix and GC optimisation on CSG (clementlevasseur)

Breaking changes

Mesh.setVerticesData signature is now: (kind, values, updatable) instead of (values, kind, updatable) in order to be consistent with Mesh.updateVerticesData deltakosh)

1.11.0

Core Engine

Major updates

New option for mesh: 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)

New basic mesh: BABYLON.Mesh.CreateTorusKnot (deltakosh)

New BABYLON.AnaglyphArcRotateCamera and BABYLON.AnaglyphFreeCamera (michael-korbas), (deltakosh)

New render pipeline system for post-processes. See documentation here (michael-korbas)

Updates

Added parameters to enable or disable a type of texture on all BABYLON.StandardMaterial (demonixis)

New BABYLON.VertexData.ExtractFromMesh function (deltakosh)

Cameras can now have sub-cameras (see BABYLON.AnaglyphArcRotateCamera for example) (deltakosh)

New BABYLON.Engine.runEvenInBackground property. True by default. It allows you to stop rendering when the browser is not the foreground application. (deltakosh)

Darkness of a shadow + shadow on transparent meshes (clementlevasseur)

New event for materials: onCompiled and onError (deltakosh)

Bug fixes

Fixed a bug with collisions cache

Fixed a bug with mesh.dispose when called twice (deltakosh)

Fixed an issue with Internet Explorer while rendering a RenderTargetTexture outside the engine renderLoop (nicolas-obre)

New demos

1.10.0

Core Engine

Major updates

Virtual joysticks canera (davrous)

Oculus Rift support (davrous), (simonferquel), (deltakosh)

Support for DDS textures (deltakosh)

Constructive solid geometries (CraigFeldspar)

Importer plugin system (deltakosh)

Filter postprocess (deltakosh)

Convolution postprocess (deltakosh)

Added Cheetah3d exporter (Calebsem)

New BABYLON.ShaderMaterial object to simply create custom shaders (deltakosh) - See Custom shader - cell shading

New BABYLON.VertexData object to easily manipulates vertex attributes (deltakosh) - See VertexData

Updates

Shaders can be loaded from DOM element alongside .fx files (deltakosh)

Adding arcRotateCamera.wheelPrecision (deltakosh)

Support for DOMMouseScroll (nicolas-obre)

Adding BABYLON.PickingInfo.prototype.getNormal (deltakosh)

Adding a new noMipmap parameter to BABYLON.CubeTexture constructor (deltakosh)

Adding BABYLON.Color3.FromInts() and BABYLON.Color4.FromInts() (deltakosh)

Adding invertY parameter to BABYLON.VideoTexture constructor (deltakosh)

Adding new BABYLON.Scene.getCameraByID function (deltakosh)

Adding new BABYLON.Scene.setActiveCameraByName() function (deltakosh)

Renaming BABYLON.Scene.activeCameraByID() to BABYLON.Scene.setActiveCameraByID() (deltakosh)

Adding texture wrapping support to Blender exporter (vousk)

Add Gulp for buiding babylon cross platform (SideraX)

Shadow map improvement on pack method (clementlevasseur)

Bug fixes

Fixing multimat naming convention in Blender (deltakosh)

Fixing mesh.clone (temechon)

Fixing camera rotation export in blender (khmm12)

Fixing opacity map bug (deltakosh)

Fixing physics objects disposal (deltakosh)

Using the hardware scaling when creating a ray (demonixis)

*New demos

1.9.0

Core Engine

Major updates

Beta support for scene serialization with BABYLON.SceneSerializer.Serialize function (deltakosh)

Blender exporter now supports 32 bits indices (deltakosh)

Flat shading support (From Blender and with `mesh.convertToFlatShadedMesh()) (deltakosh)

Updates

New mesh.rotate and mesh.translate functions to rotate and translate mesh both locally and globally (deltakosh)

New feature for particles: ParticleSystem.forceDepthWrite (deltakosh)

Adding a new parameter to pick in order to be able to pick even on multi views (deltakosh)

New mesh.lookAt function (professorF)

New postprocess system (independent from cameras) (michael-korbas)

New mesh.setAbsolutePosition function (gwenael-hagenmuller)

Bug fixes

Fixing issue with mesh.infiniteDistance (deltakosh)

Fixing issue with camera caches (deltakosh)

Fixing issue with aspect ratio (deltakosh)

Fixing arcRotateCamera angle limitations (deltakosh)

Fixing a bug with multi-views: depth buffer was not clear between different passes (deltakosh)

1.8.5

Core Engine

Major updates

Visual Studio 2013 templates for Windows 8.1 and nuget packages (pierlag)

Updates

New matrix.multiply function (up to 50% faster) (deltakosh)

New matrices cache system for camera (view and projection matrices) (juliengobin)

New physics impostor: compound and mesh (still really slow) (deltakosh)

Set crossOrigin flag for support CORS (vbouzon)

XNA importer: Changes for Right-Left Coordinate Systems & Prefixed Mesh Parts with Mesh Name (professorF)

Fixing getPivotMatrix (gwenael-hagenmuller)

New geometry functions: getLocalTranslation, setPositionWithLocalVector, getPositionExpressedInLocalSpace,locallyTranslate (gwenael-hagenmuller)

Adding multi mesh import from same file(nicolas-obre)

Bug fixes

Fixing issue when disposing a parent and not its children (deltakosh)

Fixing .obj importer (deltakosh)

Added guardband checks for impostors' size (deltakosh)

1.8.0

Core Engine

Major updates

Updates

New animation.currentFrame property to get current animation frame (deltakosh)

New animation.floatInterpolateFunction property to define custom float interpolation function (deltakosh)

New animation.vector3InterpolateFunction property to define custom vector3 interpolation function (deltakosh)

New animation.quaternionInterpolateFunction property to define custom quaternion interpolation function (deltakosh)

1.7.3

Core Engine

Updates

Support for "file://" moniker (davrous)

Support for DAE (COLLADA) file format (gwenael-hagenmuller)

Support for "empty" object type in Blender exporter (deltakosh)

Bug fixes

"use strict" is no more included in minified version (deltakosh)

Fixing a bug with MSGesture with IE11 on Windows 7 (deltakosh)

1.7.0

Core Engine

Major updates

Updates

New light.excludedMeshes property to exclude specific meshes from light computation (deltakosh)

New texture.anisotropicFilteringLevel property to define the anisotropic level of a texture (deltakosh)

New mesh.infiniteDistance property to make a mesh static from the point of view of the camera (deltakosh)

New scene.customRenderTargets property to add our own renderTargetTexture (deltakosh)

Transparent meshes are sorted back to front (deltakosh)

Bug fixes

Fixing a bug when cloning mirrorTexture (deltakosh)

1.6.0

Core Engine

Major updates

New builtin postprocesses: Pass, Refraction, Blur, Black and White, Convolution (deltakosh)

New builtin postprocess: FXAA (simonferquel)

Updates

Removing the unused depth buffer for postprocesses chains (simonferquel)

Bug fixes

Fixing a memory leak when releasing textures (simonferquel)

1.5.3

Core Engine

Updates

New lockedTarget for freeCamera in order to allow cameras to track moving targets (deltakosh)

New angularSensibility property for cameras (deltakosh)

New upVector property for cameras. Cameras are now not limited to a (0, 1, 0) up vector (deltakosh)

New 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)

Bug fixes

Fixing a bug when exporting materials from Blender (deltakosh)

Fixing an issue with IE11 for RT (deltakosh)

Fixing an issue with looping animations (deltakosh)

1.5.2

Core Engine

Updates

New renderingGroupId for SpriteManager (deltakosh)

BoundingBox and BoundingSphere are prepared with an identity matrix during construction (deltakosh)

Bug fixes

Fixing a bug preventing wireframe to be displayed (deltakosh)

Fixing an issue with last IE update (deltakosh)

1.5.1

Core Engine

Updates

Massive update of typescript files (jroblak)

Bug fixes

Fixing an issue with SceneLoader.ImportMesh (nicolas-obre)

Fixing an issue with sprites rendering when no mesh is present (deltakosh)

1.5.0

Core Engine

Major updates

New DeviceOrientationCamera that supports W3C DeviceOrientations events (deltakosh)

Incremental loading support for meshes and textures (deltakosh)

New API online page to convert .babylon files to .incremental.babylon files (pierlag)

New mesh.renderingGroupId and particleSystem.renderingGroupId properties to support rendering layers (deltakosh)

Updates

New predicate parameter for scene.pick function in order to be able to select pickable meshes (deltakosh)

New mesh.refreshBoundingInfo() method (deltakosh)

New onAnimationEnd parameter for animations (deltakosh)

1.4.3

Core Engine

Updates

New mesh.setLocalTranslation and mesh.getLocalTranslation functions (deltakosh)

New matrix.setTranslation function (deltakosh)

mesh.rotation and mesh.rotationQuaternion are now two separated functions (deltakosh)

1.4.2

Core Engine

Bug fixes

Fixing an issue with scene.executeWhenReady (deltakosh)

1.4.1

Bug fixes

Support for Safari (deltakosh)

Adding local transformations to Blender exporter (deltakosh)

IndexedDB code refactoring to support simultaneous calls (davrous)

Hardware scaling fix (Gwenaël Hagenmuller)

Fixing a bug with sprites dynamic buffers (deltakosh)

1.4.0

Core Engine

Major features

Bones support (deltakosh). Bones and animated bones are now supported. They can cast shadows. Bones can be exported from Blender or from FBX

Offline support (davrous. You can specify to offline assets (scene and textures) to a local IndexedDB. Assets are then loaded once until you change the version on a server-side manifest

N-Level octrees (deltakosh):

Updates

Adding dispose() function and a disposeWhenFinishedAnimating property to sprites (Cyle)

Adding a applyTransform() function to meshes in order to bake a specific transformation into vertices (deltakosh)

Adding 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)

New material.Clone function (deltakosh)

Bug fixes

scene.IsReady() is more robust now and can be used to detect when the scene is EFFECTIVELY ready :) (deltakosh)

Fixing animations timing. Animations should be in sync now (deltakosh)

Fixing a bug with orthographic camera (deltakosh)

Fixing a bug with attachControl() function (deltakosh)

Fixing a bug with scene.pick() function (deltakosh)

1.3.2

Core Engine

Fixing a bug with camera.detachControl

1.3.0

Core Engine

Selection octrees

Breaking changes: Meshes now use multi vertex buffers (one for each attribute) instead of a big one. This is for more flexibility. The .babylon file format has changed accordingly (no more .vertices property on meshes but .positions, .normals, .colors, .uvs, .uvs2)

1.2.1

Core Engine

Support for PointerLock ()

StandardMaterial now supports per-vertex color

Blender exporter supports per-vertex color

1.2.0

Core Engine

Major rework of the API to remove GC pressure.

FreeCamera: Support for QWERTY keyboards

New 3D charting demo

1.1.0

Core Engine

Shadow Maps and Variance Shadow Maps

Shadows Maps and animations are now exported from Blender

Hand.js is no longer required for ArcRotateCamera

ArcRotateCamera support pinch/zoom gesture on IE

1.0.10

Core Engine

Using typed arrays for Matrix

Improving IE11 support

Support for new mesh primitives : Torus and cylinder

1.0.9

Core Engine

Orthographic camera

1.0.8

Core Engine

Adding keyboard support to ArcRotateCamera

Starting to use git tag

1.0.7

Core Engine

New demo: Worldmonger

Improved IE shaders

1.0.6

Core Engine

Dynamic meshes

Skybox

Support for high-DPI displays

Height maps

1.0.5

Core Engine

Adding color tint for sprites and layers

1.0.4

Core Engine

Various optimizations

Fog

TypeScript support

1.0.3

Core Engine

Video textures

Normal map (bump)

1.0.2

Core Engine

Spot lights

Hemispheric lights

你可能感兴趣的:(html5,webgl,stl)