David Catuhe 6 年之前
父节点
当前提交
e44dede292
共有 25 个文件被更改,包括 938 次插入566 次删除
  1. 31 31
      Playground/babylon.d.txt
  2. 1 1
      Viewer/src/model/viewerModel.ts
  3. 31 31
      dist/preview release/babylon.d.ts
  4. 2 2
      dist/preview release/babylon.js
  5. 400 32
      dist/preview release/babylon.max.js
  6. 1 1
      dist/preview release/babylon.max.js.map
  7. 62 62
      dist/preview release/babylon.module.d.ts
  8. 1 1
      dist/preview release/inspector/babylon.inspector.bundle.js
  9. 3 1
      dist/preview release/inspector/babylon.inspector.bundle.max.js
  10. 1 1
      dist/preview release/inspector/babylon.inspector.bundle.max.js.map
  11. 6 6
      dist/preview release/loaders/babylon.glTF2FileLoader.js
  12. 1 1
      dist/preview release/loaders/babylon.glTF2FileLoader.js.map
  13. 1 1
      dist/preview release/loaders/babylon.glTF2FileLoader.min.js
  14. 6 6
      dist/preview release/loaders/babylon.glTFFileLoader.js
  15. 1 1
      dist/preview release/loaders/babylon.glTFFileLoader.js.map
  16. 1 1
      dist/preview release/loaders/babylon.glTFFileLoader.min.js
  17. 6 6
      dist/preview release/loaders/babylonjs.loaders.js
  18. 1 1
      dist/preview release/loaders/babylonjs.loaders.js.map
  19. 1 1
      dist/preview release/loaders/babylonjs.loaders.min.js
  20. 62 62
      dist/preview release/viewer/babylon.module.d.ts
  21. 310 310
      dist/preview release/viewer/babylon.viewer.js
  22. 3 3
      dist/preview release/viewer/babylon.viewer.max.js
  23. 3 1
      inspector/src/components/actionTabs/tabs/propertyGrids/animationPropertyGridComponent.tsx
  24. 2 2
      src/Culling/boundingBox.ts
  25. 1 1
      src/Engines/engine.ts

+ 31 - 31
Playground/babylon.d.txt

@@ -484,7 +484,7 @@ declare module BABYLON {
          */
          */
         static FromHexString(hex: string): Color3;
         static FromHexString(hex: string): Color3;
         /**
         /**
-         * Creates a new Vector3 from the starting index of the given array
+         * Creates a new Color3 from the starting index of the given array
          * @param array defines the source array
          * @param array defines the source array
          * @param offset defines an offset in the source array
          * @param offset defines an offset in the source array
          * @returns a new Color3 object
          * @returns a new Color3 object
@@ -6289,8 +6289,8 @@ declare module BABYLON {
         /** @hidden */
size: number;
         /** @hidden */
size: number;
         /** @hidden */
extension: string;
         /** @hidden */
extension: string;
         /** @hidden */
files: Nullable<string[]>;
         /** @hidden */
files: Nullable<string[]>;
-        /** @hidden */
workingCanvas: HTMLCanvasElement;
-        /** @hidden */
workingContext: CanvasRenderingContext2D;
+        /** @hidden */
workingCanvas: Nullable<HTMLCanvasElement>;
+        /** @hidden */
workingContext: Nullable<CanvasRenderingContext2D>;
         /** @hidden */
framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
depthStencilBuffer: Nullable<WebGLRenderbuffer>;
         /** @hidden */
depthStencilBuffer: Nullable<WebGLRenderbuffer>;
         /** @hidden */
MSAAFramebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
MSAAFramebuffer: Nullable<WebGLFramebuffer>;
@@ -6311,9 +6311,9 @@ declare module BABYLON {
         /** @hidden */
lodGenerationOffset: number;
         /** @hidden */
lodGenerationOffset: number;
         /** @hidden */
colorTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
colorTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
depthStencilTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
depthStencilTextureArray: Nullable<WebGLTexture>;
-        /** @hidden */
lodTextureHigh: BaseTexture;
-        /** @hidden */
lodTextureMid: BaseTexture;
-        /** @hidden */
lodTextureLow: BaseTexture;
+        /** @hidden */
lodTextureHigh: Nullable<BaseTexture>;
+        /** @hidden */
lodTextureMid: Nullable<BaseTexture>;
+        /** @hidden */
lodTextureLow: Nullable<BaseTexture>;
         /** @hidden */
isRGBD: boolean;
         /** @hidden */
isRGBD: boolean;
         /** @hidden */
webGLTexture: Nullable<WebGLTexture>;
         /** @hidden */
webGLTexture: Nullable<WebGLTexture>;
         /** @hidden */
references: number;
         /** @hidden */
references: number;
@@ -7442,7 +7442,7 @@ declare module BABYLON {
          * Gets or sets a boolean indicating that even if rotationQuaternion is defined, you can keep updating rotation property and Babylon.js will just mix both
          * Gets or sets a boolean indicating that even if rotationQuaternion is defined, you can keep updating rotation property and Babylon.js will just mix both
          */
          */
         reIntegrateRotationIntoRotationQuaternion: boolean;
         reIntegrateRotationIntoRotationQuaternion: boolean;
-        /** @hidden */
poseMatrix: Matrix;
+        /** @hidden */
poseMatrix: Nullable<Matrix>;
         /** @hidden */
localMatrix: Matrix;
         /** @hidden */
localMatrix: Matrix;
         private _usePivotMatrix;
         private _usePivotMatrix;
         private _absolutePosition;
         private _absolutePosition;
@@ -17736,7 +17736,7 @@ declare module BABYLON {
          * List of inspectable custom properties (used by the Inspector)
          * List of inspectable custom properties (used by the Inspector)
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          */
          */
-        inspectableCustomProperties: IInspectable[];
+        inspectableCustomProperties: Nullable<IInspectable[]>;
         private _noMipmap;
         private _noMipmap;
         /** @hidden */
invertY: boolean;
         /** @hidden */
invertY: boolean;
         private _rowGenerationMatrix;
         private _rowGenerationMatrix;
@@ -18207,7 +18207,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the root Animatable used to synchronize and normalize animations
          * Gets the root Animatable used to synchronize and normalize animations
          */
          */
-        readonly syncRoot: Animatable;
+        readonly syncRoot: Nullable<Animatable>;
         /**
         /**
          * Gets the current frame of the first RuntimeAnimation
          * Gets the current frame of the first RuntimeAnimation
          * Used to synchronize Animatables
          * Used to synchronize Animatables
@@ -21337,15 +21337,15 @@ declare module BABYLON {
         /**
         /**
          * Callback triggered when the material is compiled
          * Callback triggered when the material is compiled
          */
          */
-        onCompiled: (effect: Effect) => void;
+        onCompiled: Nullable<(effect: Effect) => void>;
         /**
         /**
          * Callback triggered when an error occurs
          * Callback triggered when an error occurs
          */
          */
-        onError: (effect: Effect, errors: string) => void;
+        onError: Nullable<(effect: Effect, errors: string) => void>;
         /**
         /**
          * Callback triggered to get the render target textures
          * Callback triggered to get the render target textures
          */
          */
-        getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
+        getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>;
         /**
         /**
          * Gets a boolean indicating that current material needs to register RTT
          * Gets a boolean indicating that current material needs to register RTT
          */
          */
@@ -21360,7 +21360,7 @@ declare module BABYLON {
         /**
         /**
          * Stores the animations for the material
          * Stores the animations for the material
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
         /**
         /**
         * An event triggered when the material is disposed
         * An event triggered when the material is disposed
         */
         */
@@ -21797,7 +21797,7 @@ declare module BABYLON {
         private _linesIndexBuffer;
         private _linesIndexBuffer;
         /** @hidden */
lastColliderWorldVertices: Nullable<Vector3[]>;
         /** @hidden */
lastColliderWorldVertices: Nullable<Vector3[]>;
         /** @hidden */
trianglePlanes: Plane[];
         /** @hidden */
trianglePlanes: Plane[];
-        /** @hidden */
lastColliderTransformMatrix: Matrix;
+        /** @hidden */
lastColliderTransformMatrix: Nullable<Matrix>;
         /** @hidden */
renderId: number;
         /** @hidden */
renderId: number;
         /** @hidden */
alphaIndex: number;
         /** @hidden */
alphaIndex: number;
         /** @hidden */
distanceToCamera: number;
         /** @hidden */
distanceToCamera: number;
@@ -23560,7 +23560,7 @@ declare module BABYLON {
         /** @hidden */
occlusionQuery: Nullable<WebGLQuery>;
         /** @hidden */
occlusionQuery: Nullable<WebGLQuery>;
         private _visibility;
         private _visibility;
         /** @hidden */
isActive: boolean;
         /** @hidden */
isActive: boolean;
-        /** @hidden */
renderingGroup: RenderingGroup;
+        /** @hidden */
renderingGroup: Nullable<RenderingGroup>;
         /**
         /**
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          */
          */
@@ -23703,7 +23703,7 @@ declare module BABYLON {
         /** @hidden */
unIndexed: boolean;
         /** @hidden */
unIndexed: boolean;
         /** @hidden */
lightSources: Light[];
         /** @hidden */
lightSources: Light[];
         /** @hidden */
protected readonly _positions: Nullable<Vector3[]>;
         /** @hidden */
protected readonly _positions: Nullable<Vector3[]>;
-        /** @hidden */
waitingActions: any;
+        /** @hidden */
waitingActions: Nullable<any>;
         /** @hidden */
waitingFreezeWorldMatrix: Nullable<boolean>;
         /** @hidden */
waitingFreezeWorldMatrix: Nullable<boolean>;
         private _skeleton;
         private _skeleton;
         /** @hidden */
bonesTransformMatrices: Nullable<Float32Array>;
         /** @hidden */
bonesTransformMatrices: Nullable<Float32Array>;
@@ -23962,7 +23962,7 @@ declare module BABYLON {
          * Gets Collider object used to compute collisions (not physics)
          * Gets Collider object used to compute collisions (not physics)
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          */
          */
-        readonly collider: Collider;
+        readonly collider: Nullable<Collider>;
         /**
         /**
          * Move the mesh using collision engine
          * Move the mesh using collision engine
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
@@ -24399,7 +24399,7 @@ declare module BABYLON {
         /**
         /**
          * Callback raised when the node is ready to be used
          * Callback raised when the node is ready to be used
          */
          */
-        onReady: (node: Node) => void;
+        onReady: Nullable<(node: Node) => void>;
         private _isEnabled;
         private _isEnabled;
         private _isParentEnabled;
         private _isParentEnabled;
         private _isReady;
         private _isReady;
@@ -27614,7 +27614,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
         /**
         /**
@@ -30050,7 +30050,7 @@ declare module BABYLON {
         /**
         /**
          * Array of animations
          * Array of animations
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
     }
     }
     /** Interface used by value gradients (color, factor, ...) */
     /** Interface used by value gradients (color, factor, ...) */
     export interface IValueGradient {
     export interface IValueGradient {
@@ -44085,11 +44085,11 @@ declare module BABYLON {
         /**
         /**
          * AKA Diffuse Texture in standard nomenclature.
          * AKA Diffuse Texture in standard nomenclature.
          */
          */
-        protected _albedoTexture: BaseTexture;
+        protected _albedoTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture in other nomenclature.
          * AKA Occlusion Texture in other nomenclature.
          */
          */
-        protected _ambientTexture: BaseTexture;
+        protected _ambientTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture Intensity in other nomenclature.
          * AKA Occlusion Texture Intensity in other nomenclature.
          */
          */
@@ -44103,23 +44103,23 @@ declare module BABYLON {
         /**
         /**
          * Stores the alpha values in a texture.
          * Stores the alpha values in a texture.
          */
          */
-        protected _opacityTexture: BaseTexture;
+        protected _opacityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the reflection values in a texture.
          * Stores the reflection values in a texture.
          */
          */
-        protected _reflectionTexture: BaseTexture;
+        protected _reflectionTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the emissive values in a texture.
          * Stores the emissive values in a texture.
          */
          */
-        protected _emissiveTexture: BaseTexture;
+        protected _emissiveTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Specular texture in other nomenclature.
          * AKA Specular texture in other nomenclature.
          */
          */
-        protected _reflectivityTexture: BaseTexture;
+        protected _reflectivityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          */
          */
-        protected _metallicTexture: BaseTexture;
+        protected _metallicTexture: Nullable<BaseTexture>;
         /**
         /**
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Can also be used to scale the metalness values of the metallic texture.
          * Can also be used to scale the metalness values of the metallic texture.
@@ -44134,15 +44134,15 @@ declare module BABYLON {
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          */
          */
-        protected _microSurfaceTexture: BaseTexture;
+        protected _microSurfaceTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores surface normal data used to displace a mesh in a texture.
          * Stores surface normal data used to displace a mesh in a texture.
          */
          */
-        protected _bumpTexture: BaseTexture;
+        protected _bumpTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the pre-calculated light information of a mesh in a texture.
          * Stores the pre-calculated light information of a mesh in a texture.
          */
          */
-        protected _lightmapTexture: BaseTexture;
+        protected _lightmapTexture: Nullable<BaseTexture>;
         /**
         /**
          * The color of a material in ambient lighting.
          * The color of a material in ambient lighting.
          */
          */
@@ -44445,7 +44445,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the texture used for the alpha test.
          * Gets the texture used for the alpha test.
          */
          */
-        getAlphaTestTexture(): BaseTexture;
+        getAlphaTestTexture(): Nullable<BaseTexture>;
         /**
         /**
          * Specifies that the submesh is ready to be used.
          * Specifies that the submesh is ready to be used.
          * @param mesh - BJS mesh.
          * @param mesh - BJS mesh.

+ 1 - 1
Viewer/src/model/viewerModel.ts

@@ -264,7 +264,7 @@ export class ViewerModel implements IDisposable {
                 let ag = new AnimationGroup("animation-" + idx, this._configurationContainer && this._configurationContainer.scene);
                 let ag = new AnimationGroup("animation-" + idx, this._configurationContainer && this._configurationContainer.scene);
                 let add = false;
                 let add = false;
                 skeleton.getAnimatables().forEach((a) => {
                 skeleton.getAnimatables().forEach((a) => {
-                    if (a.animations[0]) {
+                    if (a.animations && a.animations[0]) {
                         ag.addTargetedAnimation(a.animations[0], a);
                         ag.addTargetedAnimation(a.animations[0], a);
                         add = true;
                         add = true;
                     }
                     }

+ 31 - 31
dist/preview release/babylon.d.ts

@@ -484,7 +484,7 @@ declare module BABYLON {
          */
          */
         static FromHexString(hex: string): Color3;
         static FromHexString(hex: string): Color3;
         /**
         /**
-         * Creates a new Vector3 from the starting index of the given array
+         * Creates a new Color3 from the starting index of the given array
          * @param array defines the source array
          * @param array defines the source array
          * @param offset defines an offset in the source array
          * @param offset defines an offset in the source array
          * @returns a new Color3 object
          * @returns a new Color3 object
@@ -6325,9 +6325,9 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _files: Nullable<string[]>;
         _files: Nullable<string[]>;
         /** @hidden */
         /** @hidden */
-        _workingCanvas: HTMLCanvasElement;
+        _workingCanvas: Nullable<HTMLCanvasElement>;
         /** @hidden */
         /** @hidden */
-        _workingContext: CanvasRenderingContext2D;
+        _workingContext: Nullable<CanvasRenderingContext2D>;
         /** @hidden */
         /** @hidden */
         _framebuffer: Nullable<WebGLFramebuffer>;
         _framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
         /** @hidden */
@@ -6369,11 +6369,11 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureHigh: BaseTexture;
+        _lodTextureHigh: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureMid: BaseTexture;
+        _lodTextureMid: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureLow: BaseTexture;
+        _lodTextureLow: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
         _isRGBD: boolean;
         _isRGBD: boolean;
         /** @hidden */
         /** @hidden */
@@ -7525,7 +7525,7 @@ declare module BABYLON {
          */
          */
         reIntegrateRotationIntoRotationQuaternion: boolean;
         reIntegrateRotationIntoRotationQuaternion: boolean;
         /** @hidden */
         /** @hidden */
-        _poseMatrix: Matrix;
+        _poseMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _localMatrix: Matrix;
         _localMatrix: Matrix;
         private _usePivotMatrix;
         private _usePivotMatrix;
@@ -18009,7 +18009,7 @@ declare module BABYLON {
          * List of inspectable custom properties (used by the Inspector)
          * List of inspectable custom properties (used by the Inspector)
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          */
          */
-        inspectableCustomProperties: IInspectable[];
+        inspectableCustomProperties: Nullable<IInspectable[]>;
         private _noMipmap;
         private _noMipmap;
         /** @hidden */
         /** @hidden */
         _invertY: boolean;
         _invertY: boolean;
@@ -18485,7 +18485,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the root Animatable used to synchronize and normalize animations
          * Gets the root Animatable used to synchronize and normalize animations
          */
          */
-        readonly syncRoot: Animatable;
+        readonly syncRoot: Nullable<Animatable>;
         /**
         /**
          * Gets the current frame of the first RuntimeAnimation
          * Gets the current frame of the first RuntimeAnimation
          * Used to synchronize Animatables
          * Used to synchronize Animatables
@@ -21669,15 +21669,15 @@ declare module BABYLON {
         /**
         /**
          * Callback triggered when the material is compiled
          * Callback triggered when the material is compiled
          */
          */
-        onCompiled: (effect: Effect) => void;
+        onCompiled: Nullable<(effect: Effect) => void>;
         /**
         /**
          * Callback triggered when an error occurs
          * Callback triggered when an error occurs
          */
          */
-        onError: (effect: Effect, errors: string) => void;
+        onError: Nullable<(effect: Effect, errors: string) => void>;
         /**
         /**
          * Callback triggered to get the render target textures
          * Callback triggered to get the render target textures
          */
          */
-        getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
+        getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>;
         /**
         /**
          * Gets a boolean indicating that current material needs to register RTT
          * Gets a boolean indicating that current material needs to register RTT
          */
          */
@@ -21693,7 +21693,7 @@ declare module BABYLON {
         /**
         /**
          * Stores the animations for the material
          * Stores the animations for the material
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
         /**
         /**
         * An event triggered when the material is disposed
         * An event triggered when the material is disposed
         */
         */
@@ -22140,7 +22140,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _trianglePlanes: Plane[];
         _trianglePlanes: Plane[];
         /** @hidden */
         /** @hidden */
-        _lastColliderTransformMatrix: Matrix;
+        _lastColliderTransformMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _renderId: number;
         _renderId: number;
         /** @hidden */
         /** @hidden */
@@ -23944,7 +23944,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _isActive: boolean;
         _isActive: boolean;
         /** @hidden */
         /** @hidden */
-        _renderingGroup: RenderingGroup;
+        _renderingGroup: Nullable<RenderingGroup>;
         /**
         /**
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          */
          */
@@ -24096,7 +24096,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         readonly _positions: Nullable<Vector3[]>;
         readonly _positions: Nullable<Vector3[]>;
         /** @hidden */
         /** @hidden */
-        _waitingActions: any;
+        _waitingActions: Nullable<any>;
         /** @hidden */
         /** @hidden */
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         private _skeleton;
         private _skeleton;
@@ -24377,7 +24377,7 @@ declare module BABYLON {
          * Gets Collider object used to compute collisions (not physics)
          * Gets Collider object used to compute collisions (not physics)
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          */
          */
-        readonly collider: Collider;
+        readonly collider: Nullable<Collider>;
         /**
         /**
          * Move the mesh using collision engine
          * Move the mesh using collision engine
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
@@ -24821,7 +24821,7 @@ declare module BABYLON {
         /**
         /**
          * Callback raised when the node is ready to be used
          * Callback raised when the node is ready to be used
          */
          */
-        onReady: (node: Node) => void;
+        onReady: Nullable<(node: Node) => void>;
         private _isEnabled;
         private _isEnabled;
         private _isParentEnabled;
         private _isParentEnabled;
         private _isReady;
         private _isReady;
@@ -28081,7 +28081,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
         /**
         /**
@@ -30587,7 +30587,7 @@ declare module BABYLON {
         /**
         /**
          * Array of animations
          * Array of animations
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
     }
     }
     /** Interface used by value gradients (color, factor, ...) */
     /** Interface used by value gradients (color, factor, ...) */
     export interface IValueGradient {
     export interface IValueGradient {
@@ -44767,11 +44767,11 @@ declare module BABYLON {
         /**
         /**
          * AKA Diffuse Texture in standard nomenclature.
          * AKA Diffuse Texture in standard nomenclature.
          */
          */
-        protected _albedoTexture: BaseTexture;
+        protected _albedoTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture in other nomenclature.
          * AKA Occlusion Texture in other nomenclature.
          */
          */
-        protected _ambientTexture: BaseTexture;
+        protected _ambientTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture Intensity in other nomenclature.
          * AKA Occlusion Texture Intensity in other nomenclature.
          */
          */
@@ -44785,23 +44785,23 @@ declare module BABYLON {
         /**
         /**
          * Stores the alpha values in a texture.
          * Stores the alpha values in a texture.
          */
          */
-        protected _opacityTexture: BaseTexture;
+        protected _opacityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the reflection values in a texture.
          * Stores the reflection values in a texture.
          */
          */
-        protected _reflectionTexture: BaseTexture;
+        protected _reflectionTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the emissive values in a texture.
          * Stores the emissive values in a texture.
          */
          */
-        protected _emissiveTexture: BaseTexture;
+        protected _emissiveTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Specular texture in other nomenclature.
          * AKA Specular texture in other nomenclature.
          */
          */
-        protected _reflectivityTexture: BaseTexture;
+        protected _reflectivityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          */
          */
-        protected _metallicTexture: BaseTexture;
+        protected _metallicTexture: Nullable<BaseTexture>;
         /**
         /**
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Can also be used to scale the metalness values of the metallic texture.
          * Can also be used to scale the metalness values of the metallic texture.
@@ -44816,15 +44816,15 @@ declare module BABYLON {
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          */
          */
-        protected _microSurfaceTexture: BaseTexture;
+        protected _microSurfaceTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores surface normal data used to displace a mesh in a texture.
          * Stores surface normal data used to displace a mesh in a texture.
          */
          */
-        protected _bumpTexture: BaseTexture;
+        protected _bumpTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the pre-calculated light information of a mesh in a texture.
          * Stores the pre-calculated light information of a mesh in a texture.
          */
          */
-        protected _lightmapTexture: BaseTexture;
+        protected _lightmapTexture: Nullable<BaseTexture>;
         /**
         /**
          * The color of a material in ambient lighting.
          * The color of a material in ambient lighting.
          */
          */
@@ -45127,7 +45127,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the texture used for the alpha test.
          * Gets the texture used for the alpha test.
          */
          */
-        getAlphaTestTexture(): BaseTexture;
+        getAlphaTestTexture(): Nullable<BaseTexture>;
         /**
         /**
          * Specifies that the submesh is ready to be used.
          * Specifies that the submesh is ready to be used.
          * @param mesh - BJS mesh.
          * @param mesh - BJS mesh.

文件差异内容过多而无法显示
+ 2 - 2
dist/preview release/babylon.js


文件差异内容过多而无法显示
+ 400 - 32
dist/preview release/babylon.max.js


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/babylon.max.js.map


+ 62 - 62
dist/preview release/babylon.module.d.ts

@@ -486,7 +486,7 @@ declare module "babylonjs/Maths/math" {
          */
          */
         static FromHexString(hex: string): Color3;
         static FromHexString(hex: string): Color3;
         /**
         /**
-         * Creates a new Vector3 from the starting index of the given array
+         * Creates a new Color3 from the starting index of the given array
          * @param array defines the source array
          * @param array defines the source array
          * @param offset defines an offset in the source array
          * @param offset defines an offset in the source array
          * @returns a new Color3 object
          * @returns a new Color3 object
@@ -6350,9 +6350,9 @@ declare module "babylonjs/Materials/Textures/internalTexture" {
         /** @hidden */
         /** @hidden */
         _files: Nullable<string[]>;
         _files: Nullable<string[]>;
         /** @hidden */
         /** @hidden */
-        _workingCanvas: HTMLCanvasElement;
+        _workingCanvas: Nullable<HTMLCanvasElement>;
         /** @hidden */
         /** @hidden */
-        _workingContext: CanvasRenderingContext2D;
+        _workingContext: Nullable<CanvasRenderingContext2D>;
         /** @hidden */
         /** @hidden */
         _framebuffer: Nullable<WebGLFramebuffer>;
         _framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
         /** @hidden */
@@ -6394,11 +6394,11 @@ declare module "babylonjs/Materials/Textures/internalTexture" {
         /** @hidden */
         /** @hidden */
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureHigh: BaseTexture;
+        _lodTextureHigh: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureMid: BaseTexture;
+        _lodTextureMid: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureLow: BaseTexture;
+        _lodTextureLow: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
         _isRGBD: boolean;
         _isRGBD: boolean;
         /** @hidden */
         /** @hidden */
@@ -7580,7 +7580,7 @@ declare module "babylonjs/Meshes/transformNode" {
          */
          */
         reIntegrateRotationIntoRotationQuaternion: boolean;
         reIntegrateRotationIntoRotationQuaternion: boolean;
         /** @hidden */
         /** @hidden */
-        _poseMatrix: Matrix;
+        _poseMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _localMatrix: Matrix;
         _localMatrix: Matrix;
         private _usePivotMatrix;
         private _usePivotMatrix;
@@ -18488,7 +18488,7 @@ declare module "babylonjs/Materials/Textures/texture" {
          * List of inspectable custom properties (used by the Inspector)
          * List of inspectable custom properties (used by the Inspector)
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          */
          */
-        inspectableCustomProperties: IInspectable[];
+        inspectableCustomProperties: Nullable<IInspectable[]>;
         private _noMipmap;
         private _noMipmap;
         /** @hidden */
         /** @hidden */
         _invertY: boolean;
         _invertY: boolean;
@@ -18976,7 +18976,7 @@ declare module "babylonjs/Animations/animatable" {
         /**
         /**
          * Gets the root Animatable used to synchronize and normalize animations
          * Gets the root Animatable used to synchronize and normalize animations
          */
          */
-        readonly syncRoot: Animatable;
+        readonly syncRoot: Nullable<Animatable>;
         /**
         /**
          * Gets the current frame of the first RuntimeAnimation
          * Gets the current frame of the first RuntimeAnimation
          * Used to synchronize Animatables
          * Used to synchronize Animatables
@@ -22246,15 +22246,15 @@ declare module "babylonjs/Materials/material" {
         /**
         /**
          * Callback triggered when the material is compiled
          * Callback triggered when the material is compiled
          */
          */
-        onCompiled: (effect: Effect) => void;
+        onCompiled: Nullable<(effect: Effect) => void>;
         /**
         /**
          * Callback triggered when an error occurs
          * Callback triggered when an error occurs
          */
          */
-        onError: (effect: Effect, errors: string) => void;
+        onError: Nullable<(effect: Effect, errors: string) => void>;
         /**
         /**
          * Callback triggered to get the render target textures
          * Callback triggered to get the render target textures
          */
          */
-        getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
+        getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>;
         /**
         /**
          * Gets a boolean indicating that current material needs to register RTT
          * Gets a boolean indicating that current material needs to register RTT
          */
          */
@@ -22270,7 +22270,7 @@ declare module "babylonjs/Materials/material" {
         /**
         /**
          * Stores the animations for the material
          * Stores the animations for the material
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
         /**
         /**
         * An event triggered when the material is disposed
         * An event triggered when the material is disposed
         */
         */
@@ -22730,7 +22730,7 @@ declare module "babylonjs/Meshes/subMesh" {
         /** @hidden */
         /** @hidden */
         _trianglePlanes: Plane[];
         _trianglePlanes: Plane[];
         /** @hidden */
         /** @hidden */
-        _lastColliderTransformMatrix: Matrix;
+        _lastColliderTransformMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _renderId: number;
         _renderId: number;
         /** @hidden */
         /** @hidden */
@@ -24582,7 +24582,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
         /** @hidden */
         /** @hidden */
         _isActive: boolean;
         _isActive: boolean;
         /** @hidden */
         /** @hidden */
-        _renderingGroup: RenderingGroup;
+        _renderingGroup: Nullable<RenderingGroup>;
         /**
         /**
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          */
          */
@@ -24734,7 +24734,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
         /** @hidden */
         /** @hidden */
         readonly _positions: Nullable<Vector3[]>;
         readonly _positions: Nullable<Vector3[]>;
         /** @hidden */
         /** @hidden */
-        _waitingActions: any;
+        _waitingActions: Nullable<any>;
         /** @hidden */
         /** @hidden */
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         private _skeleton;
         private _skeleton;
@@ -25015,7 +25015,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
          * Gets Collider object used to compute collisions (not physics)
          * Gets Collider object used to compute collisions (not physics)
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          */
          */
-        readonly collider: Collider;
+        readonly collider: Nullable<Collider>;
         /**
         /**
          * Move the mesh using collision engine
          * Move the mesh using collision engine
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
@@ -25481,7 +25481,7 @@ declare module "babylonjs/node" {
         /**
         /**
          * Callback raised when the node is ready to be used
          * Callback raised when the node is ready to be used
          */
          */
-        onReady: (node: Node) => void;
+        onReady: Nullable<(node: Node) => void>;
         private _isEnabled;
         private _isEnabled;
         private _isParentEnabled;
         private _isParentEnabled;
         private _isReady;
         private _isReady;
@@ -28803,7 +28803,7 @@ declare module "babylonjs/Engines/engine" {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
         /**
         /**
@@ -31354,7 +31354,7 @@ declare module "babylonjs/Misc/tools" {
         /**
         /**
          * Array of animations
          * Array of animations
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
     }
     }
     /** Interface used by value gradients (color, factor, ...) */
     /** Interface used by value gradients (color, factor, ...) */
     export interface IValueGradient {
     export interface IValueGradient {
@@ -46579,11 +46579,11 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
         /**
         /**
          * AKA Diffuse Texture in standard nomenclature.
          * AKA Diffuse Texture in standard nomenclature.
          */
          */
-        protected _albedoTexture: BaseTexture;
+        protected _albedoTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture in other nomenclature.
          * AKA Occlusion Texture in other nomenclature.
          */
          */
-        protected _ambientTexture: BaseTexture;
+        protected _ambientTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture Intensity in other nomenclature.
          * AKA Occlusion Texture Intensity in other nomenclature.
          */
          */
@@ -46597,23 +46597,23 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
         /**
         /**
          * Stores the alpha values in a texture.
          * Stores the alpha values in a texture.
          */
          */
-        protected _opacityTexture: BaseTexture;
+        protected _opacityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the reflection values in a texture.
          * Stores the reflection values in a texture.
          */
          */
-        protected _reflectionTexture: BaseTexture;
+        protected _reflectionTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the emissive values in a texture.
          * Stores the emissive values in a texture.
          */
          */
-        protected _emissiveTexture: BaseTexture;
+        protected _emissiveTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Specular texture in other nomenclature.
          * AKA Specular texture in other nomenclature.
          */
          */
-        protected _reflectivityTexture: BaseTexture;
+        protected _reflectivityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          */
          */
-        protected _metallicTexture: BaseTexture;
+        protected _metallicTexture: Nullable<BaseTexture>;
         /**
         /**
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Can also be used to scale the metalness values of the metallic texture.
          * Can also be used to scale the metalness values of the metallic texture.
@@ -46628,15 +46628,15 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          */
          */
-        protected _microSurfaceTexture: BaseTexture;
+        protected _microSurfaceTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores surface normal data used to displace a mesh in a texture.
          * Stores surface normal data used to displace a mesh in a texture.
          */
          */
-        protected _bumpTexture: BaseTexture;
+        protected _bumpTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the pre-calculated light information of a mesh in a texture.
          * Stores the pre-calculated light information of a mesh in a texture.
          */
          */
-        protected _lightmapTexture: BaseTexture;
+        protected _lightmapTexture: Nullable<BaseTexture>;
         /**
         /**
          * The color of a material in ambient lighting.
          * The color of a material in ambient lighting.
          */
          */
@@ -46939,7 +46939,7 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
         /**
         /**
          * Gets the texture used for the alpha test.
          * Gets the texture used for the alpha test.
          */
          */
-        getAlphaTestTexture(): BaseTexture;
+        getAlphaTestTexture(): Nullable<BaseTexture>;
         /**
         /**
          * Specifies that the submesh is ready to be used.
          * Specifies that the submesh is ready to be used.
          * @param mesh - BJS mesh.
          * @param mesh - BJS mesh.
@@ -59976,7 +59976,7 @@ declare module BABYLON {
          */
          */
         static FromHexString(hex: string): Color3;
         static FromHexString(hex: string): Color3;
         /**
         /**
-         * Creates a new Vector3 from the starting index of the given array
+         * Creates a new Color3 from the starting index of the given array
          * @param array defines the source array
          * @param array defines the source array
          * @param offset defines an offset in the source array
          * @param offset defines an offset in the source array
          * @returns a new Color3 object
          * @returns a new Color3 object
@@ -65817,9 +65817,9 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _files: Nullable<string[]>;
         _files: Nullable<string[]>;
         /** @hidden */
         /** @hidden */
-        _workingCanvas: HTMLCanvasElement;
+        _workingCanvas: Nullable<HTMLCanvasElement>;
         /** @hidden */
         /** @hidden */
-        _workingContext: CanvasRenderingContext2D;
+        _workingContext: Nullable<CanvasRenderingContext2D>;
         /** @hidden */
         /** @hidden */
         _framebuffer: Nullable<WebGLFramebuffer>;
         _framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
         /** @hidden */
@@ -65861,11 +65861,11 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureHigh: BaseTexture;
+        _lodTextureHigh: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureMid: BaseTexture;
+        _lodTextureMid: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureLow: BaseTexture;
+        _lodTextureLow: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
         _isRGBD: boolean;
         _isRGBD: boolean;
         /** @hidden */
         /** @hidden */
@@ -67017,7 +67017,7 @@ declare module BABYLON {
          */
          */
         reIntegrateRotationIntoRotationQuaternion: boolean;
         reIntegrateRotationIntoRotationQuaternion: boolean;
         /** @hidden */
         /** @hidden */
-        _poseMatrix: Matrix;
+        _poseMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _localMatrix: Matrix;
         _localMatrix: Matrix;
         private _usePivotMatrix;
         private _usePivotMatrix;
@@ -77501,7 +77501,7 @@ declare module BABYLON {
          * List of inspectable custom properties (used by the Inspector)
          * List of inspectable custom properties (used by the Inspector)
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          */
          */
-        inspectableCustomProperties: IInspectable[];
+        inspectableCustomProperties: Nullable<IInspectable[]>;
         private _noMipmap;
         private _noMipmap;
         /** @hidden */
         /** @hidden */
         _invertY: boolean;
         _invertY: boolean;
@@ -77977,7 +77977,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the root Animatable used to synchronize and normalize animations
          * Gets the root Animatable used to synchronize and normalize animations
          */
          */
-        readonly syncRoot: Animatable;
+        readonly syncRoot: Nullable<Animatable>;
         /**
         /**
          * Gets the current frame of the first RuntimeAnimation
          * Gets the current frame of the first RuntimeAnimation
          * Used to synchronize Animatables
          * Used to synchronize Animatables
@@ -81161,15 +81161,15 @@ declare module BABYLON {
         /**
         /**
          * Callback triggered when the material is compiled
          * Callback triggered when the material is compiled
          */
          */
-        onCompiled: (effect: Effect) => void;
+        onCompiled: Nullable<(effect: Effect) => void>;
         /**
         /**
          * Callback triggered when an error occurs
          * Callback triggered when an error occurs
          */
          */
-        onError: (effect: Effect, errors: string) => void;
+        onError: Nullable<(effect: Effect, errors: string) => void>;
         /**
         /**
          * Callback triggered to get the render target textures
          * Callback triggered to get the render target textures
          */
          */
-        getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
+        getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>;
         /**
         /**
          * Gets a boolean indicating that current material needs to register RTT
          * Gets a boolean indicating that current material needs to register RTT
          */
          */
@@ -81185,7 +81185,7 @@ declare module BABYLON {
         /**
         /**
          * Stores the animations for the material
          * Stores the animations for the material
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
         /**
         /**
         * An event triggered when the material is disposed
         * An event triggered when the material is disposed
         */
         */
@@ -81632,7 +81632,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _trianglePlanes: Plane[];
         _trianglePlanes: Plane[];
         /** @hidden */
         /** @hidden */
-        _lastColliderTransformMatrix: Matrix;
+        _lastColliderTransformMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _renderId: number;
         _renderId: number;
         /** @hidden */
         /** @hidden */
@@ -83436,7 +83436,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _isActive: boolean;
         _isActive: boolean;
         /** @hidden */
         /** @hidden */
-        _renderingGroup: RenderingGroup;
+        _renderingGroup: Nullable<RenderingGroup>;
         /**
         /**
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          */
          */
@@ -83588,7 +83588,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         readonly _positions: Nullable<Vector3[]>;
         readonly _positions: Nullable<Vector3[]>;
         /** @hidden */
         /** @hidden */
-        _waitingActions: any;
+        _waitingActions: Nullable<any>;
         /** @hidden */
         /** @hidden */
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         private _skeleton;
         private _skeleton;
@@ -83869,7 +83869,7 @@ declare module BABYLON {
          * Gets Collider object used to compute collisions (not physics)
          * Gets Collider object used to compute collisions (not physics)
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          */
          */
-        readonly collider: Collider;
+        readonly collider: Nullable<Collider>;
         /**
         /**
          * Move the mesh using collision engine
          * Move the mesh using collision engine
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
@@ -84313,7 +84313,7 @@ declare module BABYLON {
         /**
         /**
          * Callback raised when the node is ready to be used
          * Callback raised when the node is ready to be used
          */
          */
-        onReady: (node: Node) => void;
+        onReady: Nullable<(node: Node) => void>;
         private _isEnabled;
         private _isEnabled;
         private _isParentEnabled;
         private _isParentEnabled;
         private _isReady;
         private _isReady;
@@ -87573,7 +87573,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
         /**
         /**
@@ -90079,7 +90079,7 @@ declare module BABYLON {
         /**
         /**
          * Array of animations
          * Array of animations
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
     }
     }
     /** Interface used by value gradients (color, factor, ...) */
     /** Interface used by value gradients (color, factor, ...) */
     export interface IValueGradient {
     export interface IValueGradient {
@@ -104259,11 +104259,11 @@ declare module BABYLON {
         /**
         /**
          * AKA Diffuse Texture in standard nomenclature.
          * AKA Diffuse Texture in standard nomenclature.
          */
          */
-        protected _albedoTexture: BaseTexture;
+        protected _albedoTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture in other nomenclature.
          * AKA Occlusion Texture in other nomenclature.
          */
          */
-        protected _ambientTexture: BaseTexture;
+        protected _ambientTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture Intensity in other nomenclature.
          * AKA Occlusion Texture Intensity in other nomenclature.
          */
          */
@@ -104277,23 +104277,23 @@ declare module BABYLON {
         /**
         /**
          * Stores the alpha values in a texture.
          * Stores the alpha values in a texture.
          */
          */
-        protected _opacityTexture: BaseTexture;
+        protected _opacityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the reflection values in a texture.
          * Stores the reflection values in a texture.
          */
          */
-        protected _reflectionTexture: BaseTexture;
+        protected _reflectionTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the emissive values in a texture.
          * Stores the emissive values in a texture.
          */
          */
-        protected _emissiveTexture: BaseTexture;
+        protected _emissiveTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Specular texture in other nomenclature.
          * AKA Specular texture in other nomenclature.
          */
          */
-        protected _reflectivityTexture: BaseTexture;
+        protected _reflectivityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          */
          */
-        protected _metallicTexture: BaseTexture;
+        protected _metallicTexture: Nullable<BaseTexture>;
         /**
         /**
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Can also be used to scale the metalness values of the metallic texture.
          * Can also be used to scale the metalness values of the metallic texture.
@@ -104308,15 +104308,15 @@ declare module BABYLON {
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          */
          */
-        protected _microSurfaceTexture: BaseTexture;
+        protected _microSurfaceTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores surface normal data used to displace a mesh in a texture.
          * Stores surface normal data used to displace a mesh in a texture.
          */
          */
-        protected _bumpTexture: BaseTexture;
+        protected _bumpTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the pre-calculated light information of a mesh in a texture.
          * Stores the pre-calculated light information of a mesh in a texture.
          */
          */
-        protected _lightmapTexture: BaseTexture;
+        protected _lightmapTexture: Nullable<BaseTexture>;
         /**
         /**
          * The color of a material in ambient lighting.
          * The color of a material in ambient lighting.
          */
          */
@@ -104619,7 +104619,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the texture used for the alpha test.
          * Gets the texture used for the alpha test.
          */
          */
-        getAlphaTestTexture(): BaseTexture;
+        getAlphaTestTexture(): Nullable<BaseTexture>;
         /**
         /**
          * Specifies that the submesh is ready to be used.
          * Specifies that the submesh is ready to be used.
          * @param mesh - BJS mesh.
          * @param mesh - BJS mesh.

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/inspector/babylon.inspector.bundle.js


+ 3 - 1
dist/preview release/inspector/babylon.inspector.bundle.max.js

@@ -35485,7 +35485,9 @@ var AnimationGridComponent = /** @class */ (function (_super) {
             _this._animations = new Array();
             _this._animations = new Array();
             animatables.forEach(function (animatable) {
             animatables.forEach(function (animatable) {
                 var _a;
                 var _a;
-                (_a = _this._animations).push.apply(_a, animatable.animations);
+                if (animatable.animations) {
+                    (_a = _this._animations).push.apply(_a, animatable.animations);
+                }
             });
             });
             // Extract from and to
             // Extract from and to
             if (_this._animations && _this._animations.length) {
             if (_this._animations && _this._animations.length) {

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/inspector/babylon.inspector.bundle.max.js.map


+ 6 - 6
dist/preview release/loaders/babylon.glTF2FileLoader.js

@@ -2333,17 +2333,17 @@ var GLTFLoader = /** @class */ (function () {
             var animationType;
             var animationType;
             switch (channel.target.path) {
             switch (channel.target.path) {
                 case "translation" /* TRANSLATION */: {
                 case "translation" /* TRANSLATION */: {
-                    targetPath = "_position";
+                    targetPath = "position";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     break;
                     break;
                 }
                 }
                 case "rotation" /* ROTATION */: {
                 case "rotation" /* ROTATION */: {
-                    targetPath = "_rotationQuaternion";
+                    targetPath = "rotationQuaternion";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION;
                     break;
                     break;
                 }
                 }
                 case "scale" /* SCALE */: {
                 case "scale" /* SCALE */: {
-                    targetPath = "_scaling";
+                    targetPath = "scaling";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     break;
                     break;
                 }
                 }
@@ -2359,7 +2359,7 @@ var GLTFLoader = /** @class */ (function () {
             var outputBufferOffset = 0;
             var outputBufferOffset = 0;
             var getNextOutputValue;
             var getNextOutputValue;
             switch (targetPath) {
             switch (targetPath) {
-                case "_position": {
+                case "position": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 3;
                         outputBufferOffset += 3;
@@ -2367,7 +2367,7 @@ var GLTFLoader = /** @class */ (function () {
                     };
                     };
                     break;
                     break;
                 }
                 }
-                case "_rotationQuaternion": {
+                case "rotationQuaternion": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Quaternion"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Quaternion"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 4;
                         outputBufferOffset += 4;
@@ -2375,7 +2375,7 @@ var GLTFLoader = /** @class */ (function () {
                     };
                     };
                     break;
                     break;
                 }
                 }
-                case "_scaling": {
+                case "scaling": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 3;
                         outputBufferOffset += 3;

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylon.glTF2FileLoader.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylon.glTF2FileLoader.min.js


+ 6 - 6
dist/preview release/loaders/babylon.glTFFileLoader.js

@@ -4882,17 +4882,17 @@ var GLTFLoader = /** @class */ (function () {
             var animationType;
             var animationType;
             switch (channel.target.path) {
             switch (channel.target.path) {
                 case "translation" /* TRANSLATION */: {
                 case "translation" /* TRANSLATION */: {
-                    targetPath = "_position";
+                    targetPath = "position";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     break;
                     break;
                 }
                 }
                 case "rotation" /* ROTATION */: {
                 case "rotation" /* ROTATION */: {
-                    targetPath = "_rotationQuaternion";
+                    targetPath = "rotationQuaternion";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION;
                     break;
                     break;
                 }
                 }
                 case "scale" /* SCALE */: {
                 case "scale" /* SCALE */: {
-                    targetPath = "_scaling";
+                    targetPath = "scaling";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     break;
                     break;
                 }
                 }
@@ -4908,7 +4908,7 @@ var GLTFLoader = /** @class */ (function () {
             var outputBufferOffset = 0;
             var outputBufferOffset = 0;
             var getNextOutputValue;
             var getNextOutputValue;
             switch (targetPath) {
             switch (targetPath) {
-                case "_position": {
+                case "position": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 3;
                         outputBufferOffset += 3;
@@ -4916,7 +4916,7 @@ var GLTFLoader = /** @class */ (function () {
                     };
                     };
                     break;
                     break;
                 }
                 }
-                case "_rotationQuaternion": {
+                case "rotationQuaternion": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Quaternion"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Quaternion"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 4;
                         outputBufferOffset += 4;
@@ -4924,7 +4924,7 @@ var GLTFLoader = /** @class */ (function () {
                     };
                     };
                     break;
                     break;
                 }
                 }
-                case "_scaling": {
+                case "scaling": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 3;
                         outputBufferOffset += 3;

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylon.glTFFileLoader.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylon.glTFFileLoader.min.js


+ 6 - 6
dist/preview release/loaders/babylonjs.loaders.js

@@ -6214,17 +6214,17 @@ var GLTFLoader = /** @class */ (function () {
             var animationType;
             var animationType;
             switch (channel.target.path) {
             switch (channel.target.path) {
                 case "translation" /* TRANSLATION */: {
                 case "translation" /* TRANSLATION */: {
-                    targetPath = "_position";
+                    targetPath = "position";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     break;
                     break;
                 }
                 }
                 case "rotation" /* ROTATION */: {
                 case "rotation" /* ROTATION */: {
-                    targetPath = "_rotationQuaternion";
+                    targetPath = "rotationQuaternion";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION;
                     break;
                     break;
                 }
                 }
                 case "scale" /* SCALE */: {
                 case "scale" /* SCALE */: {
-                    targetPath = "_scaling";
+                    targetPath = "scaling";
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     animationType = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_VECTOR3;
                     break;
                     break;
                 }
                 }
@@ -6240,7 +6240,7 @@ var GLTFLoader = /** @class */ (function () {
             var outputBufferOffset = 0;
             var outputBufferOffset = 0;
             var getNextOutputValue;
             var getNextOutputValue;
             switch (targetPath) {
             switch (targetPath) {
-                case "_position": {
+                case "position": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 3;
                         outputBufferOffset += 3;
@@ -6248,7 +6248,7 @@ var GLTFLoader = /** @class */ (function () {
                     };
                     };
                     break;
                     break;
                 }
                 }
-                case "_rotationQuaternion": {
+                case "rotationQuaternion": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Quaternion"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Quaternion"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 4;
                         outputBufferOffset += 4;
@@ -6256,7 +6256,7 @@ var GLTFLoader = /** @class */ (function () {
                     };
                     };
                     break;
                     break;
                 }
                 }
-                case "_scaling": {
+                case "scaling": {
                     getNextOutputValue = function () {
                     getNextOutputValue = function () {
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         var value = babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__["Vector3"].FromArray(data.output, outputBufferOffset);
                         outputBufferOffset += 3;
                         outputBufferOffset += 3;

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylonjs.loaders.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylonjs.loaders.min.js


+ 62 - 62
dist/preview release/viewer/babylon.module.d.ts

@@ -486,7 +486,7 @@ declare module "babylonjs/Maths/math" {
          */
          */
         static FromHexString(hex: string): Color3;
         static FromHexString(hex: string): Color3;
         /**
         /**
-         * Creates a new Vector3 from the starting index of the given array
+         * Creates a new Color3 from the starting index of the given array
          * @param array defines the source array
          * @param array defines the source array
          * @param offset defines an offset in the source array
          * @param offset defines an offset in the source array
          * @returns a new Color3 object
          * @returns a new Color3 object
@@ -6350,9 +6350,9 @@ declare module "babylonjs/Materials/Textures/internalTexture" {
         /** @hidden */
         /** @hidden */
         _files: Nullable<string[]>;
         _files: Nullable<string[]>;
         /** @hidden */
         /** @hidden */
-        _workingCanvas: HTMLCanvasElement;
+        _workingCanvas: Nullable<HTMLCanvasElement>;
         /** @hidden */
         /** @hidden */
-        _workingContext: CanvasRenderingContext2D;
+        _workingContext: Nullable<CanvasRenderingContext2D>;
         /** @hidden */
         /** @hidden */
         _framebuffer: Nullable<WebGLFramebuffer>;
         _framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
         /** @hidden */
@@ -6394,11 +6394,11 @@ declare module "babylonjs/Materials/Textures/internalTexture" {
         /** @hidden */
         /** @hidden */
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureHigh: BaseTexture;
+        _lodTextureHigh: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureMid: BaseTexture;
+        _lodTextureMid: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureLow: BaseTexture;
+        _lodTextureLow: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
         _isRGBD: boolean;
         _isRGBD: boolean;
         /** @hidden */
         /** @hidden */
@@ -7580,7 +7580,7 @@ declare module "babylonjs/Meshes/transformNode" {
          */
          */
         reIntegrateRotationIntoRotationQuaternion: boolean;
         reIntegrateRotationIntoRotationQuaternion: boolean;
         /** @hidden */
         /** @hidden */
-        _poseMatrix: Matrix;
+        _poseMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _localMatrix: Matrix;
         _localMatrix: Matrix;
         private _usePivotMatrix;
         private _usePivotMatrix;
@@ -18488,7 +18488,7 @@ declare module "babylonjs/Materials/Textures/texture" {
          * List of inspectable custom properties (used by the Inspector)
          * List of inspectable custom properties (used by the Inspector)
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          */
          */
-        inspectableCustomProperties: IInspectable[];
+        inspectableCustomProperties: Nullable<IInspectable[]>;
         private _noMipmap;
         private _noMipmap;
         /** @hidden */
         /** @hidden */
         _invertY: boolean;
         _invertY: boolean;
@@ -18976,7 +18976,7 @@ declare module "babylonjs/Animations/animatable" {
         /**
         /**
          * Gets the root Animatable used to synchronize and normalize animations
          * Gets the root Animatable used to synchronize and normalize animations
          */
          */
-        readonly syncRoot: Animatable;
+        readonly syncRoot: Nullable<Animatable>;
         /**
         /**
          * Gets the current frame of the first RuntimeAnimation
          * Gets the current frame of the first RuntimeAnimation
          * Used to synchronize Animatables
          * Used to synchronize Animatables
@@ -22246,15 +22246,15 @@ declare module "babylonjs/Materials/material" {
         /**
         /**
          * Callback triggered when the material is compiled
          * Callback triggered when the material is compiled
          */
          */
-        onCompiled: (effect: Effect) => void;
+        onCompiled: Nullable<(effect: Effect) => void>;
         /**
         /**
          * Callback triggered when an error occurs
          * Callback triggered when an error occurs
          */
          */
-        onError: (effect: Effect, errors: string) => void;
+        onError: Nullable<(effect: Effect, errors: string) => void>;
         /**
         /**
          * Callback triggered to get the render target textures
          * Callback triggered to get the render target textures
          */
          */
-        getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
+        getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>;
         /**
         /**
          * Gets a boolean indicating that current material needs to register RTT
          * Gets a boolean indicating that current material needs to register RTT
          */
          */
@@ -22270,7 +22270,7 @@ declare module "babylonjs/Materials/material" {
         /**
         /**
          * Stores the animations for the material
          * Stores the animations for the material
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
         /**
         /**
         * An event triggered when the material is disposed
         * An event triggered when the material is disposed
         */
         */
@@ -22730,7 +22730,7 @@ declare module "babylonjs/Meshes/subMesh" {
         /** @hidden */
         /** @hidden */
         _trianglePlanes: Plane[];
         _trianglePlanes: Plane[];
         /** @hidden */
         /** @hidden */
-        _lastColliderTransformMatrix: Matrix;
+        _lastColliderTransformMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _renderId: number;
         _renderId: number;
         /** @hidden */
         /** @hidden */
@@ -24582,7 +24582,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
         /** @hidden */
         /** @hidden */
         _isActive: boolean;
         _isActive: boolean;
         /** @hidden */
         /** @hidden */
-        _renderingGroup: RenderingGroup;
+        _renderingGroup: Nullable<RenderingGroup>;
         /**
         /**
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          */
          */
@@ -24734,7 +24734,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
         /** @hidden */
         /** @hidden */
         readonly _positions: Nullable<Vector3[]>;
         readonly _positions: Nullable<Vector3[]>;
         /** @hidden */
         /** @hidden */
-        _waitingActions: any;
+        _waitingActions: Nullable<any>;
         /** @hidden */
         /** @hidden */
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         private _skeleton;
         private _skeleton;
@@ -25015,7 +25015,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
          * Gets Collider object used to compute collisions (not physics)
          * Gets Collider object used to compute collisions (not physics)
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          */
          */
-        readonly collider: Collider;
+        readonly collider: Nullable<Collider>;
         /**
         /**
          * Move the mesh using collision engine
          * Move the mesh using collision engine
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
@@ -25481,7 +25481,7 @@ declare module "babylonjs/node" {
         /**
         /**
          * Callback raised when the node is ready to be used
          * Callback raised when the node is ready to be used
          */
          */
-        onReady: (node: Node) => void;
+        onReady: Nullable<(node: Node) => void>;
         private _isEnabled;
         private _isEnabled;
         private _isParentEnabled;
         private _isParentEnabled;
         private _isReady;
         private _isReady;
@@ -28803,7 +28803,7 @@ declare module "babylonjs/Engines/engine" {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
         /**
         /**
@@ -31354,7 +31354,7 @@ declare module "babylonjs/Misc/tools" {
         /**
         /**
          * Array of animations
          * Array of animations
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
     }
     }
     /** Interface used by value gradients (color, factor, ...) */
     /** Interface used by value gradients (color, factor, ...) */
     export interface IValueGradient {
     export interface IValueGradient {
@@ -46579,11 +46579,11 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
         /**
         /**
          * AKA Diffuse Texture in standard nomenclature.
          * AKA Diffuse Texture in standard nomenclature.
          */
          */
-        protected _albedoTexture: BaseTexture;
+        protected _albedoTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture in other nomenclature.
          * AKA Occlusion Texture in other nomenclature.
          */
          */
-        protected _ambientTexture: BaseTexture;
+        protected _ambientTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture Intensity in other nomenclature.
          * AKA Occlusion Texture Intensity in other nomenclature.
          */
          */
@@ -46597,23 +46597,23 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
         /**
         /**
          * Stores the alpha values in a texture.
          * Stores the alpha values in a texture.
          */
          */
-        protected _opacityTexture: BaseTexture;
+        protected _opacityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the reflection values in a texture.
          * Stores the reflection values in a texture.
          */
          */
-        protected _reflectionTexture: BaseTexture;
+        protected _reflectionTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the emissive values in a texture.
          * Stores the emissive values in a texture.
          */
          */
-        protected _emissiveTexture: BaseTexture;
+        protected _emissiveTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Specular texture in other nomenclature.
          * AKA Specular texture in other nomenclature.
          */
          */
-        protected _reflectivityTexture: BaseTexture;
+        protected _reflectivityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          */
          */
-        protected _metallicTexture: BaseTexture;
+        protected _metallicTexture: Nullable<BaseTexture>;
         /**
         /**
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Can also be used to scale the metalness values of the metallic texture.
          * Can also be used to scale the metalness values of the metallic texture.
@@ -46628,15 +46628,15 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          */
          */
-        protected _microSurfaceTexture: BaseTexture;
+        protected _microSurfaceTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores surface normal data used to displace a mesh in a texture.
          * Stores surface normal data used to displace a mesh in a texture.
          */
          */
-        protected _bumpTexture: BaseTexture;
+        protected _bumpTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the pre-calculated light information of a mesh in a texture.
          * Stores the pre-calculated light information of a mesh in a texture.
          */
          */
-        protected _lightmapTexture: BaseTexture;
+        protected _lightmapTexture: Nullable<BaseTexture>;
         /**
         /**
          * The color of a material in ambient lighting.
          * The color of a material in ambient lighting.
          */
          */
@@ -46939,7 +46939,7 @@ declare module "babylonjs/Materials/PBR/pbrBaseMaterial" {
         /**
         /**
          * Gets the texture used for the alpha test.
          * Gets the texture used for the alpha test.
          */
          */
-        getAlphaTestTexture(): BaseTexture;
+        getAlphaTestTexture(): Nullable<BaseTexture>;
         /**
         /**
          * Specifies that the submesh is ready to be used.
          * Specifies that the submesh is ready to be used.
          * @param mesh - BJS mesh.
          * @param mesh - BJS mesh.
@@ -59976,7 +59976,7 @@ declare module BABYLON {
          */
          */
         static FromHexString(hex: string): Color3;
         static FromHexString(hex: string): Color3;
         /**
         /**
-         * Creates a new Vector3 from the starting index of the given array
+         * Creates a new Color3 from the starting index of the given array
          * @param array defines the source array
          * @param array defines the source array
          * @param offset defines an offset in the source array
          * @param offset defines an offset in the source array
          * @returns a new Color3 object
          * @returns a new Color3 object
@@ -65817,9 +65817,9 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _files: Nullable<string[]>;
         _files: Nullable<string[]>;
         /** @hidden */
         /** @hidden */
-        _workingCanvas: HTMLCanvasElement;
+        _workingCanvas: Nullable<HTMLCanvasElement>;
         /** @hidden */
         /** @hidden */
-        _workingContext: CanvasRenderingContext2D;
+        _workingContext: Nullable<CanvasRenderingContext2D>;
         /** @hidden */
         /** @hidden */
         _framebuffer: Nullable<WebGLFramebuffer>;
         _framebuffer: Nullable<WebGLFramebuffer>;
         /** @hidden */
         /** @hidden */
@@ -65861,11 +65861,11 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         _depthStencilTextureArray: Nullable<WebGLTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureHigh: BaseTexture;
+        _lodTextureHigh: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureMid: BaseTexture;
+        _lodTextureMid: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
-        _lodTextureLow: BaseTexture;
+        _lodTextureLow: Nullable<BaseTexture>;
         /** @hidden */
         /** @hidden */
         _isRGBD: boolean;
         _isRGBD: boolean;
         /** @hidden */
         /** @hidden */
@@ -67017,7 +67017,7 @@ declare module BABYLON {
          */
          */
         reIntegrateRotationIntoRotationQuaternion: boolean;
         reIntegrateRotationIntoRotationQuaternion: boolean;
         /** @hidden */
         /** @hidden */
-        _poseMatrix: Matrix;
+        _poseMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _localMatrix: Matrix;
         _localMatrix: Matrix;
         private _usePivotMatrix;
         private _usePivotMatrix;
@@ -77501,7 +77501,7 @@ declare module BABYLON {
          * List of inspectable custom properties (used by the Inspector)
          * List of inspectable custom properties (used by the Inspector)
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility
          */
          */
-        inspectableCustomProperties: IInspectable[];
+        inspectableCustomProperties: Nullable<IInspectable[]>;
         private _noMipmap;
         private _noMipmap;
         /** @hidden */
         /** @hidden */
         _invertY: boolean;
         _invertY: boolean;
@@ -77977,7 +77977,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the root Animatable used to synchronize and normalize animations
          * Gets the root Animatable used to synchronize and normalize animations
          */
          */
-        readonly syncRoot: Animatable;
+        readonly syncRoot: Nullable<Animatable>;
         /**
         /**
          * Gets the current frame of the first RuntimeAnimation
          * Gets the current frame of the first RuntimeAnimation
          * Used to synchronize Animatables
          * Used to synchronize Animatables
@@ -81161,15 +81161,15 @@ declare module BABYLON {
         /**
         /**
          * Callback triggered when the material is compiled
          * Callback triggered when the material is compiled
          */
          */
-        onCompiled: (effect: Effect) => void;
+        onCompiled: Nullable<(effect: Effect) => void>;
         /**
         /**
          * Callback triggered when an error occurs
          * Callback triggered when an error occurs
          */
          */
-        onError: (effect: Effect, errors: string) => void;
+        onError: Nullable<(effect: Effect, errors: string) => void>;
         /**
         /**
          * Callback triggered to get the render target textures
          * Callback triggered to get the render target textures
          */
          */
-        getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
+        getRenderTargetTextures: Nullable<() => SmartArray<RenderTargetTexture>>;
         /**
         /**
          * Gets a boolean indicating that current material needs to register RTT
          * Gets a boolean indicating that current material needs to register RTT
          */
          */
@@ -81185,7 +81185,7 @@ declare module BABYLON {
         /**
         /**
          * Stores the animations for the material
          * Stores the animations for the material
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
         /**
         /**
         * An event triggered when the material is disposed
         * An event triggered when the material is disposed
         */
         */
@@ -81632,7 +81632,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _trianglePlanes: Plane[];
         _trianglePlanes: Plane[];
         /** @hidden */
         /** @hidden */
-        _lastColliderTransformMatrix: Matrix;
+        _lastColliderTransformMatrix: Nullable<Matrix>;
         /** @hidden */
         /** @hidden */
         _renderId: number;
         _renderId: number;
         /** @hidden */
         /** @hidden */
@@ -83436,7 +83436,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         _isActive: boolean;
         _isActive: boolean;
         /** @hidden */
         /** @hidden */
-        _renderingGroup: RenderingGroup;
+        _renderingGroup: Nullable<RenderingGroup>;
         /**
         /**
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          * Gets or sets mesh visibility between 0 and 1 (default is 1)
          */
          */
@@ -83588,7 +83588,7 @@ declare module BABYLON {
         /** @hidden */
         /** @hidden */
         readonly _positions: Nullable<Vector3[]>;
         readonly _positions: Nullable<Vector3[]>;
         /** @hidden */
         /** @hidden */
-        _waitingActions: any;
+        _waitingActions: Nullable<any>;
         /** @hidden */
         /** @hidden */
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         _waitingFreezeWorldMatrix: Nullable<boolean>;
         private _skeleton;
         private _skeleton;
@@ -83869,7 +83869,7 @@ declare module BABYLON {
          * Gets Collider object used to compute collisions (not physics)
          * Gets Collider object used to compute collisions (not physics)
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          */
          */
-        readonly collider: Collider;
+        readonly collider: Nullable<Collider>;
         /**
         /**
          * Move the mesh using collision engine
          * Move the mesh using collision engine
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
          * @see http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
@@ -84313,7 +84313,7 @@ declare module BABYLON {
         /**
         /**
          * Callback raised when the node is ready to be used
          * Callback raised when the node is ready to be used
          */
          */
-        onReady: (node: Node) => void;
+        onReady: Nullable<(node: Node) => void>;
         private _isEnabled;
         private _isEnabled;
         private _isParentEnabled;
         private _isParentEnabled;
         private _isReady;
         private _isReady;
@@ -87573,7 +87573,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
         /**
         /**
@@ -90079,7 +90079,7 @@ declare module BABYLON {
         /**
         /**
          * Array of animations
          * Array of animations
          */
          */
-        animations: Array<Animation>;
+        animations: Nullable<Array<Animation>>;
     }
     }
     /** Interface used by value gradients (color, factor, ...) */
     /** Interface used by value gradients (color, factor, ...) */
     export interface IValueGradient {
     export interface IValueGradient {
@@ -104259,11 +104259,11 @@ declare module BABYLON {
         /**
         /**
          * AKA Diffuse Texture in standard nomenclature.
          * AKA Diffuse Texture in standard nomenclature.
          */
          */
-        protected _albedoTexture: BaseTexture;
+        protected _albedoTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture in other nomenclature.
          * AKA Occlusion Texture in other nomenclature.
          */
          */
-        protected _ambientTexture: BaseTexture;
+        protected _ambientTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Occlusion Texture Intensity in other nomenclature.
          * AKA Occlusion Texture Intensity in other nomenclature.
          */
          */
@@ -104277,23 +104277,23 @@ declare module BABYLON {
         /**
         /**
          * Stores the alpha values in a texture.
          * Stores the alpha values in a texture.
          */
          */
-        protected _opacityTexture: BaseTexture;
+        protected _opacityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the reflection values in a texture.
          * Stores the reflection values in a texture.
          */
          */
-        protected _reflectionTexture: BaseTexture;
+        protected _reflectionTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the emissive values in a texture.
          * Stores the emissive values in a texture.
          */
          */
-        protected _emissiveTexture: BaseTexture;
+        protected _emissiveTexture: Nullable<BaseTexture>;
         /**
         /**
          * AKA Specular texture in other nomenclature.
          * AKA Specular texture in other nomenclature.
          */
          */
-        protected _reflectivityTexture: BaseTexture;
+        protected _reflectivityTexture: Nullable<BaseTexture>;
         /**
         /**
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          * Used to switch from specular/glossiness to metallic/roughness workflow.
          */
          */
-        protected _metallicTexture: BaseTexture;
+        protected _metallicTexture: Nullable<BaseTexture>;
         /**
         /**
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Specifies the metallic scalar of the metallic/roughness workflow.
          * Can also be used to scale the metalness values of the metallic texture.
          * Can also be used to scale the metalness values of the metallic texture.
@@ -104308,15 +104308,15 @@ declare module BABYLON {
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Used to enable roughness/glossiness fetch from a separate channel depending on the current mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          * Gray Scale represents roughness in metallic mode and glossiness in specular mode.
          */
          */
-        protected _microSurfaceTexture: BaseTexture;
+        protected _microSurfaceTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores surface normal data used to displace a mesh in a texture.
          * Stores surface normal data used to displace a mesh in a texture.
          */
          */
-        protected _bumpTexture: BaseTexture;
+        protected _bumpTexture: Nullable<BaseTexture>;
         /**
         /**
          * Stores the pre-calculated light information of a mesh in a texture.
          * Stores the pre-calculated light information of a mesh in a texture.
          */
          */
-        protected _lightmapTexture: BaseTexture;
+        protected _lightmapTexture: Nullable<BaseTexture>;
         /**
         /**
          * The color of a material in ambient lighting.
          * The color of a material in ambient lighting.
          */
          */
@@ -104619,7 +104619,7 @@ declare module BABYLON {
         /**
         /**
          * Gets the texture used for the alpha test.
          * Gets the texture used for the alpha test.
          */
          */
-        getAlphaTestTexture(): BaseTexture;
+        getAlphaTestTexture(): Nullable<BaseTexture>;
         /**
         /**
          * Specifies that the submesh is ready to be used.
          * Specifies that the submesh is ready to be used.
          * @param mesh - BJS mesh.
          * @param mesh - BJS mesh.

文件差异内容过多而无法显示
+ 310 - 310
dist/preview release/viewer/babylon.viewer.js


文件差异内容过多而无法显示
+ 3 - 3
dist/preview release/viewer/babylon.viewer.max.js


+ 3 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/animationPropertyGridComponent.tsx

@@ -52,7 +52,9 @@ export class AnimationGridComponent extends React.Component<IAnimationGridCompon
             this._animations = new Array<Animation>();
             this._animations = new Array<Animation>();
 
 
             animatables.forEach((animatable: IAnimatable) => {
             animatables.forEach((animatable: IAnimatable) => {
-                this._animations!.push(...animatable.animations);
+                if (animatable.animations) {
+                    this._animations!.push(...animatable.animations);
+                }
             });
             });
 
 
             // Extract from and to
             // Extract from and to

+ 2 - 2
src/Culling/boundingBox.ts

@@ -54,7 +54,7 @@ export class BoundingBox implements ICullable {
      */
      */
     public readonly maximum: Vector3 = Vector3.Zero();
     public readonly maximum: Vector3 = Vector3.Zero();
 
 
-    private _worldMatrix: DeepImmutable<Matrix>; 
+    private _worldMatrix: DeepImmutable<Matrix>;
     private static readonly TmpVector3 = ArrayTools.BuildArray(3, Vector3.Zero);
     private static readonly TmpVector3 = ArrayTools.BuildArray(3, Vector3.Zero);
 
 
     /**
     /**
@@ -98,7 +98,7 @@ export class BoundingBox implements ICullable {
         // OBB
         // OBB
         max.addToRef(min, this.center).scaleInPlace(0.5);
         max.addToRef(min, this.center).scaleInPlace(0.5);
         max.subtractToRef(min, this.extendSize).scaleInPlace(0.5);
         max.subtractToRef(min, this.extendSize).scaleInPlace(0.5);
-        
+
         this._worldMatrix = worldMatrix || Matrix.IdentityReadOnly;
         this._worldMatrix = worldMatrix || Matrix.IdentityReadOnly;
 
 
         this._update(this._worldMatrix);
         this._update(this._worldMatrix);

+ 1 - 1
src/Engines/engine.ts

@@ -3365,7 +3365,7 @@ export class Engine {
      * @returns the new Effect
      * @returns the new Effect
      */
      */
     public createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks,
     public createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | Engine, samplers?: string[], defines?: string, fallbacks?: EffectFallbacks,
-        onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void, indexParameters?: any): Effect {
+        onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect {
         var vertex = baseName.vertexElement || baseName.vertex || baseName;
         var vertex = baseName.vertexElement || baseName.vertex || baseName;
         var fragment = baseName.fragmentElement || baseName.fragment || baseName;
         var fragment = baseName.fragmentElement || baseName.fragment || baseName;