babylonScene.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var engine;
  2. (function () {
  3. "use strict";
  4. WinJS.UI.Pages.define("/pages/babylonScene/babylonScene.html", {
  5. // This function is called whenever a user navigates to this page. It
  6. // populates the page elements with the app's data.
  7. ready: function (element, options) {
  8. var canvas = element.querySelector("#babylonCanvas");
  9. engine = new BABYLON.Engine(canvas, true);
  10. var container = canvas.parentElement;
  11. var loadingBack = element.querySelector("#loadingBack");
  12. var loadingText = element.querySelector("#loadingText");
  13. loadingBack.className = "";
  14. loadingText.className = "";
  15. loadingText.innerHTML = "Loading, please wait...";
  16. BABYLON.SceneLoader.Load(options.babylonFolder + "/", options.babylonFile, engine, function (scene) {
  17. scene.executeWhenReady(function () {
  18. if (!scene.activeCamera) {
  19. scene.activeCamera = new BABYLON.ArcRotateCamera("DefaultCamera", -Math.PI / 2, Math.PI / 2, 10, new BABYLON.Vector3.Zero(), scene);
  20. scene.activeCamera.zoomOn();
  21. }
  22. if (scene.lights.length == 0) {
  23. var light = new BABYLON.HemisphericLight("Default light", new BABYLON.Vector3(0, 1, 0), scene);
  24. }
  25. scene.activeCamera.attachControl(canvas);
  26. engine.runRenderLoop(function () {
  27. scene.render();
  28. });
  29. loadingBack.className = "loadingBack";
  30. loadingText.className = "loadingText";
  31. });
  32. }, function (evt) {
  33. if (evt.lengthComputable) {
  34. loadingText.innerHTML = "Loading, please wait..." + (evt.loaded * 100 / evt.total).toFixed() + "%";
  35. } else {
  36. dlCount = evt.loaded / (1024 * 1024);
  37. loadingText.innerHTML = "Loading, please wait..." + Math.floor(dlCount * 100.0) / 100.0 + " MB already loaded.";
  38. }
  39. });
  40. },
  41. unload: function () {
  42. engine.stopRenderLoop();
  43. engine.dispose();
  44. engine = null;
  45. }
  46. });
  47. })();