David Catuhe преди 7 години
родител
ревизия
21e954f37a

Файловите разлики са ограничени, защото са твърде много
+ 21951 - 21951
Playground/babylon.d.txt


Файловите разлики са ограничени, защото са твърде много
+ 21882 - 21882
dist/preview release/babylon.d.ts


Файловите разлики са ограничени, защото са твърде много
+ 3 - 3
dist/preview release/babylon.js


+ 10 - 6
dist/preview release/babylon.max.js

@@ -51532,14 +51532,16 @@ var BABYLON;
         /**
          * This function will normalize every animation in the group to make sure they all go from beginFrame to endFrame
          * It can add constant keys at begin or end
-         * @param beginFrame defines the new begin frame for all animations. It can't be bigger than the smallest begin frame of all animations
-         * @param endFrame defines the new end frame for all animations. It can't be smaller than the largest end frame of all animations
+         * @param beginFrame defines the new begin frame for all animations or the smallest begin frame of all animations if null (defaults to 0)
+         * @param endFrame defines the new end frame for all animations or the largest end frame of all animations if null (defaults to null)
          */
         AnimationGroup.prototype.normalize = function (beginFrame, endFrame) {
-            if (beginFrame === void 0) { beginFrame = -Number.MAX_VALUE; }
-            if (endFrame === void 0) { endFrame = Number.MAX_VALUE; }
-            beginFrame = Math.max(beginFrame, this._from);
-            endFrame = Math.min(endFrame, this._to);
+            if (beginFrame === void 0) { beginFrame = 0; }
+            if (endFrame === void 0) { endFrame = null; }
+            if (beginFrame == null)
+                beginFrame = this._from;
+            if (endFrame == null)
+                endFrame = this._to;
             for (var index = 0; index < this._targetedAnimations.length; index++) {
                 var targetedAnimation = this._targetedAnimations[index];
                 var keys = targetedAnimation.animation.getKeys();
@@ -51566,6 +51568,8 @@ var BABYLON;
                     keys.push(newKey);
                 }
             }
+            this._from = beginFrame;
+            this._to = endFrame;
             return this;
         };
         /**

+ 10 - 6
dist/preview release/babylon.no-module.max.js

@@ -51499,14 +51499,16 @@ var BABYLON;
         /**
          * This function will normalize every animation in the group to make sure they all go from beginFrame to endFrame
          * It can add constant keys at begin or end
-         * @param beginFrame defines the new begin frame for all animations. It can't be bigger than the smallest begin frame of all animations
-         * @param endFrame defines the new end frame for all animations. It can't be smaller than the largest end frame of all animations
+         * @param beginFrame defines the new begin frame for all animations or the smallest begin frame of all animations if null (defaults to 0)
+         * @param endFrame defines the new end frame for all animations or the largest end frame of all animations if null (defaults to null)
          */
         AnimationGroup.prototype.normalize = function (beginFrame, endFrame) {
-            if (beginFrame === void 0) { beginFrame = -Number.MAX_VALUE; }
-            if (endFrame === void 0) { endFrame = Number.MAX_VALUE; }
-            beginFrame = Math.max(beginFrame, this._from);
-            endFrame = Math.min(endFrame, this._to);
+            if (beginFrame === void 0) { beginFrame = 0; }
+            if (endFrame === void 0) { endFrame = null; }
+            if (beginFrame == null)
+                beginFrame = this._from;
+            if (endFrame == null)
+                endFrame = this._to;
             for (var index = 0; index < this._targetedAnimations.length; index++) {
                 var targetedAnimation = this._targetedAnimations[index];
                 var keys = targetedAnimation.animation.getKeys();
@@ -51533,6 +51535,8 @@ var BABYLON;
                     keys.push(newKey);
                 }
             }
+            this._from = beginFrame;
+            this._to = endFrame;
             return this;
         };
         /**

Файловите разлики са ограничени, защото са твърде много
+ 3 - 3
dist/preview release/babylon.worker.js


+ 10 - 6
dist/preview release/es6.js

@@ -51499,14 +51499,16 @@ var BABYLON;
         /**
          * This function will normalize every animation in the group to make sure they all go from beginFrame to endFrame
          * It can add constant keys at begin or end
-         * @param beginFrame defines the new begin frame for all animations. It can't be bigger than the smallest begin frame of all animations
-         * @param endFrame defines the new end frame for all animations. It can't be smaller than the largest end frame of all animations
+         * @param beginFrame defines the new begin frame for all animations or the smallest begin frame of all animations if null (defaults to 0)
+         * @param endFrame defines the new end frame for all animations or the largest end frame of all animations if null (defaults to null)
          */
         AnimationGroup.prototype.normalize = function (beginFrame, endFrame) {
-            if (beginFrame === void 0) { beginFrame = -Number.MAX_VALUE; }
-            if (endFrame === void 0) { endFrame = Number.MAX_VALUE; }
-            beginFrame = Math.max(beginFrame, this._from);
-            endFrame = Math.min(endFrame, this._to);
+            if (beginFrame === void 0) { beginFrame = 0; }
+            if (endFrame === void 0) { endFrame = null; }
+            if (beginFrame == null)
+                beginFrame = this._from;
+            if (endFrame == null)
+                endFrame = this._to;
             for (var index = 0; index < this._targetedAnimations.length; index++) {
                 var targetedAnimation = this._targetedAnimations[index];
                 var keys = targetedAnimation.animation.getKeys();
@@ -51533,6 +51535,8 @@ var BABYLON;
                     keys.push(newKey);
                 }
             }
+            this._from = beginFrame;
+            this._to = endFrame;
             return this;
         };
         /**

+ 143 - 39
dist/preview release/viewer/babylon.viewer.d.ts

@@ -1,11 +1,12 @@
 /// <reference path="./babylon.d.ts"/>
 /// <reference path="./babylon.glTF2Interface.d.ts"/>
 /// <reference path="./babylonjs.loaders.d.ts"/>
+declare module "babylonjs-loaders"{ export=BABYLON;}
 
 // Generated by dts-bundle v0.7.3
 // Dependencies for this module:
-//   ../../Tools/Gulp/babylonjs
-//   ../../Tools/Gulp/babylonjs-loaders
+//   ../../tools/Gulp/babylonjs
+//   ../../tools/Gulp/babylonjs-loaders
 
 declare module BabylonViewer {
     
@@ -185,7 +186,7 @@ declare module BabylonViewer {
                 * The scene will automatically be cleared of the old models, if exist.
                 * @param model the configuration object (or URL) to load.
                 */
-            loadModel(model?: any): Promise<ViewerModel>;
+            loadModel(model?: string | IModelConfiguration): Promise<ViewerModel>;
             /**
                 * Show the overlay and the defined sub-screen.
                 * Mainly used for help and errors
@@ -526,8 +527,11 @@ declare module BabylonViewer {
             INIT = 0,
             LOADING = 1,
             LOADED = 2,
-            CANCELED = 3,
-            ERROR = 4,
+            ENTRY = 3,
+            ENTRYDONE = 4,
+            COMPLETE = 5,
+            CANCELED = 6,
+            ERROR = 7,
     }
     /**
         * The viewer model is a container for all assets representing a sngle loaded model.
@@ -572,6 +576,10 @@ declare module BabylonViewer {
                     exception: any;
             }>;
             /**
+                * Will be executed after the model finished loading and complete, including entry animation and lod
+                */
+            onCompleteObservable: BABYLON.Observable<ViewerModel>;
+            /**
                 * Observers registered here will be executed every time the model is being configured.
                 * This can be used to extend the model's configuration without extending the class itself
                 */
@@ -590,6 +598,7 @@ declare module BabylonViewer {
                 * Set whether this model is enabled or not.
                 */
             enabled: boolean;
+            loaderDone: boolean;
             /**
                 * Get the viewer showing this model
                 */
@@ -606,7 +615,6 @@ declare module BabylonViewer {
                 * get the list of meshes (excluding the root mesh)
                 */
             readonly meshes: BABYLON.AbstractMesh[];
-            get: any;
             /**
                 * (Re-)set the model's entire configuration
                 * @param newConfiguration the new configuration to replace the new one
@@ -644,6 +652,19 @@ declare module BabylonViewer {
                 */
             playAnimation(name: string): IModelAnimation;
             /**
+             * Begin @animations with the specified @easingFunction
+             * @param animations The BABYLON Animations to begin
+             * @param duration of transition, in seconds
+             * @param easingFunction An easing function to apply
+             * @param easingMode A easing mode to apply to the easingFunction
+             * @param onAnimationEnd Call back trigger at the end of the animation.
+             */
+            transitionTo(animations: BABYLON.Animation[], duration: number, easingFunction: any, easingMode: number | undefined, onAnimationEnd: () => void): void;
+            /**
+                * Stops and removes all animations that have been applied to the model
+                */
+            stopAllAnimations(): void;
+            /**
                 * Will remove this model from the viewer (but NOT dispose it).
                 */
             remove(): void;
@@ -657,16 +678,16 @@ declare module BabylonViewer {
 declare module BabylonViewer {
     
     /**
-        * Animation play mode enum - is the animation looping or playing once
+        * BABYLON.Animation play mode enum - is the animation looping or playing once
         */
-    export enum AnimationPlayMode {
+    export const enum AnimationPlayMode {
             ONCE = 0,
             LOOP = 1,
     }
     /**
         * An enum representing the current state of an animation object
         */
-    export enum AnimationState {
+    export const enum AnimationState {
             INIT = 0,
             PLAYING = 1,
             PAUSED = 2,
@@ -674,6 +695,46 @@ declare module BabylonViewer {
             ENDED = 4,
     }
     /**
+        * The different type of easing functions available
+        */
+    export const enum EasingFunction {
+            Linear = 0,
+            CircleEase = 1,
+            BackEase = 2,
+            BounceEase = 3,
+            CubicEase = 4,
+            ElasticEase = 5,
+            ExponentialEase = 6,
+            PowerEase = 7,
+            QuadraticEase = 8,
+            QuarticEase = 9,
+            QuinticEase = 10,
+            SineEase = 11,
+    }
+    /**
+        * Defines a simple animation to be applied to a model (scale).
+        */
+    export interface ModelAnimationConfiguration {
+            /**
+                * Time of animation, in seconds
+                */
+            time: number;
+            /**
+                * Scale to apply
+                */
+            scaling?: BABYLON.Vector3;
+            /**
+                * Easing function to apply
+                * See SPECTRE.EasingFunction
+                */
+            easingFunction?: number;
+            /**
+                * An Easing mode to apply to the easing function
+                * See BABYLON.EasingFunction
+                */
+            easingMode?: number;
+    }
+    /**
         * This interface can be implemented to define new types of ModelAnimation objects.
         */
     export interface IModelAnimation {
@@ -699,7 +760,7 @@ declare module BabylonViewer {
                 */
             readonly currentFrame: number;
             /**
-                * Animation's FPS value
+                * BABYLON.Animation's FPS value
                 */
             readonly fps: number;
             /**
@@ -855,6 +916,7 @@ declare module BabylonViewer {
 declare module BabylonViewer {
     
     
+    export function getConfigurationKey(key: string, configObject: any): any;
     export interface ViewerConfiguration {
             version?: string;
             extends?: string;
@@ -876,6 +938,7 @@ declare module BabylonViewer {
                     [name: string]: boolean | ILightConfiguration;
             };
             engine?: {
+                    renderInBackground?: boolean;
                     antialiasing?: boolean;
                     disableResize?: boolean;
                     engineOptions?: BABYLON.EngineOptions;
@@ -917,7 +980,12 @@ declare module BabylonViewer {
                             };
                     };
                     hideLoadingDelay?: number;
-                    environmentAssetsRootURL?: string;
+                    assetsRootURL?: string;
+                    environmentMainColor?: {
+                            r: number;
+                            g: number;
+                            b: number;
+                    };
                     environmentMap?: {
                             /**
                                 * Environment map texture path in relative to the asset folder.
@@ -932,26 +1000,60 @@ declare module BabylonViewer {
                                 */
                             tintLevel: number;
                     };
-                    renderingPipelines?: {
-                            default?: boolean | {
-                                    [propName: string]: any;
-                            };
-                            standard?: boolean | {
-                                    [propName: string]: any;
-                            };
-                            ssao?: boolean | {
-                                    [propName: string]: any;
-                            };
-                            ssao2?: boolean | {
-                                    [propName: string]: any;
-                            };
-                    };
+                    defaultRenderingPipelines?: boolean | IDefaultRenderingPipelineConfiguration;
+            };
+    }
+    /**
+        * Defines an animation to be applied to a model (translation, scale or rotation).
+        */
+    export interface IModelAnimationConfiguration {
+            /**
+                * Time of animation, in seconds
+                */
+            time?: number;
+            /**
+                * Scale to apply
+                */
+            scaling?: {
+                    x: number;
+                    y: number;
+                    z: number;
             };
+            /**
+                * Easing function to apply
+                * See SPECTRE.EasingFunction
+                */
+            easingFunction?: number;
+            /**
+                * An Easing mode to apply to the easing function
+                * See BABYLON.EasingFunction
+                */
+            easingMode?: number;
+    }
+    export interface IDefaultRenderingPipelineConfiguration {
+            sharpenEnabled?: boolean;
+            bloomEnabled?: boolean;
+            bloomThreshold?: number;
+            depthOfFieldEnabled?: boolean;
+            depthOfFieldBlurLevel?: BABYLON.DepthOfFieldEffectBlurLevel;
+            fxaaEnabled?: boolean;
+            imageProcessingEnabled?: boolean;
+            defaultPipelineTextureType?: number;
+            bloomScale?: number;
+            chromaticAberrationEnabled?: boolean;
+            grainEnabled?: boolean;
+            bloomKernel?: number;
+            hardwareScaleLevel?: number;
+            bloomWeight?: number;
+            bllomThreshold?: number;
+            hdr?: boolean;
+            samples?: number;
     }
     export interface IModelConfiguration {
             id?: string;
             url?: string;
             root?: string;
+            file?: string;
             loader?: string;
             position?: {
                     x: number;
@@ -984,6 +1086,8 @@ declare module BabylonViewer {
                     autoStart?: boolean | string;
                     playOnce?: boolean;
             };
+            entryAnimation?: IModelAnimationConfiguration;
+            exitAnimation?: IModelAnimationConfiguration;
             material?: {
                     directEnabled?: boolean;
                     directIntensity?: number;
@@ -1191,6 +1295,7 @@ declare module BabylonViewer {
                     renderTarget?: ISceneOptimizerParameters;
                     mergeMeshes?: ISceneOptimizerParameters;
             };
+            custom?: string;
     }
     export interface IObserversConfiguration {
             onEngineInit?: string;
@@ -1632,6 +1737,7 @@ declare module BabylonViewer {
                 * Please be careful when using labs in production.
                 */
             labs: ViewerLabs;
+            readonly defaultRenderingPipeline: BABYLON.Nullable<BABYLON.DefaultRenderingPipeline>;
             constructor(_viewer: AbstractViewer);
             /**
                 * Returns a boolean representing HDR support
@@ -1641,6 +1747,8 @@ declare module BabylonViewer {
                 * Return the main color defined in the configuration.
                 */
             readonly mainColor: BABYLON.Color3;
+            readonly reflectionColor: BABYLON.Color3;
+            animationBlendingEnabled: boolean;
             /**
                 * Should shadows be rendered every frame, or only once and stop.
                 * This can be used to optimize a scene.
@@ -1649,19 +1757,18 @@ declare module BabylonViewer {
                 * @param process if true shadows will be updated once every frame. if false they will stop being updated.
                 */
             processShadows: boolean;
+            groundEnabled: boolean;
+            /**
+                * sets wether the reflection is disabled.
+                */
+            groundMirrorEnabled: boolean;
+            defaultRenderingPipelineEnabled: boolean;
             /**
                 * Sets the engine flags to unlock all babylon features.
                 * Can also be configured using the scene.flags configuration object
                 */
             unlockBabylonFeatures(): void;
             /**
-                * initialize the environment for a specific model.
-                * Per default it will use the viewer's configuration.
-                * @param model the model to use to configure the environment.
-                * @returns a Promise that will resolve when the configuration is done.
-                */
-            protected _initEnvironment(model?: ViewerModel): Promise<BABYLON.Scene>;
-            /**
                 * initialize the scene. Calling this function again will dispose the old scene, if exists.
                 */
             initScene(sceneConfiguration?: ISceneConfiguration, optimizerConfiguration?: boolean | ISceneOptimizerConfiguration): Promise<BABYLON.Scene>;
@@ -1672,6 +1779,8 @@ declare module BabylonViewer {
                 * @param globalConfiguration The global configuration object, after the new configuration was merged into it
                 */
             updateConfiguration(newConfiguration: Partial<ViewerConfiguration>, globalConfiguration: ViewerConfiguration, model?: ViewerModel): void;
+            bloomEnabled: boolean;
+            fxaaEnabled: boolean;
             /**
                 * internally configure the scene using the provided configuration.
                 * The scene will not be recreated, but just updated.
@@ -1685,11 +1794,6 @@ declare module BabylonViewer {
                 */
             protected _configureOptimizer(optimizerConfig: ISceneOptimizerConfiguration | boolean): void;
             /**
-                * configure all models using the configuration.
-                * @param modelConfiguration the configuration to use to reconfigure the models
-                */
-            protected _configureModel(modelConfiguration: Partial<IModelConfiguration>): void;
-            /**
                 * (Re) configure the camera. The camera will only be created once and from this point will only be reconfigured.
                 * @param cameraConfig the new camera configuration
                 * @param model optionally use the model to configure the camera.
@@ -1790,7 +1894,7 @@ declare module BabylonViewer {
     
     export class ViewerLabs {
             constructor(_sceneManager: SceneManager);
-            environmentAssetsRootURL: string;
+            assetsRootURL: string;
             environment: PBREnvironment;
             /**
                         * Loads an environment map from a given URL
@@ -1826,7 +1930,7 @@ declare module BabylonViewer {
                 * @param url Asset url
                 * @returns The Asset url using the `environmentAssetsRootURL` if the url is not an absolute path.
                 */
-            getEnvironmentAssetUrl(url: string): string;
+            getAssetUrl(url: string): string;
     }
 }
 

Файловите разлики са ограничени, защото са твърде много
+ 13 - 12
dist/preview release/viewer/babylon.viewer.js


Файловите разлики са ограничени, защото са твърде много
+ 1870 - 952
dist/preview release/viewer/babylon.viewer.max.js


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

@@ -1,11 +1,12 @@
 /// <reference path="./babylon.d.ts"/>
 /// <reference path="./babylon.glTF2Interface.d.ts"/>
 /// <reference path="./babylonjs.loaders.d.ts"/>
+declare module "babylonjs-loaders"{ export=BABYLON;}
 
 // Generated by dts-bundle v0.7.3
 // Dependencies for this module:
-//   ../../Tools/Gulp/babylonjs
-//   ../../Tools/Gulp/babylonjs-loaders
+//   ../../tools/Gulp/babylonjs
+//   ../../tools/Gulp/babylonjs-loaders
 
 declare module 'babylonjs-viewer' {
     import { mapperManager } from 'babylonjs-viewer/configuration/mappers';
@@ -145,7 +146,7 @@ declare module 'babylonjs-viewer/viewer/viewerManager' {
 }
 
 declare module 'babylonjs-viewer/viewer/defaultViewer' {
-    import { ViewerConfiguration } from 'babylonjs-viewer/configuration/configuration';
+    import { ViewerConfiguration, IModelConfiguration } from 'babylonjs-viewer/configuration/configuration';
     import { Template } from 'babylonjs-viewer/templateManager';
     import { AbstractViewer } from 'babylonjs-viewer/viewer/viewer';
     import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
@@ -185,7 +186,7 @@ declare module 'babylonjs-viewer/viewer/defaultViewer' {
                 * The scene will automatically be cleared of the old models, if exist.
                 * @param model the configuration object (or URL) to load.
                 */
-            loadModel(model?: any): Promise<ViewerModel>;
+            loadModel(model?: string | IModelConfiguration): Promise<ViewerModel>;
             /**
                 * Show the overlay and the defined sub-screen.
                 * Mainly used for help and errors
@@ -517,7 +518,7 @@ declare module 'babylonjs-viewer/loader/modelLoader' {
 }
 
 declare module 'babylonjs-viewer/model/viewerModel' {
-    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync, AnimationGroup, AbstractMesh, Observable, SceneLoaderProgressEvent, ParticleSystem, Skeleton, IDisposable, Nullable } from "babylonjs";
+    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync, AnimationGroup, AbstractMesh, Observable, SceneLoaderProgressEvent, ParticleSystem, Skeleton, IDisposable, Nullable, Animation } from "babylonjs";
     import { GLTF2 } from "babylonjs-loaders";
     import { IModelConfiguration } from "babylonjs-viewer/configuration/configuration";
     import { IModelAnimation } from "babylonjs-viewer/model/modelAnimation";
@@ -526,8 +527,11 @@ declare module 'babylonjs-viewer/model/viewerModel' {
             INIT = 0,
             LOADING = 1,
             LOADED = 2,
-            CANCELED = 3,
-            ERROR = 4,
+            ENTRY = 3,
+            ENTRYDONE = 4,
+            COMPLETE = 5,
+            CANCELED = 6,
+            ERROR = 7,
     }
     /**
         * The viewer model is a container for all assets representing a sngle loaded model.
@@ -572,6 +576,10 @@ declare module 'babylonjs-viewer/model/viewerModel' {
                     exception: any;
             }>;
             /**
+                * Will be executed after the model finished loading and complete, including entry animation and lod
+                */
+            onCompleteObservable: Observable<ViewerModel>;
+            /**
                 * Observers registered here will be executed every time the model is being configured.
                 * This can be used to extend the model's configuration without extending the class itself
                 */
@@ -590,6 +598,7 @@ declare module 'babylonjs-viewer/model/viewerModel' {
                 * Set whether this model is enabled or not.
                 */
             enabled: boolean;
+            loaderDone: boolean;
             /**
                 * Get the viewer showing this model
                 */
@@ -606,7 +615,6 @@ declare module 'babylonjs-viewer/model/viewerModel' {
                 * get the list of meshes (excluding the root mesh)
                 */
             readonly meshes: AbstractMesh[];
-            get: any;
             /**
                 * (Re-)set the model's entire configuration
                 * @param newConfiguration the new configuration to replace the new one
@@ -644,6 +652,19 @@ declare module 'babylonjs-viewer/model/viewerModel' {
                 */
             playAnimation(name: string): IModelAnimation;
             /**
+             * Begin @animations with the specified @easingFunction
+             * @param animations The BABYLON Animations to begin
+             * @param duration of transition, in seconds
+             * @param easingFunction An easing function to apply
+             * @param easingMode A easing mode to apply to the easingFunction
+             * @param onAnimationEnd Call back trigger at the end of the animation.
+             */
+            transitionTo(animations: Animation[], duration: number, easingFunction: any, easingMode: number | undefined, onAnimationEnd: () => void): void;
+            /**
+                * Stops and removes all animations that have been applied to the model
+                */
+            stopAllAnimations(): void;
+            /**
                 * Will remove this model from the viewer (but NOT dispose it).
                 */
             remove(): void;
@@ -655,18 +676,18 @@ declare module 'babylonjs-viewer/model/viewerModel' {
 }
 
 declare module 'babylonjs-viewer/model/modelAnimation' {
-    import { AnimationGroup } from "babylonjs";
+    import { AnimationGroup, Vector3 } from "babylonjs";
     /**
         * Animation play mode enum - is the animation looping or playing once
         */
-    export enum AnimationPlayMode {
+    export const enum AnimationPlayMode {
             ONCE = 0,
             LOOP = 1,
     }
     /**
         * An enum representing the current state of an animation object
         */
-    export enum AnimationState {
+    export const enum AnimationState {
             INIT = 0,
             PLAYING = 1,
             PAUSED = 2,
@@ -674,6 +695,46 @@ declare module 'babylonjs-viewer/model/modelAnimation' {
             ENDED = 4,
     }
     /**
+        * The different type of easing functions available
+        */
+    export const enum EasingFunction {
+            Linear = 0,
+            CircleEase = 1,
+            BackEase = 2,
+            BounceEase = 3,
+            CubicEase = 4,
+            ElasticEase = 5,
+            ExponentialEase = 6,
+            PowerEase = 7,
+            QuadraticEase = 8,
+            QuarticEase = 9,
+            QuinticEase = 10,
+            SineEase = 11,
+    }
+    /**
+        * Defines a simple animation to be applied to a model (scale).
+        */
+    export interface ModelAnimationConfiguration {
+            /**
+                * Time of animation, in seconds
+                */
+            time: number;
+            /**
+                * Scale to apply
+                */
+            scaling?: Vector3;
+            /**
+                * Easing function to apply
+                * See SPECTRE.EasingFunction
+                */
+            easingFunction?: number;
+            /**
+                * An Easing mode to apply to the easing function
+                * See BABYLON.EasingFunction
+                */
+            easingMode?: number;
+    }
+    /**
         * This interface can be implemented to define new types of ModelAnimation objects.
         */
     export interface IModelAnimation {
@@ -854,7 +915,8 @@ declare module 'babylonjs-viewer/initializer' {
 
 declare module 'babylonjs-viewer/configuration/configuration' {
     import { ITemplateConfiguration } from 'babylonjs-viewer/templateManager';
-    import { EngineOptions, IGlowLayerOptions } from 'babylonjs';
+    import { EngineOptions, IGlowLayerOptions, DepthOfFieldEffectBlurLevel } from 'babylonjs';
+    export function getConfigurationKey(key: string, configObject: any): any;
     export interface ViewerConfiguration {
             version?: string;
             extends?: string;
@@ -876,6 +938,7 @@ declare module 'babylonjs-viewer/configuration/configuration' {
                     [name: string]: boolean | ILightConfiguration;
             };
             engine?: {
+                    renderInBackground?: boolean;
                     antialiasing?: boolean;
                     disableResize?: boolean;
                     engineOptions?: EngineOptions;
@@ -917,7 +980,12 @@ declare module 'babylonjs-viewer/configuration/configuration' {
                             };
                     };
                     hideLoadingDelay?: number;
-                    environmentAssetsRootURL?: string;
+                    assetsRootURL?: string;
+                    environmentMainColor?: {
+                            r: number;
+                            g: number;
+                            b: number;
+                    };
                     environmentMap?: {
                             /**
                                 * Environment map texture path in relative to the asset folder.
@@ -932,26 +1000,60 @@ declare module 'babylonjs-viewer/configuration/configuration' {
                                 */
                             tintLevel: number;
                     };
-                    renderingPipelines?: {
-                            default?: boolean | {
-                                    [propName: string]: any;
-                            };
-                            standard?: boolean | {
-                                    [propName: string]: any;
-                            };
-                            ssao?: boolean | {
-                                    [propName: string]: any;
-                            };
-                            ssao2?: boolean | {
-                                    [propName: string]: any;
-                            };
-                    };
+                    defaultRenderingPipelines?: boolean | IDefaultRenderingPipelineConfiguration;
             };
     }
+    /**
+        * Defines an animation to be applied to a model (translation, scale or rotation).
+        */
+    export interface IModelAnimationConfiguration {
+            /**
+                * Time of animation, in seconds
+                */
+            time?: number;
+            /**
+                * Scale to apply
+                */
+            scaling?: {
+                    x: number;
+                    y: number;
+                    z: number;
+            };
+            /**
+                * Easing function to apply
+                * See SPECTRE.EasingFunction
+                */
+            easingFunction?: number;
+            /**
+                * An Easing mode to apply to the easing function
+                * See BABYLON.EasingFunction
+                */
+            easingMode?: number;
+    }
+    export interface IDefaultRenderingPipelineConfiguration {
+            sharpenEnabled?: boolean;
+            bloomEnabled?: boolean;
+            bloomThreshold?: number;
+            depthOfFieldEnabled?: boolean;
+            depthOfFieldBlurLevel?: DepthOfFieldEffectBlurLevel;
+            fxaaEnabled?: boolean;
+            imageProcessingEnabled?: boolean;
+            defaultPipelineTextureType?: number;
+            bloomScale?: number;
+            chromaticAberrationEnabled?: boolean;
+            grainEnabled?: boolean;
+            bloomKernel?: number;
+            hardwareScaleLevel?: number;
+            bloomWeight?: number;
+            bllomThreshold?: number;
+            hdr?: boolean;
+            samples?: number;
+    }
     export interface IModelConfiguration {
             id?: string;
             url?: string;
             root?: string;
+            file?: string;
             loader?: string;
             position?: {
                     x: number;
@@ -984,6 +1086,8 @@ declare module 'babylonjs-viewer/configuration/configuration' {
                     autoStart?: boolean | string;
                     playOnce?: boolean;
             };
+            entryAnimation?: IModelAnimationConfiguration;
+            exitAnimation?: IModelAnimationConfiguration;
             material?: {
                     directEnabled?: boolean;
                     directIntensity?: number;
@@ -1191,6 +1295,7 @@ declare module 'babylonjs-viewer/configuration/configuration' {
                     renderTarget?: ISceneOptimizerParameters;
                     mergeMeshes?: ISceneOptimizerParameters;
             };
+            custom?: string;
     }
     export interface IObserversConfiguration {
             onEngineInit?: string;
@@ -1550,7 +1655,7 @@ declare module 'babylonjs-viewer/templateManager' {
 }
 
 declare module 'babylonjs-viewer/viewer/sceneManager' {
-    import { Scene, ArcRotateCamera, Light, SceneOptimizer, EnvironmentHelper, Color3, Observable } from 'babylonjs';
+    import { Scene, ArcRotateCamera, Light, SceneOptimizer, EnvironmentHelper, Color3, Observable, DefaultRenderingPipeline, Nullable } from 'babylonjs';
     import { AbstractViewer } from 'babylonjs-viewer/viewer/viewer';
     import { ILightConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, ViewerConfiguration, IGroundConfiguration, IModelConfiguration } from 'babylonjs-viewer/configuration/configuration';
     import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
@@ -1632,6 +1737,7 @@ declare module 'babylonjs-viewer/viewer/sceneManager' {
                 * Please be careful when using labs in production.
                 */
             labs: ViewerLabs;
+            readonly defaultRenderingPipeline: Nullable<DefaultRenderingPipeline>;
             constructor(_viewer: AbstractViewer);
             /**
                 * Returns a boolean representing HDR support
@@ -1641,6 +1747,8 @@ declare module 'babylonjs-viewer/viewer/sceneManager' {
                 * Return the main color defined in the configuration.
                 */
             readonly mainColor: Color3;
+            readonly reflectionColor: Color3;
+            animationBlendingEnabled: boolean;
             /**
                 * Should shadows be rendered every frame, or only once and stop.
                 * This can be used to optimize a scene.
@@ -1649,19 +1757,18 @@ declare module 'babylonjs-viewer/viewer/sceneManager' {
                 * @param process if true shadows will be updated once every frame. if false they will stop being updated.
                 */
             processShadows: boolean;
+            groundEnabled: boolean;
+            /**
+                * sets wether the reflection is disabled.
+                */
+            groundMirrorEnabled: boolean;
+            defaultRenderingPipelineEnabled: boolean;
             /**
                 * Sets the engine flags to unlock all babylon features.
                 * Can also be configured using the scene.flags configuration object
                 */
             unlockBabylonFeatures(): void;
             /**
-                * initialize the environment for a specific model.
-                * Per default it will use the viewer's configuration.
-                * @param model the model to use to configure the environment.
-                * @returns a Promise that will resolve when the configuration is done.
-                */
-            protected _initEnvironment(model?: ViewerModel): Promise<Scene>;
-            /**
                 * initialize the scene. Calling this function again will dispose the old scene, if exists.
                 */
             initScene(sceneConfiguration?: ISceneConfiguration, optimizerConfiguration?: boolean | ISceneOptimizerConfiguration): Promise<Scene>;
@@ -1672,6 +1779,8 @@ declare module 'babylonjs-viewer/viewer/sceneManager' {
                 * @param globalConfiguration The global configuration object, after the new configuration was merged into it
                 */
             updateConfiguration(newConfiguration: Partial<ViewerConfiguration>, globalConfiguration: ViewerConfiguration, model?: ViewerModel): void;
+            bloomEnabled: boolean;
+            fxaaEnabled: boolean;
             /**
                 * internally configure the scene using the provided configuration.
                 * The scene will not be recreated, but just updated.
@@ -1685,11 +1794,6 @@ declare module 'babylonjs-viewer/viewer/sceneManager' {
                 */
             protected _configureOptimizer(optimizerConfig: ISceneOptimizerConfiguration | boolean): void;
             /**
-                * configure all models using the configuration.
-                * @param modelConfiguration the configuration to use to reconfigure the models
-                */
-            protected _configureModel(modelConfiguration: Partial<IModelConfiguration>): void;
-            /**
                 * (Re) configure the camera. The camera will only be created once and from this point will only be reconfigured.
                 * @param cameraConfig the new camera configuration
                 * @param model optionally use the model to configure the camera.
@@ -1818,7 +1922,7 @@ declare module 'babylonjs-viewer/labs/viewerLabs' {
     import { SceneManager } from 'babylonjs-viewer/viewer/sceneManager';
     export class ViewerLabs {
             constructor(_sceneManager: SceneManager);
-            environmentAssetsRootURL: string;
+            assetsRootURL: string;
             environment: PBREnvironment;
             /**
                         * Loads an environment map from a given URL
@@ -1854,7 +1958,7 @@ declare module 'babylonjs-viewer/labs/viewerLabs' {
                 * @param url Asset url
                 * @returns The Asset url using the `environmentAssetsRootURL` if the url is not an absolute path.
                 */
-            getEnvironmentAssetUrl(url: string): string;
+            getAssetUrl(url: string): string;
     }
 }