|
@@ -19,6 +19,7 @@ if (BABYLON.Engine.isSupported()) {
|
|
|
var currentSkybox;
|
|
|
var enableDebugLayer = false;
|
|
|
var currentPluginName;
|
|
|
+ var toExecuteAfterSceneCreation;
|
|
|
|
|
|
canvas.addEventListener("contextmenu", function(evt) {
|
|
|
evt.preventDefault();
|
|
@@ -128,6 +129,11 @@ if (BABYLON.Engine.isSupported()) {
|
|
|
currentScene.activeCamera.keysRight.push(68); // D
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (toExecuteAfterSceneCreation) {
|
|
|
+ toExecuteAfterSceneCreation();
|
|
|
+ }
|
|
|
+
|
|
|
};
|
|
|
|
|
|
var sceneError = function (sceneFile, babylonScene, message) {
|
|
@@ -149,12 +155,23 @@ if (BABYLON.Engine.isSupported()) {
|
|
|
filesInput = new BABYLON.FilesInput(engine, null, sceneLoaded, null, null, null, function () { BABYLON.Tools.ClearLogCache() }, null, sceneError);
|
|
|
filesInput.onProcessFileCallback = (function (file, name, extension) {
|
|
|
if (extension === "dds") {
|
|
|
- BABYLON.FilesInput.FilesToLoad[name] = file;
|
|
|
- var newHdrTexture = BABYLON.CubeTexture.CreateFromPrefilteredData("file:" + file.correctName, currentScene);
|
|
|
- if (currentSkybox) {
|
|
|
- currentSkybox.dispose();
|
|
|
+ var loadTexture = () => {
|
|
|
+ if (currentPluginName === "gltf") { // currentPluginName is updated only once scene is loaded
|
|
|
+ BABYLON.FilesInput.FilesToLoad[name] = file;
|
|
|
+ var newHdrTexture = BABYLON.CubeTexture.CreateFromPrefilteredData("file:" + file.correctName, currentScene);
|
|
|
+ if (currentSkybox) {
|
|
|
+ currentSkybox.dispose();
|
|
|
+ }
|
|
|
+ currentSkybox = currentScene.createDefaultSkybox(newHdrTexture, true, (currentScene.activeCamera.maxZ - currentScene.activeCamera.minZ) / 2, 0.3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (currentScene) {
|
|
|
+ loadTexture();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ // Postpone texture loading until scene is loaded
|
|
|
+ toExecuteAfterSceneCreation = loadTexture;
|
|
|
}
|
|
|
- currentSkybox = currentScene.createDefaultSkybox(newHdrTexture, true, (currentScene.activeCamera.maxZ - currentScene.activeCamera.minZ) / 2, 0.3);
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|