Advertisement
Guest User

Untitled

a guest
Dec 7th, 2020
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. var prepareCamera = function(scene, camera = null) {
  2. if(camera == null) scene.createDefaultCamera(true);
  3.  
  4. // Enable camera's behaviors
  5. camera.useFramingBehavior = true;
  6.  
  7. var framingBehavior = camera.getBehaviorByName("Framing");
  8. framingBehavior.framingTime = 0;
  9. framingBehavior.elevationReturnTime = -1;
  10.  
  11. if (scene.meshes.length) {
  12. camera.lowerRadiusLimit = null;
  13. var worldExtends = scene.getWorldExtends(function (mesh) {
  14. return mesh.isVisible && mesh.isEnabled();
  15. });
  16. framingBehavior.zoomOnBoundingInfo(worldExtends.min, worldExtends.max);
  17. }
  18.  
  19. camera.pinchPrecision = 200 / camera.radius;
  20. camera.upperRadiusLimit = 5 * camera.radius;
  21.  
  22. console.log(camera.upperRadiusLimit);
  23.  
  24. camera.wheelDeltaPercentage = 0.01;
  25. camera.pinchDeltaPercentage = 0.01;
  26.  
  27. camera.alpha = BABYLON_globalSettings.cameraAlpha;
  28. camera.beta = BABYLON_globalSettings.cameraBeta;
  29. }
  30.  
  31. var setCameraDefaultAlphaBeta = function(camera) {
  32. camera.alpha = BABYLON_globalSettings.cameraAlpha;
  33. camera.beta = BABYLON_globalSettings.cameraBeta;
  34. }
  35.  
  36. var prepareLighting = function(scene, skyBoxPath = "") {
  37.  
  38. var hemi = new BABYLON.HemisphericLight("HemiLight", new BABYLON.Vector3(0, 1, 0), scene);
  39. var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(10, 50, 50), scene);
  40. light.intensity = 1.0;
  41.  
  42. if (skyBoxPath != "" && !scene.environmentTexture) {
  43. var skybox = BABYLON.Mesh.CreateBox("skyBox", 333.0, scene);
  44. var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
  45. skyboxMaterial.backFaceCulling = false;
  46. skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture(skyBoxPath, scene);
  47. skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
  48. skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
  49. skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
  50. skyboxMaterial.disableLighting = true;
  51. skybox.material = skyboxMaterial;
  52.  
  53. // Takes very long to load?
  54. //scene.environmentTexture = skyboxMaterial.reflectionTexture;
  55. }
  56. }
  57.  
  58. var createScene = function () {
  59. // This creates a basic Babylon Scene object (non-mesh)
  60. var scene = new BABYLON.Scene(engine);
  61.  
  62. // This creates and positions a free camera (non-mesh)
  63. var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);
  64.  
  65. // var assetsManager = new BABYLON.AssetsManager(scene);
  66. // var meshTask = assetsManager.addMeshTask("skull task", "", "https://raw.githubusercontent.com/RaggarDK/Baby/baby/", "he4.babylon");
  67.  
  68. BABYLON.SceneLoader.LoadAssetContainerAsync("Scenes/", "BoomBox.glb", scene).then(function (container) {
  69. container.addAllToScene();
  70. prepareCamera(scene, camera);
  71. prepareLighting(scene);
  72.  
  73. mainCamera.attachControl(canvas, false);
  74. setCameraDefaultAlphaBeta(camera);
  75. });
  76.  
  77. // meshTask.onSuccess = function (task) {
  78. // // Enable camera's behaviors
  79. // prepareCamera(scene, camera);
  80. // prepareLighting(scene);
  81.  
  82. // mainCamera.attachControl(canvas, false);
  83. // setCameraDefaultAlphaBeta(camera);
  84. // }
  85.  
  86. return scene;
  87. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement