David Catuhe 8 lat temu
rodzic
commit
f1ab10433e
34 zmienionych plików z 16473 dodań i 16426 usunięć
  1. 3251 3248
      dist/preview release/babylon.d.ts
  2. 14 14
      dist/preview release/babylon.js
  3. 3 0
      dist/preview release/babylon.max.js
  4. 3251 3248
      dist/preview release/babylon.module.d.ts
  5. 14 14
      dist/preview release/babylon.worker.js
  6. 4946 4943
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts
  7. 5 5
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js
  8. 4 0
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js
  9. 4946 4943
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts
  10. 1 0
      dist/preview release/loaders/babylon.glTF1FileLoader.d.ts
  11. 1 0
      dist/preview release/loaders/babylon.glTF1FileLoader.js
  12. 1 1
      dist/preview release/loaders/babylon.glTF1FileLoader.min.js
  13. 1 0
      dist/preview release/loaders/babylon.glTF2FileLoader.d.ts
  14. 1 0
      dist/preview release/loaders/babylon.glTF2FileLoader.js
  15. 1 1
      dist/preview release/loaders/babylon.glTF2FileLoader.min.js
  16. 1 0
      dist/preview release/loaders/babylon.glTFFileLoader.d.ts
  17. 1 0
      dist/preview release/loaders/babylon.glTFFileLoader.js
  18. 1 1
      dist/preview release/loaders/babylon.glTFFileLoader.min.js
  19. 1 0
      dist/preview release/loaders/babylon.objFileLoader.d.ts
  20. 1 0
      dist/preview release/loaders/babylon.objFileLoader.js
  21. 1 1
      dist/preview release/loaders/babylon.objFileLoader.min.js
  22. 1 0
      dist/preview release/loaders/babylon.stlFileLoader.d.ts
  23. 1 0
      dist/preview release/loaders/babylon.stlFileLoader.js
  24. 1 1
      dist/preview release/loaders/babylon.stlFileLoader.min.js
  25. 1 1
      loaders/src/OBJ/babylon.objFileLoader.ts
  26. 3 0
      loaders/src/STL/babylon.stlFileLoader.ts
  27. 2 0
      loaders/src/glTF/babylon.glTFFileLoader.ts
  28. BIN
      sandbox/Assets/LogoSandbox.png
  29. BIN
      sandbox/Assets/environment.dds
  30. 1 1
      sandbox/index.css
  31. 9 3
      sandbox/index.js
  32. 1 0
      src/Loading/Plugins/babylon.babylonFileLoader.ts
  33. 6 1
      src/Loading/babylon.sceneLoader.ts
  34. 1 0
      src/babylon.scene.ts

Plik diff jest za duży
+ 3251 - 3248
dist/preview release/babylon.d.ts


Plik diff jest za duży
+ 14 - 14
dist/preview release/babylon.js


+ 3 - 0
dist/preview release/babylon.max.js

@@ -46795,6 +46795,7 @@ var BABYLON;
                     if (onSuccess) {
                     if (onSuccess) {
                         onSuccess(scene);
                         onSuccess(scene);
                     }
                     }
+                    scene.loadingPluginName = plugin.name;
                     scene._removePendingData(loadingToken);
                     scene._removePendingData(loadingToken);
                 }
                 }
                 else {
                 else {
@@ -46803,6 +46804,7 @@ var BABYLON;
                         if (onSuccess) {
                         if (onSuccess) {
                             onSuccess(scene);
                             onSuccess(scene);
                         }
                         }
+                        scene.loadingPluginName = plugin.name;
                         scene._removePendingData(loadingToken);
                         scene._removePendingData(loadingToken);
                     }, progressHandler, errorHandler);
                     }, progressHandler, errorHandler);
                 }
                 }
@@ -46858,6 +46860,7 @@ var BABYLON;
             return operation + " of " + (producer ? producer.file + " from " + producer.name + " version: " + producer.version + ", exporter version: " + producer.exporter_version : "unknown");
             return operation + " of " + (producer ? producer.file + " from " + producer.name + " version: " + producer.version + ", exporter version: " + producer.exporter_version : "unknown");
         };
         };
         BABYLON.SceneLoader.RegisterPlugin({
         BABYLON.SceneLoader.RegisterPlugin({
+            name: "babylon.js",
             extensions: ".babylon",
             extensions: ".babylon",
             canDirectLoad: function (data) {
             canDirectLoad: function (data) {
                 if (data.indexOf("babylon") !== -1) {
                 if (data.indexOf("babylon") !== -1) {

Plik diff jest za duży
+ 3251 - 3248
dist/preview release/babylon.module.d.ts


Plik diff jest za duży
+ 14 - 14
dist/preview release/babylon.worker.js


Plik diff jest za duży
+ 4946 - 4943
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Plik diff jest za duży
+ 5 - 5
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


+ 4 - 0
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -48173,6 +48173,7 @@ var BABYLON;
                     if (onSuccess) {
                     if (onSuccess) {
                         onSuccess(scene);
                         onSuccess(scene);
                     }
                     }
+                    scene.loadingPluginName = plugin.name;
                     scene._removePendingData(loadingToken);
                     scene._removePendingData(loadingToken);
                 }
                 }
                 else {
                 else {
@@ -48181,6 +48182,7 @@ var BABYLON;
                         if (onSuccess) {
                         if (onSuccess) {
                             onSuccess(scene);
                             onSuccess(scene);
                         }
                         }
+                        scene.loadingPluginName = plugin.name;
                         scene._removePendingData(loadingToken);
                         scene._removePendingData(loadingToken);
                     }, progressHandler, errorHandler);
                     }, progressHandler, errorHandler);
                 }
                 }
@@ -48236,6 +48238,7 @@ var BABYLON;
             return operation + " of " + (producer ? producer.file + " from " + producer.name + " version: " + producer.version + ", exporter version: " + producer.exporter_version : "unknown");
             return operation + " of " + (producer ? producer.file + " from " + producer.name + " version: " + producer.version + ", exporter version: " + producer.exporter_version : "unknown");
         };
         };
         BABYLON.SceneLoader.RegisterPlugin({
         BABYLON.SceneLoader.RegisterPlugin({
+            name: "babylon.js",
             extensions: ".babylon",
             extensions: ".babylon",
             canDirectLoad: function (data) {
             canDirectLoad: function (data) {
                 if (data.indexOf("babylon") !== -1) {
                 if (data.indexOf("babylon") !== -1) {
@@ -49060,6 +49063,7 @@ var BABYLON;
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
+            this.name = "gltf";
             this.extensions = {
             this.extensions = {
                 ".gltf": { isBinary: false },
                 ".gltf": { isBinary: false },
                 ".glb": { isBinary: true }
                 ".glb": { isBinary: true }

Plik diff jest za duży
+ 4946 - 4943
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 1 - 0
dist/preview release/loaders/babylon.glTF1FileLoader.d.ts

@@ -22,6 +22,7 @@ declare module BABYLON {
         onTextureLoaded: (texture: BaseTexture) => void;
         onTextureLoaded: (texture: BaseTexture) => void;
         onMaterialLoaded: (material: Material) => void;
         onMaterialLoaded: (material: Material) => void;
         onComplete: () => void;
         onComplete: () => void;
+        name: string;
         extensions: ISceneLoaderPluginExtensions;
         extensions: ISceneLoaderPluginExtensions;
         importMeshAsync(meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         importMeshAsync(meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         loadAsync(scene: Scene, data: string | ArrayBuffer, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         loadAsync(scene: Scene, data: string | ArrayBuffer, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;

+ 1 - 0
dist/preview release/loaders/babylon.glTF1FileLoader.js

@@ -15,6 +15,7 @@ var BABYLON;
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
+            this.name = "gltf";
             this.extensions = {
             this.extensions = {
                 ".gltf": { isBinary: false },
                 ".gltf": { isBinary: false },
                 ".glb": { isBinary: true }
                 ".glb": { isBinary: true }

Plik diff jest za duży
+ 1 - 1
dist/preview release/loaders/babylon.glTF1FileLoader.min.js


+ 1 - 0
dist/preview release/loaders/babylon.glTF2FileLoader.d.ts

@@ -22,6 +22,7 @@ declare module BABYLON {
         onTextureLoaded: (texture: BaseTexture) => void;
         onTextureLoaded: (texture: BaseTexture) => void;
         onMaterialLoaded: (material: Material) => void;
         onMaterialLoaded: (material: Material) => void;
         onComplete: () => void;
         onComplete: () => void;
+        name: string;
         extensions: ISceneLoaderPluginExtensions;
         extensions: ISceneLoaderPluginExtensions;
         importMeshAsync(meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         importMeshAsync(meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         loadAsync(scene: Scene, data: string | ArrayBuffer, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         loadAsync(scene: Scene, data: string | ArrayBuffer, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;

+ 1 - 0
dist/preview release/loaders/babylon.glTF2FileLoader.js

@@ -15,6 +15,7 @@ var BABYLON;
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
+            this.name = "gltf";
             this.extensions = {
             this.extensions = {
                 ".gltf": { isBinary: false },
                 ".gltf": { isBinary: false },
                 ".glb": { isBinary: true }
                 ".glb": { isBinary: true }

Plik diff jest za duży
+ 1 - 1
dist/preview release/loaders/babylon.glTF2FileLoader.min.js


+ 1 - 0
dist/preview release/loaders/babylon.glTFFileLoader.d.ts

@@ -22,6 +22,7 @@ declare module BABYLON {
         onTextureLoaded: (texture: BaseTexture) => void;
         onTextureLoaded: (texture: BaseTexture) => void;
         onMaterialLoaded: (material: Material) => void;
         onMaterialLoaded: (material: Material) => void;
         onComplete: () => void;
         onComplete: () => void;
+        name: string;
         extensions: ISceneLoaderPluginExtensions;
         extensions: ISceneLoaderPluginExtensions;
         importMeshAsync(meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         importMeshAsync(meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         loadAsync(scene: Scene, data: string | ArrayBuffer, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;
         loadAsync(scene: Scene, data: string | ArrayBuffer, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void): void;

+ 1 - 0
dist/preview release/loaders/babylon.glTFFileLoader.js

@@ -15,6 +15,7 @@ var BABYLON;
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
+            this.name = "gltf";
             this.extensions = {
             this.extensions = {
                 ".gltf": { isBinary: false },
                 ".gltf": { isBinary: false },
                 ".glb": { isBinary: true }
                 ".glb": { isBinary: true }

Plik diff jest za duży
+ 1 - 1
dist/preview release/loaders/babylon.glTFFileLoader.min.js


+ 1 - 0
dist/preview release/loaders/babylon.objFileLoader.d.ts

@@ -30,6 +30,7 @@ declare module BABYLON {
     }
     }
     class OBJFileLoader implements ISceneLoaderPlugin {
     class OBJFileLoader implements ISceneLoaderPlugin {
         static OPTIMIZE_WITH_UV: boolean;
         static OPTIMIZE_WITH_UV: boolean;
+        name: string;
         extensions: string;
         extensions: string;
         obj: RegExp;
         obj: RegExp;
         group: RegExp;
         group: RegExp;

+ 1 - 0
dist/preview release/loaders/babylon.objFileLoader.js

@@ -197,6 +197,7 @@ var BABYLON;
     BABYLON.MTLFileLoader = MTLFileLoader;
     BABYLON.MTLFileLoader = MTLFileLoader;
     var OBJFileLoader = (function () {
     var OBJFileLoader = (function () {
         function OBJFileLoader() {
         function OBJFileLoader() {
+            this.name = "obj";
             this.extensions = ".obj";
             this.extensions = ".obj";
             this.obj = /^o/;
             this.obj = /^o/;
             this.group = /^g/;
             this.group = /^g/;

Plik diff jest za duży
+ 1 - 1
dist/preview release/loaders/babylon.objFileLoader.min.js


+ 1 - 0
dist/preview release/loaders/babylon.stlFileLoader.d.ts

@@ -5,6 +5,7 @@ declare module BABYLON {
         facetsPattern: RegExp;
         facetsPattern: RegExp;
         normalPattern: RegExp;
         normalPattern: RegExp;
         vertexPattern: RegExp;
         vertexPattern: RegExp;
+        name: string;
         extensions: ISceneLoaderPluginExtensions;
         extensions: ISceneLoaderPluginExtensions;
         importMesh(meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]): boolean;
         importMesh(meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]): boolean;
         load(scene: Scene, data: any, rootUrl: string): boolean;
         load(scene: Scene, data: any, rootUrl: string): boolean;

+ 1 - 0
dist/preview release/loaders/babylon.stlFileLoader.js

@@ -7,6 +7,7 @@ var BABYLON;
             this.facetsPattern = /facet([\s\S]*?)endfacet/g;
             this.facetsPattern = /facet([\s\S]*?)endfacet/g;
             this.normalPattern = /normal[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
             this.normalPattern = /normal[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
             this.vertexPattern = /vertex[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
             this.vertexPattern = /vertex[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
+            this.name = "stl";
             // force data to come in as an ArrayBuffer
             // force data to come in as an ArrayBuffer
             // we'll convert to string if it looks like it's an ASCII .stl
             // we'll convert to string if it looks like it's an ASCII .stl
             this.extensions = {
             this.extensions = {

Plik diff jest za duży
+ 1 - 1
dist/preview release/loaders/babylon.stlFileLoader.min.js


+ 1 - 1
loaders/src/OBJ/babylon.objFileLoader.ts

@@ -191,7 +191,7 @@ module BABYLON {
     export class OBJFileLoader implements ISceneLoaderPlugin {
     export class OBJFileLoader implements ISceneLoaderPlugin {
 
 
         public static OPTIMIZE_WITH_UV = false;
         public static OPTIMIZE_WITH_UV = false;
-
+        public name = "obj";
         public extensions = ".obj";
         public extensions = ".obj";
         public obj = /^o/;
         public obj = /^o/;
         public group = /^g/;
         public group = /^g/;

+ 3 - 0
loaders/src/STL/babylon.stlFileLoader.ts

@@ -9,6 +9,9 @@ module BABYLON {
         public normalPattern = /normal[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
         public normalPattern = /normal[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
         public vertexPattern = /vertex[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
         public vertexPattern = /vertex[\s]+([\-+]?[0-9]+\.?[0-9]*([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+[\s]+([\-+]?[0-9]*\.?[0-9]+([eE][\-+]?[0-9]+)?)+/g;
 
 
+
+        public name = "stl";
+
         // force data to come in as an ArrayBuffer
         // force data to come in as an ArrayBuffer
         // we'll convert to string if it looks like it's an ASCII .stl
         // we'll convert to string if it looks like it's an ASCII .stl
         public extensions: ISceneLoaderPluginExtensions = {
         public extensions: ISceneLoaderPluginExtensions = {

+ 2 - 0
loaders/src/glTF/babylon.glTFFileLoader.ts

@@ -37,6 +37,8 @@ module BABYLON {
         public onMaterialLoaded: (material: Material) => void;
         public onMaterialLoaded: (material: Material) => void;
         public onComplete: () => void;
         public onComplete: () => void;
 
 
+        public name = "gltf";
+
         public extensions: ISceneLoaderPluginExtensions = {
         public extensions: ISceneLoaderPluginExtensions = {
             ".gltf": { isBinary: false },
             ".gltf": { isBinary: false },
             ".glb": { isBinary: true }
             ".glb": { isBinary: true }

BIN
sandbox/Assets/LogoSandbox.png


BIN
sandbox/Assets/environment.dds


+ 1 - 1
sandbox/index.css

@@ -127,7 +127,7 @@ a {
     width: 100%;
     width: 100%;
     height: 60px;
     height: 60px;
     bottom: 0;
     bottom: 0;
-    background-color: #59448F;
+    background-color: #3B789A;
     padding-top: 5px;
     padding-top: 5px;
     padding-left: 15px;
     padding-left: 15px;
 }
 }

+ 9 - 3
sandbox/index.js

@@ -1,6 +1,4 @@
-/// <reference path="../../babylon.js" />
-
-if (BABYLON.Engine.isSupported()) {
+if (BABYLON.Engine.isSupported()) {
     var canvas = document.getElementById("renderCanvas");
     var canvas = document.getElementById("renderCanvas");
     var engine = new BABYLON.Engine(canvas, true);
     var engine = new BABYLON.Engine(canvas, true);
     var divFps = document.getElementById("fps");
     var divFps = document.getElementById("fps");
@@ -54,6 +52,14 @@ if (BABYLON.Engine.isSupported()) {
         }
         }
         currentScene.activeCamera.attachControl(canvas);
         currentScene.activeCamera.attachControl(canvas);
 
 
+        // Environment
+        if (currentScene.loadingPluginName === "gltf") {
+            var hdrTexture = BABYLON.CubeTexture.CreateFromPrefilteredData("Assets/environment.dds", currentScene);
+            hdrTexture.gammaSpace = false;
+                        
+            currentScene.createDefaultSkybox(hdrTexture, true, 100, 0.3);
+        }
+
         // In case of error during loading, meshes will be empty and clearColor is set to red
         // In case of error during loading, meshes will be empty and clearColor is set to red
         if (currentScene.meshes.length === 0 && currentScene.clearColor.r === 1 && currentScene.clearColor.g === 0 && currentScene.clearColor.b === 0) {
         if (currentScene.meshes.length === 0 && currentScene.clearColor.r === 1 && currentScene.clearColor.g === 0 && currentScene.clearColor.b === 0) {
             document.getElementById("logo").className = "";
             document.getElementById("logo").className = "";

+ 1 - 0
src/Loading/Plugins/babylon.babylonFileLoader.ts

@@ -30,6 +30,7 @@
     }
     }
 
 
     SceneLoader.RegisterPlugin({
     SceneLoader.RegisterPlugin({
+        name: "babylon.js",
         extensions: ".babylon",
         extensions: ".babylon",
         canDirectLoad: (data: string) => {
         canDirectLoad: (data: string) => {
             if (data.indexOf("babylon") !== -1) { // We consider that the producer string is filled
             if (data.indexOf("babylon") !== -1) { // We consider that the producer string is filled

+ 6 - 1
src/Loading/babylon.sceneLoader.ts

@@ -6,6 +6,7 @@
     }
     }
 
 
     export interface ISceneLoaderPlugin {
     export interface ISceneLoaderPlugin {
+        name: string;
         extensions: string | ISceneLoaderPluginExtensions;
         extensions: string | ISceneLoaderPluginExtensions;
         importMesh: (meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[], onError: (message: string) => void) => boolean;
         importMesh: (meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[], onError: (message: string) => void) => boolean;
         load: (scene: Scene, data: string, rootUrl: string, onError: (message: string) => void) => boolean;
         load: (scene: Scene, data: string, rootUrl: string, onError: (message: string) => void) => boolean;
@@ -13,6 +14,7 @@
     }
     }
 
 
     export interface ISceneLoaderPluginAsync {
     export interface ISceneLoaderPluginAsync {
+        name: string;
         extensions: string | ISceneLoaderPluginExtensions;
         extensions: string | ISceneLoaderPluginExtensions;
         importMeshAsync: (meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void) => void;
         importMeshAsync: (meshesNames: any, scene: Scene, data: any, rootUrl: string, onSuccess: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void) => void;
         loadAsync: (scene: Scene, data: string, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void) => void;
         loadAsync: (scene: Scene, data: string, rootUrl: string, onSuccess: () => void, onProgress: (event: ProgressEvent) => void, onError: (message: string) => void) => void;
@@ -318,6 +320,8 @@
                     if (onSuccess) {
                     if (onSuccess) {
                         onSuccess(scene);
                         onSuccess(scene);
                     }
                     }
+
+                    scene.loadingPluginName = plugin.name;
                     scene._removePendingData(loadingToken);
                     scene._removePendingData(loadingToken);
                 } else {
                 } else {
                     var asyncedPlugin = <ISceneLoaderPluginAsync>plugin;
                     var asyncedPlugin = <ISceneLoaderPluginAsync>plugin;
@@ -325,7 +329,8 @@
                         if (onSuccess) {
                         if (onSuccess) {
                             onSuccess(scene);
                             onSuccess(scene);
                         }
                         }
-
+                        
+                        scene.loadingPluginName = plugin.name;
                         scene._removePendingData(loadingToken);
                         scene._removePendingData(loadingToken);
                     }, progressHandler, errorHandler);
                     }, progressHandler, errorHandler);
                 }
                 }

+ 1 - 0
src/babylon.scene.ts

@@ -246,6 +246,7 @@
 
 
         // Metadata
         // Metadata
         public metadata: any = null;
         public metadata: any = null;
+        public loadingPluginName: string;
 
 
         // Events
         // Events