资讯详情

新闻|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添加到目标摄像头,允许从旋转计算向上矢量(TevorDev)

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 value

标签: 顶部传感器变脏

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台