David Catuhe 6 년 전
부모
커밋
be046f0ac6
23개의 변경된 파일628개의 추가작업 그리고 100개의 파일을 삭제
  1. 56 1
      Playground/babylon.d.txt
  2. 58 1
      dist/preview release/babylon.d.ts
  3. 1 1
      dist/preview release/babylon.js
  4. 165 29
      dist/preview release/babylon.max.js
  5. 1 1
      dist/preview release/babylon.max.js.map
  6. 116 2
      dist/preview release/babylon.module.d.ts
  7. 6 6
      dist/preview release/inspector/babylon.inspector.bundle.js
  8. 36 17
      dist/preview release/inspector/babylon.inspector.bundle.max.js
  9. 1 1
      dist/preview release/inspector/babylon.inspector.bundle.max.js.map
  10. 5 0
      dist/preview release/inspector/babylon.inspector.d.ts
  11. 10 0
      dist/preview release/inspector/babylon.inspector.module.d.ts
  12. 1 1
      dist/preview release/packagesSizeBaseLine.json
  13. 116 2
      dist/preview release/viewer/babylon.module.d.ts
  14. 13 13
      dist/preview release/viewer/babylon.viewer.js
  15. 1 1
      dist/preview release/viewer/babylon.viewer.max.js
  16. 11 2
      inspector/src/components/actionTabs/lines/sliderLineComponent.tsx
  17. 5 3
      inspector/src/components/actionTabs/lines/textureLinkLineComponent.tsx
  18. 3 1
      inspector/src/components/actionTabs/tabs/propertyGrids/materials/backgroundMaterialPropertyGridComponent.tsx
  19. 13 14
      inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrMaterialPropertyGridComponent.tsx
  20. 3 1
      inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrMetallicRoughnessMaterialPropertyGridComponent.tsx
  21. 3 1
      inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrSpecularGlossinessMaterialPropertyGridComponent.tsx
  22. 3 1
      inspector/src/components/actionTabs/tabs/propertyGrids/materials/standardMaterialPropertyGridComponent.tsx
  23. 1 1
      inspector/src/tools.ts

+ 56 - 1
Playground/babylon.d.txt

@@ -29268,6 +29268,16 @@ declare module BABYLON {
          * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
          */
         dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
+        /** @hidden */
isLeftCamera: boolean;
+        /**
+         * Gets the left camera of a rig setup in case of Rigged Camera
+         */
+        readonly isLeftCamera: boolean;
+        /** @hidden */
isRightCamera: boolean;
+        /**
+         * Gets the right camera of a rig setup in case of Rigged Camera
+         */
+        readonly isRightCamera: boolean;
         /**
          * Gets the left camera of a rig setup in case of Rigged Camera
          */
@@ -37668,6 +37678,13 @@ declare module BABYLON {
         */
         toneMappingEnabled: boolean;
         /**
+         * Gets the type of tone mapping effect.
+         */
+        /**
+        * Sets the type of tone mapping effect.
+        */
+        toneMappingType: number;
+        /**
          * Gets contrast used in the effect.
          */
         /**
@@ -38068,6 +38085,15 @@ declare module BABYLON {
         vrDeviceOrientationCameraMetrics?: VRCameraMetrics;
     }
     /**
+     * Event containing information after VR has been entered
+     */
+    export class OnAfterEnteringVRObservableEvent {
+        /**
+         * If entering vr was successful
+         */
+        success: boolean;
+    }
+    /**
      * Helps to quickly add VR support to an existing scene.
      * See http://doc.babylonjs.com/how_to/webvr_helper
      */
@@ -38095,10 +38121,14 @@ declare module BABYLON {
         private _onVRRequestPresentStart;
         private _onVRRequestPresentComplete;
         /**
-         * Observable raised when entering VR.
+         * Observable raised right before entering VR.
          */
         onEnteringVRObservable: Observable<VRExperienceHelper>;
         /**
+         * Observable raised when entering VR has completed.
+         */
+        onAfterEnteringVRObservable: Observable<OnAfterEnteringVRObservableEvent>;
+        /**
          * Observable raised when exiting VR.
          */
         onExitingVRObservable: Observable<VRExperienceHelper>;
@@ -43202,6 +43232,18 @@ declare module BABYLON {
      * Potential additions to this helper include zoom and and non-infinite distance rendering effects.
      */
     export class VideoDome extends TransformNode {
+        /**
+         * Define the video source as a Monoscopic panoramic 360 video.
+         */
+        static readonly MODE_MONOSCOPIC: number;
+        /**
+         * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         */
+        static readonly MODE_TOPBOTTOM: number;
+        /**
+         * Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        static readonly MODE_SIDEBYSIDE: number;
         private _useDirectMapping;
         /**
          * The video texture being displayed on the sphere
@@ -43224,6 +43266,18 @@ declare module BABYLON {
          * Also see the options.resolution property.
          */
         fovMultiplier: number;
+        private _videoMode;
+        /**
+         * Gets or set the current video mode for the video. It can be:
+         * * VideoDome.MODE_MONOSCOPIC : Define the video source as a Monoscopic panoramic 360 video.
+         * * VideoDome.MODE_TOPBOTTOM  : Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         * * VideoDome.MODE_SIDEBYSIDE : Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        videoMode: number;
+        /**
+         * Oberserver used in Stereoscopic VR Mode.
+         */
+        private _onBeforeCameraRenderObserver;
         /**
          * Create an instance of this class and pass through the parameters to the relevant classes, VideoTexture, StandardMaterial, and Mesh.
          * @param name Element's name, child elements will append suffixes for their own names.
@@ -43239,6 +43293,7 @@ declare module BABYLON {
             poster?: string;
             useDirectMapping?: boolean;
         }, scene: Scene);
+        private _changeVideoMode;
         /**
          * Releases resources associated with this node.
          * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)

+ 58 - 1
dist/preview release/babylon.d.ts

@@ -29767,6 +29767,18 @@ declare module BABYLON {
          * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
          */
         dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
+        /** @hidden */
+        _isLeftCamera: boolean;
+        /**
+         * Gets the left camera of a rig setup in case of Rigged Camera
+         */
+        readonly isLeftCamera: boolean;
+        /** @hidden */
+        _isRightCamera: boolean;
+        /**
+         * Gets the right camera of a rig setup in case of Rigged Camera
+         */
+        readonly isRightCamera: boolean;
         /**
          * Gets the left camera of a rig setup in case of Rigged Camera
          */
@@ -38270,6 +38282,13 @@ declare module BABYLON {
         */
         toneMappingEnabled: boolean;
         /**
+         * Gets the type of tone mapping effect.
+         */
+        /**
+        * Sets the type of tone mapping effect.
+        */
+        toneMappingType: number;
+        /**
          * Gets contrast used in the effect.
          */
         /**
@@ -38673,6 +38692,15 @@ declare module BABYLON {
         vrDeviceOrientationCameraMetrics?: VRCameraMetrics;
     }
     /**
+     * Event containing information after VR has been entered
+     */
+    export class OnAfterEnteringVRObservableEvent {
+        /**
+         * If entering vr was successful
+         */
+        success: boolean;
+    }
+    /**
      * Helps to quickly add VR support to an existing scene.
      * See http://doc.babylonjs.com/how_to/webvr_helper
      */
@@ -38700,10 +38728,14 @@ declare module BABYLON {
         private _onVRRequestPresentStart;
         private _onVRRequestPresentComplete;
         /**
-         * Observable raised when entering VR.
+         * Observable raised right before entering VR.
          */
         onEnteringVRObservable: Observable<VRExperienceHelper>;
         /**
+         * Observable raised when entering VR has completed.
+         */
+        onAfterEnteringVRObservable: Observable<OnAfterEnteringVRObservableEvent>;
+        /**
          * Observable raised when exiting VR.
          */
         onExitingVRObservable: Observable<VRExperienceHelper>;
@@ -43846,6 +43878,18 @@ declare module BABYLON {
      * Potential additions to this helper include zoom and and non-infinite distance rendering effects.
      */
     export class VideoDome extends TransformNode {
+        /**
+         * Define the video source as a Monoscopic panoramic 360 video.
+         */
+        static readonly MODE_MONOSCOPIC: number;
+        /**
+         * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         */
+        static readonly MODE_TOPBOTTOM: number;
+        /**
+         * Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        static readonly MODE_SIDEBYSIDE: number;
         private _useDirectMapping;
         /**
          * The video texture being displayed on the sphere
@@ -43868,6 +43912,18 @@ declare module BABYLON {
          * Also see the options.resolution property.
          */
         fovMultiplier: number;
+        private _videoMode;
+        /**
+         * Gets or set the current video mode for the video. It can be:
+         * * VideoDome.MODE_MONOSCOPIC : Define the video source as a Monoscopic panoramic 360 video.
+         * * VideoDome.MODE_TOPBOTTOM  : Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         * * VideoDome.MODE_SIDEBYSIDE : Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        videoMode: number;
+        /**
+         * Oberserver used in Stereoscopic VR Mode.
+         */
+        private _onBeforeCameraRenderObserver;
         /**
          * Create an instance of this class and pass through the parameters to the relevant classes, VideoTexture, StandardMaterial, and Mesh.
          * @param name Element's name, child elements will append suffixes for their own names.
@@ -43883,6 +43939,7 @@ declare module BABYLON {
             poster?: string;
             useDirectMapping?: boolean;
         }, scene: Scene);
+        private _changeVideoMode;
         /**
          * Releases resources associated with this node.
          * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/preview release/babylon.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 165 - 29
dist/preview release/babylon.max.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/preview release/babylon.max.js.map


+ 116 - 2
dist/preview release/babylon.module.d.ts

@@ -30483,6 +30483,18 @@ declare module "babylonjs/Cameras/camera" {
          * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
          */
         dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
+        /** @hidden */
+        _isLeftCamera: boolean;
+        /**
+         * Gets the left camera of a rig setup in case of Rigged Camera
+         */
+        readonly isLeftCamera: boolean;
+        /** @hidden */
+        _isRightCamera: boolean;
+        /**
+         * Gets the right camera of a rig setup in case of Rigged Camera
+         */
+        readonly isRightCamera: boolean;
         /**
          * Gets the left camera of a rig setup in case of Rigged Camera
          */
@@ -39466,6 +39478,13 @@ declare module "babylonjs/PostProcesses/imageProcessingPostProcess" {
         */
         toneMappingEnabled: boolean;
         /**
+         * Gets the type of tone mapping effect.
+         */
+        /**
+        * Sets the type of tone mapping effect.
+        */
+        toneMappingType: number;
+        /**
          * Gets contrast used in the effect.
          */
         /**
@@ -39909,6 +39928,15 @@ declare module "babylonjs/Cameras/VR/vrExperienceHelper" {
         vrDeviceOrientationCameraMetrics?: VRCameraMetrics;
     }
     /**
+     * Event containing information after VR has been entered
+     */
+    export class OnAfterEnteringVRObservableEvent {
+        /**
+         * If entering vr was successful
+         */
+        success: boolean;
+    }
+    /**
      * Helps to quickly add VR support to an existing scene.
      * See http://doc.babylonjs.com/how_to/webvr_helper
      */
@@ -39936,10 +39964,14 @@ declare module "babylonjs/Cameras/VR/vrExperienceHelper" {
         private _onVRRequestPresentStart;
         private _onVRRequestPresentComplete;
         /**
-         * Observable raised when entering VR.
+         * Observable raised right before entering VR.
          */
         onEnteringVRObservable: Observable<VRExperienceHelper>;
         /**
+         * Observable raised when entering VR has completed.
+         */
+        onAfterEnteringVRObservable: Observable<OnAfterEnteringVRObservableEvent>;
+        /**
          * Observable raised when exiting VR.
          */
         onExitingVRObservable: Observable<VRExperienceHelper>;
@@ -45582,6 +45614,18 @@ declare module "babylonjs/Helpers/videoDome" {
      * Potential additions to this helper include zoom and and non-infinite distance rendering effects.
      */
     export class VideoDome extends TransformNode {
+        /**
+         * Define the video source as a Monoscopic panoramic 360 video.
+         */
+        static readonly MODE_MONOSCOPIC: number;
+        /**
+         * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         */
+        static readonly MODE_TOPBOTTOM: number;
+        /**
+         * Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        static readonly MODE_SIDEBYSIDE: number;
         private _useDirectMapping;
         /**
          * The video texture being displayed on the sphere
@@ -45604,6 +45648,18 @@ declare module "babylonjs/Helpers/videoDome" {
          * Also see the options.resolution property.
          */
         fovMultiplier: number;
+        private _videoMode;
+        /**
+         * Gets or set the current video mode for the video. It can be:
+         * * VideoDome.MODE_MONOSCOPIC : Define the video source as a Monoscopic panoramic 360 video.
+         * * VideoDome.MODE_TOPBOTTOM  : Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         * * VideoDome.MODE_SIDEBYSIDE : Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        videoMode: number;
+        /**
+         * Oberserver used in Stereoscopic VR Mode.
+         */
+        private _onBeforeCameraRenderObserver;
         /**
          * Create an instance of this class and pass through the parameters to the relevant classes, VideoTexture, StandardMaterial, and Mesh.
          * @param name Element's name, child elements will append suffixes for their own names.
@@ -45619,6 +45675,7 @@ declare module "babylonjs/Helpers/videoDome" {
             poster?: string;
             useDirectMapping?: boolean;
         }, scene: Scene);
+        private _changeVideoMode;
         /**
          * Releases resources associated with this node.
          * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)
@@ -87045,6 +87102,18 @@ declare module BABYLON {
          * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
          */
         dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
+        /** @hidden */
+        _isLeftCamera: boolean;
+        /**
+         * Gets the left camera of a rig setup in case of Rigged Camera
+         */
+        readonly isLeftCamera: boolean;
+        /** @hidden */
+        _isRightCamera: boolean;
+        /**
+         * Gets the right camera of a rig setup in case of Rigged Camera
+         */
+        readonly isRightCamera: boolean;
         /**
          * Gets the left camera of a rig setup in case of Rigged Camera
          */
@@ -95548,6 +95617,13 @@ declare module BABYLON {
         */
         toneMappingEnabled: boolean;
         /**
+         * Gets the type of tone mapping effect.
+         */
+        /**
+        * Sets the type of tone mapping effect.
+        */
+        toneMappingType: number;
+        /**
          * Gets contrast used in the effect.
          */
         /**
@@ -95951,6 +96027,15 @@ declare module BABYLON {
         vrDeviceOrientationCameraMetrics?: VRCameraMetrics;
     }
     /**
+     * Event containing information after VR has been entered
+     */
+    export class OnAfterEnteringVRObservableEvent {
+        /**
+         * If entering vr was successful
+         */
+        success: boolean;
+    }
+    /**
      * Helps to quickly add VR support to an existing scene.
      * See http://doc.babylonjs.com/how_to/webvr_helper
      */
@@ -95978,10 +96063,14 @@ declare module BABYLON {
         private _onVRRequestPresentStart;
         private _onVRRequestPresentComplete;
         /**
-         * Observable raised when entering VR.
+         * Observable raised right before entering VR.
          */
         onEnteringVRObservable: Observable<VRExperienceHelper>;
         /**
+         * Observable raised when entering VR has completed.
+         */
+        onAfterEnteringVRObservable: Observable<OnAfterEnteringVRObservableEvent>;
+        /**
          * Observable raised when exiting VR.
          */
         onExitingVRObservable: Observable<VRExperienceHelper>;
@@ -101124,6 +101213,18 @@ declare module BABYLON {
      * Potential additions to this helper include zoom and and non-infinite distance rendering effects.
      */
     export class VideoDome extends TransformNode {
+        /**
+         * Define the video source as a Monoscopic panoramic 360 video.
+         */
+        static readonly MODE_MONOSCOPIC: number;
+        /**
+         * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         */
+        static readonly MODE_TOPBOTTOM: number;
+        /**
+         * Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        static readonly MODE_SIDEBYSIDE: number;
         private _useDirectMapping;
         /**
          * The video texture being displayed on the sphere
@@ -101146,6 +101247,18 @@ declare module BABYLON {
          * Also see the options.resolution property.
          */
         fovMultiplier: number;
+        private _videoMode;
+        /**
+         * Gets or set the current video mode for the video. It can be:
+         * * VideoDome.MODE_MONOSCOPIC : Define the video source as a Monoscopic panoramic 360 video.
+         * * VideoDome.MODE_TOPBOTTOM  : Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         * * VideoDome.MODE_SIDEBYSIDE : Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        videoMode: number;
+        /**
+         * Oberserver used in Stereoscopic VR Mode.
+         */
+        private _onBeforeCameraRenderObserver;
         /**
          * Create an instance of this class and pass through the parameters to the relevant classes, VideoTexture, StandardMaterial, and Mesh.
          * @param name Element's name, child elements will append suffixes for their own names.
@@ -101161,6 +101274,7 @@ declare module BABYLON {
             poster?: string;
             useDirectMapping?: boolean;
         }, scene: Scene);
+        private _changeVideoMode;
         /**
          * Releases resources associated with this node.
          * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 6 - 6
dist/preview release/inspector/babylon.inspector.bundle.js


+ 36 - 17
dist/preview release/inspector/babylon.inspector.bundle.max.js

@@ -34157,7 +34157,11 @@ var SliderLineComponent = /** @class */ (function (_super) {
             };
         }
         else {
-            _this.state = { value: _this.props.target[_this.props.propertyName] };
+            var value = _this.props.target[_this.props.propertyName];
+            if (value === undefined) {
+                value = _this.props.maximum;
+            }
+            _this.state = { value: value };
         }
         return _this;
     }
@@ -34167,6 +34171,9 @@ var SliderLineComponent = /** @class */ (function (_super) {
             return true;
         }
         var currentState = nextProps.target[nextProps.propertyName];
+        if (currentState === undefined) {
+            currentState = nextProps.maximum;
+        }
         if (currentState !== nextState.value || this._localChange) {
             nextState.value = currentState;
             this._localChange = false;
@@ -34551,12 +34558,13 @@ var TextureLinkLineComponent = /** @class */ (function (_super) {
     TextureLinkLineComponent.prototype.debugTexture = function () {
         var texture = this.props.texture;
         var material = this.props.material;
-        if (!material) {
+        if (!material || !texture) {
             return;
         }
         var scene = material.getScene();
         if (material.reservedDataStore && material.reservedDataStore.debugTexture === texture) {
             var debugMaterial_1 = material.reservedDataStore.debugMaterial;
+            texture.level = material.reservedDataStore.level;
             for (var _i = 0, _a = scene.meshes; _i < _a.length; _i++) {
                 var mesh = _a[_i];
                 if (mesh.material === debugMaterial_1) {
@@ -34592,6 +34600,8 @@ var TextureLinkLineComponent = /** @class */ (function (_super) {
         }
         material.reservedDataStore.debugTexture = texture;
         material.reservedDataStore.debugMaterial = debugMaterial;
+        material.reservedDataStore.level = texture.level;
+        texture.level = 1.0;
         if (this.props.onDebugSelectionChangeObservable) {
             this.props.onDebugSelectionChangeObservable.notifyObservers(texture);
         }
@@ -36913,11 +36923,13 @@ __webpack_require__.r(__webpack_exports__);
 var BackgroundMaterialPropertyGridComponent = /** @class */ (function (_super) {
     tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BackgroundMaterialPropertyGridComponent, _super);
     function BackgroundMaterialPropertyGridComponent(props) {
-        return _super.call(this, props) || this;
+        var _this = _super.call(this, props) || this;
+        _this._onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        return _this;
     }
     BackgroundMaterialPropertyGridComponent.prototype.renderTextures = function () {
         var material = this.props.material;
-        var onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        var onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
         return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { globalState: this.props.globalState, title: "TEXTURES" },
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Diffuse", texture: material.diffuseTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Reflection", texture: material.reflectionTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
@@ -37098,7 +37110,9 @@ __webpack_require__.r(__webpack_exports__);
 var PBRMaterialPropertyGridComponent = /** @class */ (function (_super) {
     tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PBRMaterialPropertyGridComponent, _super);
     function PBRMaterialPropertyGridComponent(props) {
-        return _super.call(this, props) || this;
+        var _this = _super.call(this, props) || this;
+        _this._onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        return _this;
     }
     PBRMaterialPropertyGridComponent.prototype.renderTextures = function (onDebugSelectionChangeObservable) {
         var material = this.props.material;
@@ -37120,10 +37134,9 @@ var PBRMaterialPropertyGridComponent = /** @class */ (function (_super) {
     PBRMaterialPropertyGridComponent.prototype.render = function () {
         var _this = this;
         var material = this.props.material;
-        var onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
         return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "pane" },
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commonMaterialPropertyGridComponent__WEBPACK_IMPORTED_MODULE_7__["CommonMaterialPropertyGridComponent"], { globalState: this.props.globalState, lockObject: this.props.lockObject, material: material, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
-            this.renderTextures(onDebugSelectionChangeObservable),
+            this.renderTextures(this._onDebugSelectionChangeObservable),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { globalState: this.props.globalState, title: "LIGHTING & COLORS" },
                 react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_color3LineComponent__WEBPACK_IMPORTED_MODULE_4__["Color3LineComponent"], { label: "Albedo", target: material, propertyName: "albedoColor", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
                 react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_color3LineComponent__WEBPACK_IMPORTED_MODULE_4__["Color3LineComponent"], { label: "Reflectivity", target: material, propertyName: "reflectivityColor", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
@@ -37140,8 +37153,8 @@ var PBRMaterialPropertyGridComponent = /** @class */ (function (_super) {
                         react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_6__["SliderLineComponent"], { label: "Intensity", target: material.clearCoat, propertyName: "intensity", minimum: 0, maximum: 1, step: 0.01, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
                         react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_6__["SliderLineComponent"], { label: "Roughness", target: material.clearCoat, propertyName: "roughness", minimum: 0, maximum: 1, step: 0.01, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
                         react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_6__["SliderLineComponent"], { label: "IOR", target: material.clearCoat, propertyName: "indiceOfRefraction", minimum: 1.0, maximum: 3, step: 0.01, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
-                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Texture", texture: material.clearCoat.texture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
-                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Bump", texture: material.clearCoat.bumpTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
+                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Texture", texture: material.clearCoat.texture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: this._onDebugSelectionChangeObservable }),
+                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Bump", texture: material.clearCoat.bumpTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: this._onDebugSelectionChangeObservable }),
                         material.clearCoat.bumpTexture &&
                             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_6__["SliderLineComponent"], { label: "Bump strength", target: material.clearCoat.bumpTexture, propertyName: "level", minimum: 0, maximum: 2, step: 0.01, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
                         react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_5__["CheckBoxLineComponent"], { label: "Tint", target: material.clearCoat, propertyName: "isTintEnabled", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
@@ -37152,7 +37165,7 @@ var PBRMaterialPropertyGridComponent = /** @class */ (function (_super) {
                         material.clearCoat.isEnabled && material.clearCoat.isTintEnabled &&
                             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_6__["SliderLineComponent"], { label: "Tint Thickness", target: material.clearCoat, propertyName: "tintThickness", minimum: 0, maximum: 20, step: 0.1, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
                         material.clearCoat.isEnabled && material.clearCoat.isTintEnabled &&
-                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Tint Texture", texture: material.clearCoat.tintTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }))),
+                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_8__["TextureLinkLineComponent"], { label: "Tint Texture", texture: material.clearCoat.tintTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: this._onDebugSelectionChangeObservable }))),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { globalState: this.props.globalState, title: "ANISOTROPIC" },
                 react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_5__["CheckBoxLineComponent"], { label: "Enabled", target: material.anisotropy, propertyName: "isEnabled", onValueChanged: function () { return _this.forceUpdate(); }, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
                 material.anisotropy.isEnabled &&
@@ -37221,14 +37234,16 @@ __webpack_require__.r(__webpack_exports__);
 var PBRMetallicRoughnessMaterialPropertyGridComponent = /** @class */ (function (_super) {
     tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PBRMetallicRoughnessMaterialPropertyGridComponent, _super);
     function PBRMetallicRoughnessMaterialPropertyGridComponent(props) {
-        return _super.call(this, props) || this;
+        var _this = _super.call(this, props) || this;
+        _this._onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        return _this;
     }
     PBRMetallicRoughnessMaterialPropertyGridComponent.prototype.renderTextures = function () {
         var material = this.props.material;
         if (material.getActiveTextures().length === 0) {
             return null;
         }
-        var onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        var onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
         return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { globalState: this.props.globalState, title: "TEXTURES" },
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_7__["TextureLinkLineComponent"], { label: "Base", texture: material.baseTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_7__["TextureLinkLineComponent"], { label: "Metallic roughness", texture: material.metallicRoughnessTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
@@ -37286,14 +37301,16 @@ __webpack_require__.r(__webpack_exports__);
 var PBRSpecularGlossinessMaterialPropertyGridComponent = /** @class */ (function (_super) {
     tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PBRSpecularGlossinessMaterialPropertyGridComponent, _super);
     function PBRSpecularGlossinessMaterialPropertyGridComponent(props) {
-        return _super.call(this, props) || this;
+        var _this = _super.call(this, props) || this;
+        _this._onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        return _this;
     }
     PBRSpecularGlossinessMaterialPropertyGridComponent.prototype.renderTextures = function () {
         var material = this.props.material;
         if (material.getActiveTextures().length === 0) {
             return null;
         }
-        var onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        var onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
         return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { globalState: this.props.globalState, title: "TEXTURES" },
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_7__["TextureLinkLineComponent"], { label: "Diffuse", texture: material.diffuseTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_7__["TextureLinkLineComponent"], { label: "Specular glossiness", texture: material.specularGlossinessTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
@@ -37350,14 +37367,16 @@ __webpack_require__.r(__webpack_exports__);
 var StandardMaterialPropertyGridComponent = /** @class */ (function (_super) {
     tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](StandardMaterialPropertyGridComponent, _super);
     function StandardMaterialPropertyGridComponent(props) {
-        return _super.call(this, props) || this;
+        var _this = _super.call(this, props) || this;
+        _this._onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        return _this;
     }
     StandardMaterialPropertyGridComponent.prototype.renderTextures = function () {
         var material = this.props.material;
         if (material.getActiveTextures().length === 0) {
             return null;
         }
-        var onDebugSelectionChangeObservable = new babylonjs_Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]();
+        var onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
         return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { globalState: this.props.globalState, title: "TEXTURES" },
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_7__["TextureLinkLineComponent"], { label: "Diffuse", texture: material.diffuseTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_lines_textureLinkLineComponent__WEBPACK_IMPORTED_MODULE_7__["TextureLinkLineComponent"], { label: "Specular", texture: material.specularTexture, material: material, onSelectionChangedObservable: this.props.onSelectionChangedObservable, onDebugSelectionChangeObservable: onDebugSelectionChangeObservable }),
@@ -41654,7 +41673,7 @@ var Tools = /** @class */ (function () {
                     result.push(m);
                 });
             }
-            else {
+            else if (!i.reservedDataStore || !i.reservedDataStore.hidden) {
                 result.push(i);
             }
         }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/preview release/inspector/babylon.inspector.bundle.max.js.map


+ 5 - 0
dist/preview release/inspector/babylon.inspector.d.ts

@@ -340,6 +340,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class StandardMaterialPropertyGridComponent extends React.Component<IStandardMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IStandardMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -438,6 +439,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRMaterialPropertyGridComponentProps);
         renderTextures(onDebugSelectionChangeObservable: BABYLON.Observable<BABYLON.BaseTexture>): JSX.Element | null;
         render(): JSX.Element;
@@ -691,6 +693,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class BackgroundMaterialPropertyGridComponent extends React.Component<IBackgroundMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IBackgroundMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element;
         render(): JSX.Element;
@@ -950,6 +953,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Component<IPBRMetallicRoughnessMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRMetallicRoughnessMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -964,6 +968,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Component<IPBRSpecularGlossinessMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRSpecularGlossinessMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;

+ 10 - 0
dist/preview release/inspector/babylon.inspector.module.d.ts

@@ -403,6 +403,7 @@ declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/mat
         onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
     }
     export class StandardMaterialPropertyGridComponent extends React.Component<IStandardMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IStandardMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -522,6 +523,7 @@ declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/mat
         onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
     }
     export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRMaterialPropertyGridComponentProps);
         renderTextures(onDebugSelectionChangeObservable: Observable<BaseTexture>): JSX.Element | null;
         render(): JSX.Element;
@@ -861,6 +863,7 @@ declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/mat
         onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
     }
     export class BackgroundMaterialPropertyGridComponent extends React.Component<IBackgroundMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IBackgroundMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element;
         render(): JSX.Element;
@@ -1228,6 +1231,7 @@ declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/mat
         onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
     }
     export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Component<IPBRMetallicRoughnessMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRMetallicRoughnessMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -1248,6 +1252,7 @@ declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/mat
         onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
     }
     export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Component<IPBRSpecularGlossinessMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRSpecularGlossinessMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -2475,6 +2480,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class StandardMaterialPropertyGridComponent extends React.Component<IStandardMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IStandardMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -2573,6 +2579,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRMaterialPropertyGridComponentProps);
         renderTextures(onDebugSelectionChangeObservable: BABYLON.Observable<BABYLON.BaseTexture>): JSX.Element | null;
         render(): JSX.Element;
@@ -2826,6 +2833,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class BackgroundMaterialPropertyGridComponent extends React.Component<IBackgroundMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IBackgroundMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element;
         render(): JSX.Element;
@@ -3085,6 +3093,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Component<IPBRMetallicRoughnessMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRMetallicRoughnessMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;
@@ -3099,6 +3108,7 @@ declare module INSPECTOR {
         onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
     }
     export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Component<IPBRSpecularGlossinessMaterialPropertyGridComponentProps> {
+        private _onDebugSelectionChangeObservable;
         constructor(props: IPBRSpecularGlossinessMaterialPropertyGridComponentProps);
         renderTextures(): JSX.Element | null;
         render(): JSX.Element;

+ 1 - 1
dist/preview release/packagesSizeBaseLine.json

@@ -1 +1 @@
-{"engineOnly":304232,"sceneOnly":504997,"minGridMaterial":624489,"minStandardMaterial":746950}
+{"engineOnly":304232,"sceneOnly":505339,"minGridMaterial":624831,"minStandardMaterial":747292}

+ 116 - 2
dist/preview release/viewer/babylon.module.d.ts

@@ -30483,6 +30483,18 @@ declare module "babylonjs/Cameras/camera" {
          * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
          */
         dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
+        /** @hidden */
+        _isLeftCamera: boolean;
+        /**
+         * Gets the left camera of a rig setup in case of Rigged Camera
+         */
+        readonly isLeftCamera: boolean;
+        /** @hidden */
+        _isRightCamera: boolean;
+        /**
+         * Gets the right camera of a rig setup in case of Rigged Camera
+         */
+        readonly isRightCamera: boolean;
         /**
          * Gets the left camera of a rig setup in case of Rigged Camera
          */
@@ -39466,6 +39478,13 @@ declare module "babylonjs/PostProcesses/imageProcessingPostProcess" {
         */
         toneMappingEnabled: boolean;
         /**
+         * Gets the type of tone mapping effect.
+         */
+        /**
+        * Sets the type of tone mapping effect.
+        */
+        toneMappingType: number;
+        /**
          * Gets contrast used in the effect.
          */
         /**
@@ -39909,6 +39928,15 @@ declare module "babylonjs/Cameras/VR/vrExperienceHelper" {
         vrDeviceOrientationCameraMetrics?: VRCameraMetrics;
     }
     /**
+     * Event containing information after VR has been entered
+     */
+    export class OnAfterEnteringVRObservableEvent {
+        /**
+         * If entering vr was successful
+         */
+        success: boolean;
+    }
+    /**
      * Helps to quickly add VR support to an existing scene.
      * See http://doc.babylonjs.com/how_to/webvr_helper
      */
@@ -39936,10 +39964,14 @@ declare module "babylonjs/Cameras/VR/vrExperienceHelper" {
         private _onVRRequestPresentStart;
         private _onVRRequestPresentComplete;
         /**
-         * Observable raised when entering VR.
+         * Observable raised right before entering VR.
          */
         onEnteringVRObservable: Observable<VRExperienceHelper>;
         /**
+         * Observable raised when entering VR has completed.
+         */
+        onAfterEnteringVRObservable: Observable<OnAfterEnteringVRObservableEvent>;
+        /**
          * Observable raised when exiting VR.
          */
         onExitingVRObservable: Observable<VRExperienceHelper>;
@@ -45582,6 +45614,18 @@ declare module "babylonjs/Helpers/videoDome" {
      * Potential additions to this helper include zoom and and non-infinite distance rendering effects.
      */
     export class VideoDome extends TransformNode {
+        /**
+         * Define the video source as a Monoscopic panoramic 360 video.
+         */
+        static readonly MODE_MONOSCOPIC: number;
+        /**
+         * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         */
+        static readonly MODE_TOPBOTTOM: number;
+        /**
+         * Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        static readonly MODE_SIDEBYSIDE: number;
         private _useDirectMapping;
         /**
          * The video texture being displayed on the sphere
@@ -45604,6 +45648,18 @@ declare module "babylonjs/Helpers/videoDome" {
          * Also see the options.resolution property.
          */
         fovMultiplier: number;
+        private _videoMode;
+        /**
+         * Gets or set the current video mode for the video. It can be:
+         * * VideoDome.MODE_MONOSCOPIC : Define the video source as a Monoscopic panoramic 360 video.
+         * * VideoDome.MODE_TOPBOTTOM  : Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         * * VideoDome.MODE_SIDEBYSIDE : Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        videoMode: number;
+        /**
+         * Oberserver used in Stereoscopic VR Mode.
+         */
+        private _onBeforeCameraRenderObserver;
         /**
          * Create an instance of this class and pass through the parameters to the relevant classes, VideoTexture, StandardMaterial, and Mesh.
          * @param name Element's name, child elements will append suffixes for their own names.
@@ -45619,6 +45675,7 @@ declare module "babylonjs/Helpers/videoDome" {
             poster?: string;
             useDirectMapping?: boolean;
         }, scene: Scene);
+        private _changeVideoMode;
         /**
          * Releases resources associated with this node.
          * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)
@@ -87045,6 +87102,18 @@ declare module BABYLON {
          * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
          */
         dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
+        /** @hidden */
+        _isLeftCamera: boolean;
+        /**
+         * Gets the left camera of a rig setup in case of Rigged Camera
+         */
+        readonly isLeftCamera: boolean;
+        /** @hidden */
+        _isRightCamera: boolean;
+        /**
+         * Gets the right camera of a rig setup in case of Rigged Camera
+         */
+        readonly isRightCamera: boolean;
         /**
          * Gets the left camera of a rig setup in case of Rigged Camera
          */
@@ -95548,6 +95617,13 @@ declare module BABYLON {
         */
         toneMappingEnabled: boolean;
         /**
+         * Gets the type of tone mapping effect.
+         */
+        /**
+        * Sets the type of tone mapping effect.
+        */
+        toneMappingType: number;
+        /**
          * Gets contrast used in the effect.
          */
         /**
@@ -95951,6 +96027,15 @@ declare module BABYLON {
         vrDeviceOrientationCameraMetrics?: VRCameraMetrics;
     }
     /**
+     * Event containing information after VR has been entered
+     */
+    export class OnAfterEnteringVRObservableEvent {
+        /**
+         * If entering vr was successful
+         */
+        success: boolean;
+    }
+    /**
      * Helps to quickly add VR support to an existing scene.
      * See http://doc.babylonjs.com/how_to/webvr_helper
      */
@@ -95978,10 +96063,14 @@ declare module BABYLON {
         private _onVRRequestPresentStart;
         private _onVRRequestPresentComplete;
         /**
-         * Observable raised when entering VR.
+         * Observable raised right before entering VR.
          */
         onEnteringVRObservable: Observable<VRExperienceHelper>;
         /**
+         * Observable raised when entering VR has completed.
+         */
+        onAfterEnteringVRObservable: Observable<OnAfterEnteringVRObservableEvent>;
+        /**
          * Observable raised when exiting VR.
          */
         onExitingVRObservable: Observable<VRExperienceHelper>;
@@ -101124,6 +101213,18 @@ declare module BABYLON {
      * Potential additions to this helper include zoom and and non-infinite distance rendering effects.
      */
     export class VideoDome extends TransformNode {
+        /**
+         * Define the video source as a Monoscopic panoramic 360 video.
+         */
+        static readonly MODE_MONOSCOPIC: number;
+        /**
+         * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         */
+        static readonly MODE_TOPBOTTOM: number;
+        /**
+         * Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        static readonly MODE_SIDEBYSIDE: number;
         private _useDirectMapping;
         /**
          * The video texture being displayed on the sphere
@@ -101146,6 +101247,18 @@ declare module BABYLON {
          * Also see the options.resolution property.
          */
         fovMultiplier: number;
+        private _videoMode;
+        /**
+         * Gets or set the current video mode for the video. It can be:
+         * * VideoDome.MODE_MONOSCOPIC : Define the video source as a Monoscopic panoramic 360 video.
+         * * VideoDome.MODE_TOPBOTTOM  : Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.
+         * * VideoDome.MODE_SIDEBYSIDE : Define the video source as a Stereoscopic Side by Side panoramic 360 video.
+         */
+        videoMode: number;
+        /**
+         * Oberserver used in Stereoscopic VR Mode.
+         */
+        private _onBeforeCameraRenderObserver;
         /**
          * Create an instance of this class and pass through the parameters to the relevant classes, VideoTexture, StandardMaterial, and Mesh.
          * @param name Element's name, child elements will append suffixes for their own names.
@@ -101161,6 +101274,7 @@ declare module BABYLON {
             poster?: string;
             useDirectMapping?: boolean;
         }, scene: Scene);
+        private _changeVideoMode;
         /**
          * Releases resources associated with this node.
          * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 13 - 13
dist/preview release/viewer/babylon.viewer.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 11 - 2
inspector/src/components/actionTabs/lines/sliderLineComponent.tsx

@@ -26,7 +26,12 @@ export class SliderLineComponent extends React.Component<ISliderLineComponentPro
                 value: this.props.directValue
             }
         } else {
-            this.state = { value: this.props.target![this.props.propertyName!] };
+            let value = this.props.target![this.props.propertyName!];
+
+            if (value === undefined) {
+                value = this.props.maximum;
+            }
+            this.state = { value: value };
         }
     }
 
@@ -35,7 +40,11 @@ export class SliderLineComponent extends React.Component<ISliderLineComponentPro
             nextState.value = nextProps.directValue;
             return true;
         }
-        const currentState = nextProps.target![nextProps.propertyName!];
+
+        let currentState = nextProps.target![nextProps.propertyName!];
+        if (currentState === undefined) {
+            currentState = nextProps.maximum;
+        }
 
         if (currentState !== nextState.value || this._localChange) {
             nextState.value = currentState;

+ 5 - 3
inspector/src/components/actionTabs/lines/textureLinkLineComponent.tsx

@@ -51,14 +51,14 @@ export class TextureLinkLineComponent extends React.Component<ITextureLinkLineCo
         const texture = this.props.texture;
         const material = this.props.material;
 
-        if (!material) {
+        if (!material || !texture) {
             return;
         }
         const scene = material.getScene();
 
         if (material.reservedDataStore && material.reservedDataStore.debugTexture === texture) {
             const debugMaterial = material.reservedDataStore.debugMaterial;
-
+            texture.level = material.reservedDataStore.level;
             for (var mesh of scene.meshes) {
                 if (mesh.material === debugMaterial) {
                     mesh.material = material;
@@ -82,7 +82,7 @@ export class TextureLinkLineComponent extends React.Component<ITextureLinkLineCo
         var debugMaterial = new StandardMaterial("debugMaterial", scene);
         debugMaterial.disableLighting = true;
         debugMaterial.sideOrientation = material.sideOrientation;
-        debugMaterial.emissiveTexture = texture!;
+        debugMaterial.emissiveTexture = texture;
         debugMaterial.forceDepthWrite = true;
         debugMaterial.reservedDataStore = { hidden: true };
 
@@ -98,6 +98,8 @@ export class TextureLinkLineComponent extends React.Component<ITextureLinkLineCo
 
         material.reservedDataStore.debugTexture = texture;
         material.reservedDataStore.debugMaterial = debugMaterial;
+        material.reservedDataStore.level = texture.level;
+        texture.level = 1.0;
 
         if (this.props.onDebugSelectionChangeObservable) {
             this.props.onDebugSelectionChangeObservable.notifyObservers(texture!);

+ 3 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/materials/backgroundMaterialPropertyGridComponent.tsx

@@ -23,6 +23,8 @@ interface IBackgroundMaterialPropertyGridComponentProps {
 }
 
 export class BackgroundMaterialPropertyGridComponent extends React.Component<IBackgroundMaterialPropertyGridComponentProps> {
+    private _onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+
     constructor(props: IBackgroundMaterialPropertyGridComponentProps) {
         super(props);
     }
@@ -30,7 +32,7 @@ export class BackgroundMaterialPropertyGridComponent extends React.Component<IBa
     renderTextures() {
         const material = this.props.material;
 
-        const onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+        const onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
 
         return (
             <LineContainerComponent globalState={this.props.globalState} title="TEXTURES">

+ 13 - 14
inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrMaterialPropertyGridComponent.tsx

@@ -23,6 +23,7 @@ interface IPBRMaterialPropertyGridComponentProps {
 }
 
 export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMaterialPropertyGridComponentProps> {
+    private _onDebugSelectionChangeObservable = new Observable<BaseTexture>();
     constructor(props: IPBRMaterialPropertyGridComponentProps) {
         super(props);
     }
@@ -34,7 +35,6 @@ export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMateri
             return null;
         }
 
-
         return (
             <LineContainerComponent globalState={this.props.globalState} title="TEXTURES">
                 <TextureLinkLineComponent label="Albedo" texture={material.albedoTexture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={onDebugSelectionChangeObservable} />
@@ -53,12 +53,11 @@ export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMateri
 
     render() {
         const material = this.props.material;
-        const onDebugSelectionChangeObservable = new Observable<BaseTexture>();
 
         return (
             <div className="pane">
                 <CommonMaterialPropertyGridComponent globalState={this.props.globalState} lockObject={this.props.lockObject} material={material} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
-                {this.renderTextures(onDebugSelectionChangeObservable)}
+                {this.renderTextures(this._onDebugSelectionChangeObservable)}
                 <LineContainerComponent globalState={this.props.globalState} title="LIGHTING & COLORS">
                     <Color3LineComponent label="Albedo" target={material} propertyName="albedoColor" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                     <Color3LineComponent label="Reflectivity" target={material} propertyName="reflectivityColor" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
@@ -71,17 +70,17 @@ export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMateri
                     <SliderLineComponent label="Roughness" target={material} propertyName="roughness" minimum={0} maximum={1} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                 </LineContainerComponent>
                 <LineContainerComponent globalState={this.props.globalState} title="CLEAR COAT">
-                    <CheckBoxLineComponent label="Enabled" target={material.clearCoat} propertyName="isEnabled" 
-                    onValueChanged={() => this.forceUpdate()}
-                    onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
+                    <CheckBoxLineComponent label="Enabled" target={material.clearCoat} propertyName="isEnabled"
+                        onValueChanged={() => this.forceUpdate()}
+                        onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                     {
                         material.clearCoat.isEnabled &&
                         <div>
                             <SliderLineComponent label="Intensity" target={material.clearCoat} propertyName="intensity" minimum={0} maximum={1} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                             <SliderLineComponent label="Roughness" target={material.clearCoat} propertyName="roughness" minimum={0} maximum={1} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                             <SliderLineComponent label="IOR" target={material.clearCoat} propertyName="indiceOfRefraction" minimum={1.0} maximum={3} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
-                            <TextureLinkLineComponent label="Texture" texture={material.clearCoat.texture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={onDebugSelectionChangeObservable} />
-                            <TextureLinkLineComponent label="Bump" texture={material.clearCoat.bumpTexture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={onDebugSelectionChangeObservable} />
+                            <TextureLinkLineComponent label="Texture" texture={material.clearCoat.texture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={this._onDebugSelectionChangeObservable} />
+                            <TextureLinkLineComponent label="Bump" texture={material.clearCoat.bumpTexture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={this._onDebugSelectionChangeObservable} />
                             {
                                 material.clearCoat.bumpTexture &&
                                 <SliderLineComponent label="Bump strength" target={material.clearCoat.bumpTexture} propertyName="level" minimum={0} maximum={2} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
@@ -101,23 +100,23 @@ export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMateri
                             }
                             {
                                 material.clearCoat.isEnabled && material.clearCoat.isTintEnabled &&
-                                <TextureLinkLineComponent label="Tint Texture" texture={material.clearCoat.tintTexture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={onDebugSelectionChangeObservable} />
+                                <TextureLinkLineComponent label="Tint Texture" texture={material.clearCoat.tintTexture} material={material} onSelectionChangedObservable={this.props.onSelectionChangedObservable} onDebugSelectionChangeObservable={this._onDebugSelectionChangeObservable} />
                             }
                         </div>
                     }
                 </LineContainerComponent>
                 <LineContainerComponent globalState={this.props.globalState} title="ANISOTROPIC">
-                    <CheckBoxLineComponent label="Enabled" target={material.anisotropy} propertyName="isEnabled" 
-                    onValueChanged={() => this.forceUpdate()}
-                    onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
+                    <CheckBoxLineComponent label="Enabled" target={material.anisotropy} propertyName="isEnabled"
+                        onValueChanged={() => this.forceUpdate()}
+                        onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                     {
                         material.anisotropy.isEnabled &&
                         <div>
                             <SliderLineComponent label="Intensity" target={material.anisotropy} propertyName="intensity" minimum={0} maximum={1} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                             <CheckBoxLineComponent label="Follow tangents" target={material.anisotropy} propertyName="followTangents" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                         </div>
-                   }
-                 </LineContainerComponent>
+                    }
+                </LineContainerComponent>
                 <LineContainerComponent globalState={this.props.globalState} title="LEVELS" closed={true}>
                     <SliderLineComponent label="Environment" target={material} propertyName="environmentIntensity" minimum={0} maximum={1} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                     <SliderLineComponent label="Specular" target={material} propertyName="specularIntensity" minimum={0} maximum={1} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />

+ 3 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrMetallicRoughnessMaterialPropertyGridComponent.tsx

@@ -22,6 +22,8 @@ interface IPBRMetallicRoughnessMaterialPropertyGridComponentProps {
 }
 
 export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Component<IPBRMetallicRoughnessMaterialPropertyGridComponentProps> {
+    private _onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+
     constructor(props: IPBRMetallicRoughnessMaterialPropertyGridComponentProps) {
         super(props);
     }
@@ -33,7 +35,7 @@ export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Com
             return null;
         }
 
-        const onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+        const onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
 
         return (
             <LineContainerComponent globalState={this.props.globalState} title="TEXTURES">

+ 3 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrSpecularGlossinessMaterialPropertyGridComponent.tsx

@@ -22,6 +22,8 @@ interface IPBRSpecularGlossinessMaterialPropertyGridComponentProps {
 }
 
 export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Component<IPBRSpecularGlossinessMaterialPropertyGridComponentProps> {
+    private _onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+
     constructor(props: IPBRSpecularGlossinessMaterialPropertyGridComponentProps) {
         super(props);
     }
@@ -33,7 +35,7 @@ export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Co
             return null;
         }
 
-        const onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+        const onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
 
         return (
             <LineContainerComponent globalState={this.props.globalState} title="TEXTURES">

+ 3 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/materials/standardMaterialPropertyGridComponent.tsx

@@ -22,6 +22,8 @@ interface IStandardMaterialPropertyGridComponentProps {
 }
 
 export class StandardMaterialPropertyGridComponent extends React.Component<IStandardMaterialPropertyGridComponentProps> {
+    private _onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+
     constructor(props: IStandardMaterialPropertyGridComponentProps) {
         super(props);
     }
@@ -33,7 +35,7 @@ export class StandardMaterialPropertyGridComponent extends React.Component<IStan
             return null;
         }
 
-        const onDebugSelectionChangeObservable = new Observable<BaseTexture>();
+        const onDebugSelectionChangeObservable = this._onDebugSelectionChangeObservable;
 
         return (
             <LineContainerComponent globalState={this.props.globalState} title="TEXTURES">

+ 1 - 1
inspector/src/tools.ts

@@ -24,7 +24,7 @@ export class Tools {
                 Tools._RecursiveRemoveHiddenMeshesAndHoistChildren(i.getChildMeshes()).forEach((m) => {
                     result.push(m);
                 });
-            } else {
+            } else if (!i.reservedDataStore || !i.reservedDataStore.hidden) {
                 result.push(i);
             }
         }