index.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>demo</title>
  8. <style>
  9. html, body {
  10. overflow: hidden;
  11. width: 100%;
  12. height: 100%;
  13. margin: 0;
  14. padding: 0;
  15. }
  16. #renderCanvas {
  17. width: 100%;
  18. height: 100%;
  19. touch-action: none;
  20. }
  21. #videoTextureBox video {
  22. display: none;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <canvas id="renderCanvas"></canvas>
  28. <div id = "videoTextureBox">
  29. <video id="houseTexture0" src="./textures/outputmp4/0/0.mp4" crossOrigin="anonymous" playsinline autoplay muted></video>
  30. </div>
  31. <!-- Babylon.js -->
  32. <script src="./libs/dat.gui.min.js"></script>
  33. <script src="./libs/ammo.js"></script>
  34. <script src="./libs/cannon.js"></script>
  35. <script src="./libs/Oimo.js"></script>
  36. <script src="./libs/earcut.min.js"></script>
  37. <script src="./libs/recast.js"></script>
  38. <script src="./libs/babylon.js"></script>
  39. <script src="./libs/babylonjs.materials.min.js"></script>
  40. <script src="./libs/babylonjs.proceduralTextures.min.js"></script>
  41. <script src="./libs/babylonjs.postProcess.min.js"></script>
  42. <script src="./libs/babylonjs.loaders.js"></script>
  43. <script src="./libs/babylonjs.serializers.min.js"></script>
  44. <script src="./libs/babylon.gui.min.js"></script>
  45. <script src="./libs/babylon.inspector.bundle.js"></script>
  46. <script type="module">
  47. import App from "./modules/index.js"
  48. var canvas = document.getElementById("renderCanvas");
  49. var engine = null;
  50. var scene = null;
  51. var sceneToRender = null;
  52. var startRenderLoop = function (engine, canvas) {
  53. engine.runRenderLoop(function () {
  54. if (sceneToRender && sceneToRender.activeCamera) {
  55. sceneToRender.render();
  56. }
  57. });
  58. }
  59. var createDefaultEngine = function() {
  60. return new BABYLON.Engine(canvas, true, {
  61. preserveDrawingBuffer: true,
  62. stencil: true,
  63. disableWebGL2Support: false
  64. });
  65. };
  66. var asyncEngineCreation = async function() {
  67. try {
  68. return createDefaultEngine();
  69. } catch(e) {
  70. console.log("the available createEngine function failed. Creating the default engine instead");
  71. return createDefaultEngine();
  72. }
  73. }
  74. window.initFunction = async function() {
  75. engine = await asyncEngineCreation();
  76. if (!engine) throw 'engine should not be null.';
  77. startRenderLoop(engine, canvas);
  78. engine.enableOfflineSupport = false;
  79. // Scene and Camera
  80. window.app = new App(engine)
  81. scene = window.app.scene
  82. };
  83. initFunction().then(() => {sceneToRender = scene});
  84. window.scene = scene;
  85. window.engine = engine
  86. // Resize
  87. window.addEventListener("resize", function () {
  88. engine.resize();
  89. });
  90. </script>
  91. </body>
  92. </html>