Browse Source

Adding final paths for VR controllers

David Rousset 8 năm trước cách đây
mục cha
commit
3cd9878d28
35 tập tin đã thay đổi với 485199 bổ sung22750 xóa
  1. 33778 0
      assets/meshes/controllers/generic/generic.babylon
  2. BIN
      assets/meshes/controllers/generic/vr_controller_01_mrhat.png
  3. BIN
      assets/meshes/controllers/generic/vr_controller_01_mrhat_MetallicGlossMap.png
  4. BIN
      assets/meshes/controllers/oculus/external_controller01_col.png
  5. BIN
      assets/meshes/controllers/oculus/external_controller01_col_MetallicGlossMap.png
  6. 128945 0
      assets/meshes/controllers/oculus/left.babylon
  7. 128945 0
      assets/meshes/controllers/oculus/right.babylon
  8. BIN
      assets/meshes/controllers/vive/onepointfive_texture.png
  9. BIN
      assets/meshes/controllers/vive/onepointfive_texture_MetallicGlossMap.png
  10. 170697 0
      assets/meshes/controllers/vive/wand.babylon
  11. 5818 5811
      dist/preview release/babylon.d.ts
  12. 41 41
      dist/preview release/babylon.js
  13. 47 25
      dist/preview release/babylon.max.js
  14. 5818 5811
      dist/preview release/babylon.module.d.ts
  15. 42 42
      dist/preview release/babylon.worker.js
  16. 4377 4371
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts
  17. 39 39
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js
  18. 1971 1953
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js
  19. 4377 4371
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts
  20. 3 3
      dist/preview release/gui/babylon.gui.min.js
  21. 263 263
      dist/preview release/inspector/babylon.inspector.bundle.js
  22. 3 3
      dist/preview release/inspector/babylon.inspector.min.js
  23. 2 2
      dist/preview release/loaders/babylon.glTF1FileLoader.min.js
  24. 1 1
      dist/preview release/loaders/babylon.glTF2FileLoader.min.js
  25. 2 2
      dist/preview release/loaders/babylon.glTFFileLoader.min.js
  26. 1 1
      dist/preview release/loaders/babylon.objFileLoader.min.js
  27. 1 1
      dist/preview release/materialsLibrary/babylon.customMaterial.min.js
  28. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js
  29. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.min.js
  30. 1 1
      dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.min.js
  31. 1 1
      dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.min.js
  32. 4 1
      src/Gamepad/Controllers/babylon.genericController.ts
  33. 15 2
      src/Gamepad/Controllers/babylon.oculusTouchController.ts
  34. 3 1
      src/Gamepad/Controllers/babylon.viveController.ts
  35. 2 2
      src/Gamepad/Controllers/babylon.windowsMotionController.ts

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 33778 - 0
assets/meshes/controllers/generic/generic.babylon


BIN
assets/meshes/controllers/generic/vr_controller_01_mrhat.png


BIN
assets/meshes/controllers/generic/vr_controller_01_mrhat_MetallicGlossMap.png


BIN
assets/meshes/controllers/oculus/external_controller01_col.png


BIN
assets/meshes/controllers/oculus/external_controller01_col_MetallicGlossMap.png


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 128945 - 0
assets/meshes/controllers/oculus/left.babylon


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 128945 - 0
assets/meshes/controllers/oculus/right.babylon


BIN
assets/meshes/controllers/vive/onepointfive_texture.png


BIN
assets/meshes/controllers/vive/onepointfive_texture_MetallicGlossMap.png


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 170697 - 0
assets/meshes/controllers/vive/wand.babylon


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 5818 - 5811
dist/preview release/babylon.d.ts


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 41 - 41
dist/preview release/babylon.js


+ 47 - 25
dist/preview release/babylon.max.js

@@ -7861,12 +7861,10 @@ var BABYLON;
                 document.addEventListener("webkitpointerlockchange", this._onPointerLockChange, false);
                 this._onVRDisplayPointerRestricted = function () {
                     _this._vrExclusivePointerMode = true;
-                    console.log("enter");
                     canvas.requestPointerLock();
                 };
                 this._onVRDisplayPointerUnrestricted = function () {
                     _this._vrExclusivePointerMode = false;
-                    console.log("exit");
                     document.exitPointerLock();
                 };
                 window.addEventListener('vrdisplaypointerrestricted', this._onVRDisplayPointerRestricted, false);
@@ -35483,7 +35481,7 @@ var BABYLON;
                             previousPinchDistance = pinchDistance;
                             return;
                         }
-                        if (Math.abs(pinchDistance - previousPinchDistance) > _this.camera.pinchToPanMaxDistance) {
+                        if (pinchDistance > _this.camera.panMaxFingersDistance || Math.abs(pinchDistance - previousPinchDistance) > _this.camera.pinchToPanMaxDistance) {
                             _this.camera
                                 .inertialRadiusOffset += (pinchSquaredDistance - previousPinchSquaredDistance) /
                                 (_this.pinchPrecision *
@@ -35643,7 +35641,8 @@ var BABYLON;
             _this.upperRadiusLimit = null;
             _this.inertialPanningX = 0;
             _this.inertialPanningY = 0;
-            _this.pinchToPanMaxDistance = 2;
+            _this.pinchToPanMaxDistance = 3;
+            _this.panMaxFingersDistance = 100;
             _this.panningDistanceLimit = null;
             _this.panningOriginTarget = BABYLON.Vector3.Zero();
             _this.panningInertia = 0.9;
@@ -36334,6 +36333,9 @@ var BABYLON;
         ], ArcRotateCamera.prototype, "pinchToPanMaxDistance", void 0);
         __decorate([
             BABYLON.serialize()
+        ], ArcRotateCamera.prototype, "panMaxFingersDistance", void 0);
+        __decorate([
+            BABYLON.serialize()
         ], ArcRotateCamera.prototype, "panningDistanceLimit", void 0);
         __decorate([
             BABYLON.serializeAsVector3()
@@ -52222,8 +52224,15 @@ var BABYLON;
         }
         OculusTouchController.prototype.initControllerMesh = function (scene, meshLoaded) {
             var _this = this;
-            var meshName = this.hand === 'right' ? 'RightTouch.babylon' : 'LeftTouch.babylon';
-            BABYLON.SceneLoader.ImportMesh("", "http://yoda.blob.core.windows.net/models/", meshName, scene, function (newMeshes) {
+            var meshName;
+            // Hand
+            if (this.hand === 'left') {
+                meshName = OculusTouchController.MODEL_LEFT_FILENAME;
+            }
+            else {
+                meshName = OculusTouchController.MODEL_RIGHT_FILENAME;
+            }
+            BABYLON.SceneLoader.ImportMesh("", OculusTouchController.MODEL_BASE_URL, meshName, scene, function (newMeshes) {
                 /*
                 Parent Mesh name: oculus_touch_left
                 - body
@@ -52346,6 +52355,9 @@ var BABYLON;
                     return;
             }
         };
+        OculusTouchController.MODEL_BASE_URL = 'https://controllers.babylonjs.com/oculus/';
+        OculusTouchController.MODEL_LEFT_FILENAME = 'left.babylon';
+        OculusTouchController.MODEL_RIGHT_FILENAME = 'right.babylon';
         return OculusTouchController;
     }(BABYLON.WebVRController));
     BABYLON.OculusTouchController = OculusTouchController;
@@ -52365,7 +52377,7 @@ var BABYLON;
         }
         ViveController.prototype.initControllerMesh = function (scene, meshLoaded) {
             var _this = this;
-            BABYLON.SceneLoader.ImportMesh("", "http://yoda.blob.core.windows.net/models/", "ViveWand.babylon", scene, function (newMeshes) {
+            BABYLON.SceneLoader.ImportMesh("", ViveController.MODEL_BASE_URL, ViveController.MODEL_FILENAME, scene, function (newMeshes) {
                 /*
                 Parent Mesh name: ViveWand
                 - body
@@ -52440,6 +52452,8 @@ var BABYLON;
                     return;
             }
         };
+        ViveController.MODEL_BASE_URL = 'https://controllers.babylonjs.com/vive/';
+        ViveController.MODEL_FILENAME = 'wand.babylon';
         return ViveController;
     }(BABYLON.WebVRController));
     BABYLON.ViveController = ViveController;
@@ -52457,7 +52471,7 @@ var BABYLON;
         }
         GenericController.prototype.initControllerMesh = function (scene, meshLoaded) {
             var _this = this;
-            BABYLON.SceneLoader.ImportMesh("", "http://yoda.blob.core.windows.net/models/", "genericvrcontroller.babylon", scene, function (newMeshes) {
+            BABYLON.SceneLoader.ImportMesh("", GenericController.MODEL_BASE_URL, GenericController.MODEL_FILENAME, scene, function (newMeshes) {
                 _this._defaultModel = newMeshes[1];
                 if (meshLoaded) {
                     meshLoaded(_this._defaultModel);
@@ -52469,6 +52483,8 @@ var BABYLON;
             console.log("Button id: " + buttonIdx + "state: ");
             console.dir(state);
         };
+        GenericController.MODEL_BASE_URL = 'https://controllers.babylonjs.com/generic/';
+        GenericController.MODEL_FILENAME = 'generic.babylon';
         return GenericController;
     }(BABYLON.WebVRController));
     BABYLON.GenericController = GenericController;
@@ -52620,21 +52636,30 @@ var BABYLON;
         WindowsMotionController.prototype.initControllerMesh = function (scene, meshLoaded, forceDefault) {
             var _this = this;
             if (forceDefault === void 0) { forceDefault = false; }
-            // Determine the device specific folder based on the ID suffix
-            var device = 'default';
-            if (this.id && !forceDefault) {
-                var match = this.id.match(WindowsMotionController.GAMEPAD_ID_PATTERN);
-                device = ((match && match[0]) || device);
-            }
-            // Hand
+            var path;
             var filename;
-            if (this.hand === 'left') {
-                filename = WindowsMotionController.MODEL_LEFT_FILENAME;
+            // Checking if GLB loader is present
+            if (BABYLON.SceneLoader.GetPluginForExtension("glb")) {
+                // Determine the device specific folder based on the ID suffix
+                var device = 'default';
+                if (this.id && !forceDefault) {
+                    var match = this.id.match(WindowsMotionController.GAMEPAD_ID_PATTERN);
+                    device = ((match && match[0]) || device);
+                }
+                // Hand
+                if (this.hand === 'left') {
+                    filename = WindowsMotionController.MODEL_LEFT_FILENAME;
+                }
+                else {
+                    filename = WindowsMotionController.MODEL_RIGHT_FILENAME;
+                }
+                path = WindowsMotionController.MODEL_BASE_URL + device + '/';
             }
             else {
-                filename = WindowsMotionController.MODEL_RIGHT_FILENAME;
+                BABYLON.Tools.Warn("You need to reference GLTF loader to load Windows Motion Controllers model. Falling back to generic models");
+                path = BABYLON.GenericController.MODEL_BASE_URL;
+                filename = BABYLON.GenericController.MODEL_FILENAME;
             }
-            var path = WindowsMotionController.MODEL_BASE_URL + device + '/';
             BABYLON.SceneLoader.ImportMesh("", path, filename, scene, function (meshes) {
                 // glTF files successfully loaded from the remote server, now process them to ensure they are in the right format.
                 _this._loadedMeshInfo = _this.processModel(scene, meshes);
@@ -52649,7 +52674,9 @@ var BABYLON;
             }, null, function (scene, message) {
                 BABYLON.Tools.Log(message);
                 BABYLON.Tools.Warn('Failed to retrieve controller model from the remote server: ' + path + filename);
-                _this.initControllerMesh(scene, meshLoaded, true);
+                if (!forceDefault) {
+                    _this.initControllerMesh(scene, meshLoaded, true);
+                }
             });
         };
         /**
@@ -52683,9 +52710,6 @@ var BABYLON;
                 childMesh.setParent(parentMesh);
                 // Create our mesh info. Note that this method will always return non-null.
                 loadedMeshInfo = this.createMeshInfo(parentMesh);
-                // Apply rotation offsets
-                var rotOffset = WindowsMotionController.ROTATE_OFFSET;
-                childMesh.addRotation(rotOffset[0], rotOffset[1], rotOffset[2]);
             }
             else {
                 BABYLON.Tools.Warn('No node with name ' + WindowsMotionController.MODEL_ROOT_NODE_NAME + ' in model file.');
@@ -52780,8 +52804,6 @@ var BABYLON;
         WindowsMotionController.GLTF_ROOT_TRANSFORM_NAME = 'root';
         WindowsMotionController.GAMEPAD_ID_PREFIX = 'Spatial Controller (Spatial Interaction Source) ';
         WindowsMotionController.GAMEPAD_ID_PATTERN = /([0-9a-zA-Z]+-[0-9a-zA-Z]+)$/;
-        // Art assets is backward facing
-        WindowsMotionController.ROTATE_OFFSET = [Math.PI, 0, 0]; // x, y, z.
         return WindowsMotionController;
     }(BABYLON.WebVRController));
     BABYLON.WindowsMotionController = WindowsMotionController;

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 5818 - 5811
dist/preview release/babylon.module.d.ts


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 42 - 42
dist/preview release/babylon.worker.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 4377 - 4371
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 39 - 39
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1971 - 1953
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 4377 - 4371
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3 - 3
dist/preview release/gui/babylon.gui.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 263 - 263
dist/preview release/inspector/babylon.inspector.bundle.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3 - 3
dist/preview release/inspector/babylon.inspector.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 2
dist/preview release/loaders/babylon.glTF1FileLoader.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/loaders/babylon.glTF2FileLoader.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 2
dist/preview release/loaders/babylon.glTFFileLoader.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/loaders/babylon.objFileLoader.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/materialsLibrary/babylon.customMaterial.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.min.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.min.js


+ 4 - 1
src/Gamepad/Controllers/babylon.genericController.ts

@@ -1,12 +1,15 @@
 module BABYLON {
     
     export class GenericController extends WebVRController {
+        public static readonly MODEL_BASE_URL:string = 'https://controllers.babylonjs.com/generic/';
+        public static readonly MODEL_FILENAME:string = 'generic.babylon';
+
         constructor(vrGamepad) {
             super(vrGamepad);
         }
 
         public initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void) {
-            SceneLoader.ImportMesh("", "http://yoda.blob.core.windows.net/models/", "genericvrcontroller.babylon", scene, (newMeshes) => {
+            SceneLoader.ImportMesh("", GenericController.MODEL_BASE_URL, GenericController.MODEL_FILENAME, scene, (newMeshes) => {
                 this._defaultModel = newMeshes[1];
                 if (meshLoaded) {
                     meshLoaded(this._defaultModel);

+ 15 - 2
src/Gamepad/Controllers/babylon.oculusTouchController.ts

@@ -1,6 +1,10 @@
 module BABYLON {
 
     export class OculusTouchController extends WebVRController {
+        private static readonly MODEL_BASE_URL:string = 'https://controllers.babylonjs.com/oculus/';
+        private static readonly MODEL_LEFT_FILENAME:string = 'left.babylon';
+        private static readonly MODEL_RIGHT_FILENAME:string = 'right.babylon';
+
         public onSecondaryTriggerStateChangedObservable = new Observable<ExtendedGamepadButton>();
 
         public onThumbRestChangedObservable = new Observable<ExtendedGamepadButton>();
@@ -11,8 +15,17 @@ module BABYLON {
         }
 
         public initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void) {
-            let meshName = this.hand === 'right' ? 'RightTouch.babylon' : 'LeftTouch.babylon';
-            SceneLoader.ImportMesh("", "http://yoda.blob.core.windows.net/models/", meshName, scene, (newMeshes) => {
+            let meshName;
+
+            // Hand
+            if (this.hand === 'left') {
+                meshName = OculusTouchController.MODEL_LEFT_FILENAME;
+            }
+            else { // Right is the default if no hand is specified
+                meshName = OculusTouchController.MODEL_RIGHT_FILENAME;
+            }
+
+            SceneLoader.ImportMesh("", OculusTouchController.MODEL_BASE_URL, meshName, scene, (newMeshes) => {
                 /*
                 Parent Mesh name: oculus_touch_left
                 - body

+ 3 - 1
src/Gamepad/Controllers/babylon.viveController.ts

@@ -1,6 +1,8 @@
 module BABYLON {
 
     export class ViveController extends WebVRController {
+        private static readonly MODEL_BASE_URL:string = 'https://controllers.babylonjs.com/vive/';
+        private static readonly MODEL_FILENAME:string = 'wand.babylon';
 
         constructor(vrGamepad) {
             super(vrGamepad);
@@ -8,7 +10,7 @@ module BABYLON {
         }
 
         public initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void) {
-            SceneLoader.ImportMesh("", "http://yoda.blob.core.windows.net/models/", "ViveWand.babylon", scene, (newMeshes) => {
+            SceneLoader.ImportMesh("", ViveController.MODEL_BASE_URL, ViveController.MODEL_FILENAME, scene, (newMeshes) => {
                 /*
                 Parent Mesh name: ViveWand
                 - body

+ 2 - 2
src/Gamepad/Controllers/babylon.windowsMotionController.ts

@@ -201,8 +201,8 @@ module BABYLON {
                 path = WindowsMotionController.MODEL_BASE_URL + device + '/';
             } else {
                 Tools.Warn("You need to reference GLTF loader to load Windows Motion Controllers model. Falling back to generic models");
-                path = "http://yoda.blob.core.windows.net/models/";
-                filename = "genericvrcontroller.babylon";
+                path = GenericController.MODEL_BASE_URL;
+                filename = GenericController.MODEL_FILENAME;
             }