Bladeren bron

Merge pull request #7600 from BabylonJS/master

Nightly
mergify[bot] 5 jaren geleden
bovenliggende
commit
99df68d407

File diff suppressed because it is too large
+ 8001 - 8001
dist/preview release/babylon.d.ts


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.js


+ 7 - 0
dist/preview release/babylon.max.js

@@ -54867,6 +54867,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _Misc_observable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../Misc/observable */ "./Misc/observable.ts");
 /* harmony import */ var _Misc_devTools__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../Misc/devTools */ "./Misc/devTools.ts");
 /* harmony import */ var _Materials_effectFallbacks__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../Materials/effectFallbacks */ "./Materials/effectFallbacks.ts");
+/* harmony import */ var _Rendering_renderingManager__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../Rendering/renderingManager */ "./Rendering/renderingManager.ts");
+
 
 
 
@@ -55568,6 +55570,11 @@ var ShadowGenerator = /** @class */ (function () {
             _this._light._markMeshesAsLightDirty();
             _this.recreateShadowMap();
         });
+        // Ensures rendering groupids do not erase the depth buffer
+        // or we would lose the shadows information.
+        for (var i = _Rendering_renderingManager__WEBPACK_IMPORTED_MODULE_17__["RenderingManager"].MIN_RENDERINGGROUPS; i < _Rendering_renderingManager__WEBPACK_IMPORTED_MODULE_17__["RenderingManager"].MAX_RENDERINGGROUPS; i++) {
+            this._shadowMap.setRenderingAutoClearDepthStencil(i, false);
+        }
     };
     ShadowGenerator.prototype._initializeBlurRTTAndPostProcesses = function () {
         var _this = this;

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.max.js.map


File diff suppressed because it is too large
+ 16119 - 16119
dist/preview release/babylon.module.d.ts


File diff suppressed because it is too large
+ 8001 - 8001
dist/preview release/documentation.d.ts


File diff suppressed because it is too large
+ 4 - 4
dist/preview release/nodeEditor/babylon.nodeEditor.js


+ 9 - 5
dist/preview release/nodeEditor/babylon.nodeEditor.max.js

@@ -51816,7 +51816,9 @@ var NodeListComponent = /** @class */ (function (_super) {
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "panes" },
                 react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "pane" },
                     react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "filter" },
-                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { type: "text", placeholder: "Filter", onChange: function (evt) { return _this.filterContent(evt.target.value); } })),
+                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { type: "text", placeholder: "Filter", onFocus: function () { return _this.props.globalState.blockKeyboardEvents = true; }, onBlur: function (evt) {
+                                _this.props.globalState.blockKeyboardEvents = false;
+                            }, onChange: function (evt) { return _this.filterContent(evt.target.value); } })),
                     react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "list-container" }, blockMenu)))));
     };
     NodeListComponent._Tooltips = {
@@ -52351,6 +52353,9 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _previewMeshType__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./previewMeshType */ "./components/preview/previewMeshType.ts");
 /* harmony import */ var _dataStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dataStorage */ "./dataStorage.ts");
 /* harmony import */ var _sharedComponents_optionsLineComponent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../sharedComponents/optionsLineComponent */ "./sharedComponents/optionsLineComponent.tsx");
+/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-dom */ "../../node_modules/react-dom/index.js");
+/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_7__);
+
 
 
 
@@ -52381,7 +52386,7 @@ var PreviewMeshControlComponent = /** @class */ (function (_super) {
             this.props.globalState.onPreviewCommandActivated.notifyObservers();
             this.forceUpdate();
         }
-        document.getElementById("file-picker").value = "";
+        react_dom__WEBPACK_IMPORTED_MODULE_7__["findDOMNode"](this.refs["file-picker"]).value = "";
     };
     PreviewMeshControlComponent.prototype.onPopUp = function () {
         this.props.togglePreviewAreaComponent();
@@ -52394,7 +52399,7 @@ var PreviewMeshControlComponent = /** @class */ (function (_super) {
             { label: "Plane", value: _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].Plane },
             { label: "Shader ball", value: _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].ShaderBall },
             { label: "Sphere", value: _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].Sphere },
-            { label: "Load", value: _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].Custom + 1 }
+            { label: "Load...", value: _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].Custom + 1 }
         ];
         if (this.props.globalState.previewMeshType === _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].Custom) {
             meshTypeOptions.splice(0, 0, {
@@ -52403,12 +52408,11 @@ var PreviewMeshControlComponent = /** @class */ (function (_super) {
         }
         return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "preview-mesh-bar" },
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedComponents_optionsLineComponent__WEBPACK_IMPORTED_MODULE_6__["OptionsLineComponent"], { label: "", options: meshTypeOptions, target: this.props.globalState, propertyName: "previewMeshType", noDirectUpdate: true, onSelect: function (value) {
-                    var _a;
                     if (value !== _previewMeshType__WEBPACK_IMPORTED_MODULE_4__["PreviewMeshType"].Custom + 1) {
                         _this.changeMeshType(value);
                     }
                     else {
-                        (_a = document.getElementById("file-picker")) === null || _a === void 0 ? void 0 : _a.click();
+                        react_dom__WEBPACK_IMPORTED_MODULE_7__["findDOMNode"](_this.refs["file-picker"]).click();
                     }
                 } }),
             react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: {

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/nodeEditor/babylon.nodeEditor.max.js.map


File diff suppressed because it is too large
+ 16119 - 16119
dist/preview release/viewer/babylon.module.d.ts


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/viewer/babylon.viewer.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 1 - 0
dist/preview release/what's new.md

@@ -327,6 +327,7 @@
 - Fix for bug where NME would crash if frames did not have comments ([Kyle Belfort](https://github.com/belfortk))
 - Fix wrong import of _TimeToken ([Sebavan](https://github.com/sebavan/)
 - Fix shadows not rendered correctly when using point lights ([Popov72](https://github.com/Popov72))
+- Prevent depth buffer clear in shadow maps ([Sebavan](https://github.com/sebavan/)
 
 ## Breaking changes
 

+ 6 - 1
nodeEditor/src/components/nodeList/nodeListComponent.tsx

@@ -175,7 +175,12 @@ export class NodeListComponent extends React.Component<INodeListComponentProps,
                 <div className="panes">
                     <div className="pane">
                         <div className="filter">
-                            <input type="text" placeholder="Filter" onChange={(evt) => this.filterContent(evt.target.value)} />
+                            <input type="text" placeholder="Filter" 
+                                onFocus={() => this.props.globalState.blockKeyboardEvents = true}
+                                onBlur={evt => {
+                                    this.props.globalState.blockKeyboardEvents = false;
+                                }}
+                                onChange={(evt) => this.filterContent(evt.target.value)} />
                         </div>
                         <div className="list-container">
                             {blockMenu}

+ 4 - 3
nodeEditor/src/components/preview/previewMeshControlComponent.tsx

@@ -6,6 +6,7 @@ import { faWindowRestore } from '@fortawesome/free-solid-svg-icons';
 import { PreviewMeshType } from './previewMeshType';
 import { DataStorage } from '../../dataStorage';
 import { OptionsLineComponent } from '../../sharedComponents/optionsLineComponent';
+import * as ReactDOM from 'react-dom';
 
 interface IPreviewMeshControlComponent {
     globalState: GlobalState;
@@ -37,7 +38,7 @@ export class PreviewMeshControlComponent extends React.Component<IPreviewMeshCon
             this.props.globalState.onPreviewCommandActivated.notifyObservers();        
             this.forceUpdate();
         }
-        (document.getElementById("file-picker")! as HTMLInputElement).value = "";
+        (ReactDOM.findDOMNode(this.refs["file-picker"]) as HTMLInputElement).value = "";
     }
 
     onPopUp() {
@@ -52,7 +53,7 @@ export class PreviewMeshControlComponent extends React.Component<IPreviewMeshCon
             { label: "Plane", value: PreviewMeshType.Plane },
             { label: "Shader ball", value: PreviewMeshType.ShaderBall },
             { label: "Sphere", value: PreviewMeshType.Sphere },
-            { label: "Load", value: PreviewMeshType.Custom + 1 }
+            { label: "Load...", value: PreviewMeshType.Custom + 1 }
         ];
 
         if (this.props.globalState.previewMeshType === PreviewMeshType.Custom) {
@@ -70,7 +71,7 @@ export class PreviewMeshControlComponent extends React.Component<IPreviewMeshCon
                                 if (value !== PreviewMeshType.Custom + 1) {
                                     this.changeMeshType(value);
                                 } else {
-                                    document.getElementById("file-picker")?.click();
+                                    (ReactDOM.findDOMNode(this.refs["file-picker"]) as HTMLElement).click();
                                 }
                             }} />    
                 <div style={{

+ 7 - 0
src/Lights/Shadows/shadowGenerator.ts

@@ -26,6 +26,7 @@ import "../../Shaders/depthBoxBlur.fragment";
 import { Observable } from '../../Misc/observable';
 import { _DevTools } from '../../Misc/devTools';
 import { EffectFallbacks } from '../../Materials/effectFallbacks';
+import { RenderingManager } from '../../Rendering/renderingManager';
 
 /**
  * Defines the options associated with the creation of a custom shader for a shadow generator.
@@ -916,6 +917,12 @@ export class ShadowGenerator implements IShadowGenerator {
             this._light._markMeshesAsLightDirty();
             this.recreateShadowMap();
         });
+
+        // Ensures rendering groupids do not erase the depth buffer
+        // or we would lose the shadows information.
+        for (let i = RenderingManager.MIN_RENDERINGGROUPS; i < RenderingManager.MAX_RENDERINGGROUPS; i++) {
+            this._shadowMap.setRenderingAutoClearDepthStencil(i, false);
+        }
     }
 
     protected _initializeBlurRTTAndPostProcesses(): void {