瀏覽代碼

making every shader compatible with mrt output

Benjamin Guignabert 5 年之前
父節點
當前提交
570e051c8e
共有 87 個文件被更改,包括 5640 次插入3123 次删除
  1. 1 1
      dist/preview release/babylon.js
  2. 2 2
      dist/preview release/babylon.max.js
  3. 1 1
      dist/preview release/babylon.max.js.map
  4. 3 3
      dist/preview release/gui/babylon.gui.js
  5. 8 8
      dist/preview release/inspector/babylon.inspector.bundle.js
  6. 2511 1337
      dist/preview release/inspector/babylon.inspector.bundle.max.js
  7. 1 1
      dist/preview release/inspector/babylon.inspector.bundle.max.js.map
  8. 3 3
      dist/preview release/loaders/babylon.glTF1FileLoader.js
  9. 3 3
      dist/preview release/loaders/babylon.glTFFileLoader.js
  10. 3 3
      dist/preview release/loaders/babylonjs.loaders.js
  11. 3 3
      dist/preview release/materialsLibrary/babylon.cellMaterial.js
  12. 3 3
      dist/preview release/materialsLibrary/babylon.customMaterial.js
  13. 3 3
      dist/preview release/materialsLibrary/babylon.fireMaterial.js
  14. 3 3
      dist/preview release/materialsLibrary/babylon.furMaterial.js
  15. 3 3
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js
  16. 3 3
      dist/preview release/materialsLibrary/babylon.gridMaterial.js
  17. 3 3
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js
  18. 3 3
      dist/preview release/materialsLibrary/babylon.mixMaterial.js
  19. 3 3
      dist/preview release/materialsLibrary/babylon.normalMaterial.js
  20. 3 3
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js
  21. 3 3
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js
  22. 3 3
      dist/preview release/materialsLibrary/babylon.skyMaterial.js
  23. 3 3
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js
  24. 3 3
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js
  25. 3 3
      dist/preview release/materialsLibrary/babylon.waterMaterial.js
  26. 3 3
      dist/preview release/materialsLibrary/babylonjs.materials.js
  27. 7 7
      dist/preview release/nodeEditor/babylon.nodeEditor.js
  28. 2803 1630
      dist/preview release/nodeEditor/babylon.nodeEditor.max.js
  29. 1 1
      dist/preview release/nodeEditor/babylon.nodeEditor.max.js.map
  30. 3 3
      dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.js
  31. 3 3
      dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.js
  32. 3 3
      dist/preview release/postProcessesLibrary/babylonjs.postProcess.js
  33. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.brickProceduralTexture.js
  34. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.cloudProceduralTexture.js
  35. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.fireProceduralTexture.js
  36. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.grassProceduralTexture.js
  37. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.marbleProceduralTexture.js
  38. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.normalMapProceduralTexture.js
  39. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.perlinNoiseProceduralTexture.js
  40. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.roadProceduralTexture.js
  41. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.starfieldProceduralTexture.js
  42. 3 3
      dist/preview release/proceduralTexturesLibrary/babylon.woodProceduralTexture.js
  43. 3 3
      dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.js
  44. 3 3
      dist/preview release/serializers/babylon.glTF2Serializer.js
  45. 3 3
      dist/preview release/serializers/babylonjs.serializers.js
  46. 7 7
      dist/preview release/viewer/babylon.viewer.js
  47. 4 4
      dist/preview release/viewer/babylon.viewer.max.js
  48. 6 0
      materialsLibrary/src/cell/cell.fragment.fx
  49. 5 0
      materialsLibrary/src/cell/cellMaterial.ts
  50. 6 0
      materialsLibrary/src/fire/fire.fragment.fx
  51. 5 0
      materialsLibrary/src/fire/fireMaterial.ts
  52. 6 0
      materialsLibrary/src/fur/fur.fragment.fx
  53. 5 0
      materialsLibrary/src/fur/furMaterial.ts
  54. 6 0
      materialsLibrary/src/gradient/gradient.fragment.fx
  55. 5 0
      materialsLibrary/src/gradient/gradientMaterial.ts
  56. 6 0
      materialsLibrary/src/grid/grid.fragment.fx
  57. 5 0
      materialsLibrary/src/grid/gridMaterial.ts
  58. 5 0
      materialsLibrary/src/lava/lava.fragment.fx
  59. 5 0
      materialsLibrary/src/lava/lavaMaterial.ts
  60. 6 0
      materialsLibrary/src/mix/mix.fragment.fx
  61. 5 0
      materialsLibrary/src/mix/mixMaterial.ts
  62. 6 0
      materialsLibrary/src/normal/normal.fragment.fx
  63. 5 0
      materialsLibrary/src/normal/normalMaterial.ts
  64. 6 0
      materialsLibrary/src/shadowOnly/shadowOnly.fragment.fx
  65. 5 0
      materialsLibrary/src/shadowOnly/shadowOnlyMaterial.ts
  66. 6 0
      materialsLibrary/src/simple/simple.fragment.fx
  67. 5 0
      materialsLibrary/src/simple/simpleMaterial.ts
  68. 6 0
      materialsLibrary/src/sky/sky.fragment.fx
  69. 5 0
      materialsLibrary/src/sky/skyMaterial.ts
  70. 6 0
      materialsLibrary/src/terrain/terrain.fragment.fx
  71. 5 0
      materialsLibrary/src/terrain/terrainMaterial.ts
  72. 2 0
      materialsLibrary/src/triPlanar/triPlanarMaterial.ts
  73. 6 0
      materialsLibrary/src/triPlanar/triplanar.fragment.fx
  74. 6 0
      materialsLibrary/src/water/water.fragment.fx
  75. 4 0
      materialsLibrary/src/water/waterMaterial.ts
  76. 2 1
      src/Engines/Extensions/engine.multiRender.ts
  77. 5 0
      src/Materials/Background/backgroundMaterial.ts
  78. 3 2
      src/Materials/PBR/pbrBaseMaterial.ts
  79. 1 1
      src/Materials/materialHelper.ts
  80. 2 2
      src/PostProcesses/SubSurfaceScatteringPostProcess.ts
  81. 0 0
      src/Shaders/ShadersInclude/deferredDeclaration.fx
  82. 2 1
      src/Shaders/ShadersInclude/mrtOutput.fx
  83. 6 0
      src/Shaders/background.fragment.fx
  84. 2 2
      src/Shaders/default.fragment.fx
  85. 4 4
      src/Shaders/pbr.fragment.fx
  86. 7 0
      src/Shaders/sprites.fragment.fx
  87. 3 3
      src/scene.ts

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


+ 2 - 2
dist/preview release/babylon.max.js

@@ -92029,7 +92029,7 @@ var RenderTargetTexture = /** @class */ (function (_super) {
             }
             var wasEmpty = array.length === 0;
             var result = oldPush.apply(array, items);
-            if (wasEmpty && _this.getScene()) {
+            if (wasEmpty) {
                 _this.getScene().meshes.forEach(function (mesh) {
                     mesh._markSubMeshesAsLightDirty();
                 });
@@ -142220,7 +142220,7 @@ var Tools = /** @class */ (function () {
             eventPrefix = "mouse";
         }
         // Special Fallback...
-        if (engine._badDesktopOS && !engine._badOS) {
+        if (engine._badDesktopOS) {
             eventPrefix = "mouse";
         }
         return eventPrefix;

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


+ 3 - 3
dist/preview release/gui/babylon.gui.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

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


File diff suppressed because it is too large
+ 2511 - 1337
dist/preview release/inspector/babylon.inspector.bundle.max.js


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


+ 3 - 3
dist/preview release/loaders/babylon.glTF1FileLoader.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/loaders/babylon.glTFFileLoader.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/loaders/babylonjs.loaders.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.cellMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.customMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.fireMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.furMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.gradientMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.gridMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.lavaMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.mixMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.normalMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.simpleMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.skyMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.terrainMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylon.waterMaterial.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/materialsLibrary/babylonjs.materials.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

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


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


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


+ 3 - 3
dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/postProcessesLibrary/babylonjs.postProcess.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.brickProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.cloudProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.fireProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.grassProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.marbleProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.normalMapProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.perlinNoiseProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.roadProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.starfieldProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylon.woodProceduralTexture.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/serializers/babylon.glTF2Serializer.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

+ 3 - 3
dist/preview release/serializers/babylonjs.serializers.js

@@ -97,9 +97,9 @@ return /******/ (function(modules) { // webpackBootstrap
 /******/ ({
 
 /***/ "../../node_modules/tslib/tslib.es6.js":
-/*!*****************************************************************!*\
-  !*** C:/Dev/Babylon/Babylon.js/node_modules/tslib/tslib.es6.js ***!
-  \*****************************************************************/
+/*!***********************************************************!*\
+  !*** E:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
+  \***********************************************************/
 /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 

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


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


+ 6 - 0
materialsLibrary/src/cell/cell.fragment.fx

@@ -36,6 +36,9 @@ uniform vec2 vDiffuseInfos;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 // Custom
 vec3 computeCustomDiffuseLighting(lightingInfo info, vec3 diffuseBase, float shadow)
 {
@@ -146,4 +149,7 @@ void main(void)
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+	
 }

+ 5 - 0
materialsLibrary/src/cell/cellMaterial.ts

@@ -31,6 +31,8 @@ class CellMaterialDefines extends MaterialDefines {
     public ALPHATEST = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public UV1 = false;
     public UV2 = false;
@@ -135,6 +137,9 @@ export class CellMaterial extends PushMaterial {
         // Lights
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 

+ 6 - 0
materialsLibrary/src/fire/fire.fragment.fx

@@ -32,6 +32,9 @@ varying vec2 vDistortionCoords3;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 vec4 bx2(vec4 x)
 {
    return vec4(2.0) * x - vec4(1.0);
@@ -97,4 +100,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/fire/fireMaterial.ts

@@ -33,6 +33,8 @@ class FireMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public UV1 = false;
     public VERTEXCOLOR = false;
     public VERTEXALPHA = false;
@@ -132,6 +134,9 @@ export class FireMaterial extends PushMaterial {
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Attribs
         MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, true);
 

+ 6 - 0
materialsLibrary/src/fur/fur.fragment.fx

@@ -45,6 +45,9 @@ varying vec2 vFurUV;
 #include<fogFragmentDeclaration>
 #include<clipPlaneFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 float Rand(vec3 rv) {
 	float x = dot(rv, vec3(12.9898,78.233, 24.65487));
 	return fract(sin(x) * 43758.5453);
@@ -130,4 +133,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/fur/furMaterial.ts

@@ -36,6 +36,8 @@ class FurMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public UV1 = false;
     public UV2 = false;
@@ -208,6 +210,9 @@ export class FurMaterial extends PushMaterial {
         // Misc.
         MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Lights
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 

+ 6 - 0
materialsLibrary/src/gradient/gradient.fragment.fx

@@ -40,6 +40,9 @@ varying vec4 vColor;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 #include<clipPlaneFragment>
 
@@ -99,4 +102,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/gradient/gradientMaterial.ts

@@ -31,6 +31,8 @@ class GradientMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public UV1 = false;
     public UV2 = false;
@@ -123,6 +125,9 @@ export class GradientMaterial extends PushMaterial {
 
         MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
         defines.EMISSIVE = this._disableLighting;

+ 6 - 0
materialsLibrary/src/grid/grid.fragment.fx

@@ -16,6 +16,9 @@ varying vec3 vNormal;
 
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 // Samplers
 #ifdef OPACITY
 varying vec2 vOpacityUV;
@@ -116,4 +119,7 @@ void main(void) {
     #endif
 #else    
 #endif
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/grid/gridMaterial.ts

@@ -20,6 +20,8 @@ class GridMaterialDefines extends MaterialDefines {
     public OPACITY = false;
     public TRANSPARENT = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public PREMULTIPLYALPHA = false;
     public UV1 = false;
     public UV2 = false;
@@ -157,6 +159,9 @@ export class GridMaterial extends PushMaterial {
 
         MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, false, this.fogEnabled, false, defines);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, scene.getEngine(), defines, !!useInstances);
 

+ 5 - 0
materialsLibrary/src/lava/lava.fragment.fx

@@ -51,6 +51,8 @@ uniform vec2 vDiffuseInfos;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
 
 float random( vec3 scale, float seed ){
     return fract( sin( dot( gl_FragCoord.xyz + seed, scale ) ) * 43758.5453 + seed ) ;
@@ -153,4 +155,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/lava/lavaMaterial.ts

@@ -32,6 +32,8 @@ class LavaMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public LIGHT0 = false;
     public LIGHT1 = false;
     public LIGHT2 = false;
@@ -195,6 +197,9 @@ export class LavaMaterial extends PushMaterial {
 
         MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 

+ 6 - 0
materialsLibrary/src/mix/mix.fragment.fx

@@ -67,6 +67,9 @@ uniform vec2 diffuse8Infos;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 	// Clip plane
 	#include<clipPlaneFragment>
@@ -164,4 +167,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/mix/mixMaterial.ts

@@ -33,6 +33,8 @@ class MixMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public SPECULARTERM = false;
     public NORMAL = false;
     public UV1 = false;
@@ -223,6 +225,9 @@ export class MixMaterial extends PushMaterial {
         // Lights
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 

+ 6 - 0
materialsLibrary/src/normal/normal.fragment.fx

@@ -38,6 +38,9 @@ uniform vec2 vDiffuseInfos;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 #include<clipPlaneFragment>
 
@@ -97,4 +100,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/normal/normalMaterial.ts

@@ -32,6 +32,8 @@ class NormalMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public LIGHT0 = false;
     public LIGHT1 = false;
     public LIGHT2 = false;
@@ -169,6 +171,9 @@ export class NormalMaterial extends PushMaterial {
         defines._needNormals = true;
         MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 

+ 6 - 0
materialsLibrary/src/shadowOnly/shadowOnly.fragment.fx

@@ -26,6 +26,9 @@ varying vec3 vNormalW;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 #include<clipPlaneFragment>
 
@@ -52,4 +55,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/shadowOnly/shadowOnlyMaterial.ts

@@ -29,6 +29,8 @@ class ShadowOnlyMaterialDefines extends MaterialDefines {
     public CLIPPLANE6 = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
@@ -123,6 +125,9 @@ export class ShadowOnlyMaterial extends PushMaterial {
 
         MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, 1);
 
         const shadowGenerator = this._getFirstShadowLightForMesh(mesh)?.getShadowGenerator();

+ 6 - 0
materialsLibrary/src/simple/simple.fragment.fx

@@ -36,6 +36,9 @@ uniform vec2 vDiffuseInfos;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 #include<clipPlaneFragment>
 
@@ -96,4 +99,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/simple/simpleMaterial.ts

@@ -32,6 +32,8 @@ class SimpleMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public UV1 = false;
     public UV2 = false;
@@ -124,6 +126,9 @@ export class SimpleMaterial extends PushMaterial {
         // Lights
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 

+ 6 - 0
materialsLibrary/src/sky/sky.fragment.fx

@@ -22,6 +22,9 @@ uniform vec3 sunPosition;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 // Constants
 const float e = 2.71828182845904523536028747135266249775724709369995957;
 const float pi = 3.141592653589793238462643383279502884197169;
@@ -168,4 +171,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/sky/skyMaterial.ts

@@ -27,6 +27,8 @@ class SkyMaterialDefines extends MaterialDefines {
     public CLIPPLANE6 = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public VERTEXCOLOR = false;
     public VERTEXALPHA = false;
 
@@ -179,6 +181,9 @@ export class SkyMaterial extends PushMaterial {
 
         MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, false, defines);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Attribs
         MaterialHelper.PrepareDefinesForAttributes(mesh, defines, true, false);
 

+ 6 - 0
materialsLibrary/src/terrain/terrain.fragment.fx

@@ -55,6 +55,9 @@ uniform sampler2D bump3Sampler;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 // Bump
 #ifdef BUMP
 #extension GL_OES_standard_derivatives : enable
@@ -180,4 +183,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 5 - 0
materialsLibrary/src/terrain/terrainMaterial.ts

@@ -34,6 +34,8 @@ class TerrainMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public SPECULARTERM = false;
     public NORMAL = false;
     public UV1 = false;
@@ -186,6 +188,9 @@ export class TerrainMaterial extends PushMaterial {
         // Lights
         defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);
 

+ 2 - 0
materialsLibrary/src/triPlanar/triPlanarMaterial.ts

@@ -40,6 +40,8 @@ class TriPlanarMaterialDefines extends MaterialDefines {
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public SPECULARTERM = false;
     public NORMAL = false;
     public VERTEXCOLOR = false;

+ 6 - 0
materialsLibrary/src/triPlanar/triplanar.fragment.fx

@@ -55,6 +55,9 @@ varying mat3 tangentSpace;
 #include<clipPlaneFragmentDeclaration>
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 	// Clip plane
 	#include<clipPlaneFragment>
@@ -147,4 +150,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 6 - 0
materialsLibrary/src/water/water.fragment.fx

@@ -72,6 +72,9 @@ varying vec3 vPosition;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 void main(void) {
 	// Clip plane
     #include<clipPlaneFragment>
@@ -252,4 +255,7 @@ vec4 color = vec4(finalDiffuse + finalSpecular, alpha);
 #endif
 	
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 4 - 0
materialsLibrary/src/water/waterMaterial.ts

@@ -40,6 +40,8 @@ class WaterMaterialDefines extends MaterialDefines implements IImageProcessingCo
     public DEPTHPREPASS = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public UV1 = false;
     public UV2 = false;
@@ -343,6 +345,8 @@ export class WaterMaterial extends PushMaterial {
 
         MaterialHelper.PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
 
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         if (defines._areMiscDirty) {
             if (this._fresnelSeparate) {
                 defines.FRESNELSEPARATE = true;

+ 2 - 1
src/Engines/Extensions/engine.multiRender.ts

@@ -63,8 +63,9 @@ ThinEngine.prototype.clearColorAttachments = function(texture: InternalTexture,
     }
 
     gl.clear(gl.COLOR_BUFFER_BIT);
-}
 
+    gl.drawBuffers(texture._attachments!);
+};
 
 ThinEngine.prototype.unBindMultiColorAttachmentFramebuffer = function(count: number, textures: InternalTexture[], disableGenerateMipMaps: boolean = false, onBeforeUnbind?: () => void): void {
     this._currentRenderTarget = null;

+ 5 - 0
src/Materials/Background/backgroundMaterial.ts

@@ -153,6 +153,8 @@ class BackgroundMaterialDefines extends MaterialDefines implements IImageProcess
     public CLIPPLANE6 = false;
     public POINTSIZE = false;
     public FOG = false;
+    public HIGH_DEFINITION_PIPELINE = false;
+    public SCENE_MRT_COUNT = 0;
     public NORMAL = false;
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
@@ -815,6 +817,9 @@ export class BackgroundMaterial extends PushMaterial {
         // Values that need to be evaluated on every frame
         MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances);
 
+        // Deferred
+        MaterialHelper.PrepareDefinesForDeferred(scene, defines);
+
         // Attribs
         if (MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, true, false)) {
             if (mesh) {

+ 3 - 2
src/Materials/PBR/pbrBaseMaterial.ts

@@ -153,7 +153,7 @@ export class PBRMaterialDefines extends MaterialDefines
     public HORIZONOCCLUSION = false;
 
     public INSTANCES = false;
-    
+
     public HIGH_DEFINITION_PIPELINE = false;
     public SCENE_MRT_COUNT = 0;
 
@@ -1285,13 +1285,14 @@ export abstract class PBRBaseMaterial extends PushMaterial {
         const scene = this.getScene();
         const engine = scene.getEngine();
 
-
         // Lights
         MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, true, this._maxSimultaneousLights, this._disableLighting);
         defines._needNormals = true;
 
         // Multiview
         MaterialHelper.PrepareDefinesForMultiview(scene, defines);
+
+        // Deferred
         MaterialHelper.PrepareDefinesForDeferred(scene, defines);
 
         // Textures

+ 1 - 1
src/Materials/materialHelper.ts

@@ -289,7 +289,7 @@ export class MaterialHelper {
     }
 
     /**
-     * Prepares the defines related to defferred shading
+     * Prepares the defines related to deferred shading
      * @param scene The scene we are intending to draw
      * @param defines The defines to update
      */

+ 2 - 2
src/PostProcesses/SubSurfaceScatteringPostProcess.ts

@@ -37,7 +37,7 @@ export class SubSurfaceScatteringPostProcess extends PostProcess {
             effect.setTexture("depthSampler", scene.highDefinitionMRT.textures[2]);
             effect.setTexture("albedoSampler", scene.highDefinitionMRT.textures[3]);
             effect.setFloat("filterRadius", this._filterRadius);
-            effect.setFloat2("viewportSize", 
+            effect.setFloat2("viewportSize",
                 Math.tan(scene.activeCamera!.fov / 2) * scene.getEngine().getAspectRatio(scene.activeCamera!, true),
                 Math.tan(scene.activeCamera!.fov / 2));
         });
@@ -78,7 +78,7 @@ export class SubSurfaceScatteringPostProcess extends PostProcess {
         u = 1 - u; // Convert CDF to CCDF
 
         let g = 1 + (4 * u) * (2 * u + Math.sqrt(1 + (4 * u) * u));
-        let n = Math.pow(g, -1.0/3.0);                      // g^(-1/3)
+        let n = Math.pow(g, -1.0 / 3.0);                      // g^(-1/3)
         let p = (g * n) * n;                                   // g^(+1/3)
         let c = 1 + p + n;                                     // 1 + g^(+1/3) + g^(-1/3)
         let x = 3 * Math.log(c / (4 * u));

src/Shaders/ShadersInclude/mrtInput.fx → src/Shaders/ShadersInclude/deferredDeclaration.fx


+ 2 - 1
src/Shaders/ShadersInclude/mrtOutput.fx

@@ -1,7 +1,8 @@
 #ifdef HIGH_DEFINITION_PIPELINE
+	// putting that in a loop won't compile
 	gl_FragData[0] = gl_FragColor;
 	gl_FragData[1] = gl_FragColor;
 	gl_FragData[2] = gl_FragColor;
 	gl_FragData[3] = gl_FragColor;
-	gl_FragData[4] = vec4(gl_FragColor.rgb, 1.0);
+	gl_FragData[4] = gl_FragColor;
 #endif

+ 6 - 0
src/Shaders/background.fragment.fx

@@ -100,6 +100,9 @@ varying vec3 vNormalW;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
 #ifdef REFLECTIONFRESNEL
     #define FRESNEL_MAXIMUM_ON_ROUGH 0.25
 
@@ -301,4 +304,7 @@ vec4 color = vec4(finalColor, finalAlpha);
 #endif
 
     gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 2 - 2
src/Shaders/default.fragment.fx

@@ -44,7 +44,7 @@ varying vec4 vColor;
 #include<lightsFragmentFunctions>
 #include<shadowsFragmentFunctions>
 
-#include<mrtInput>[SCENE_MRT_COUNT]
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
 
 // Samplers
 #ifdef DIFFUSE
@@ -475,6 +475,6 @@ color.rgb = max(color.rgb, 0.);
 
 gl_FragColor = color;
 
-#include<mrtOutput>
+#include<deferredDefaultOutput>
 
 }

+ 4 - 4
src/Shaders/pbr.fragment.fx

@@ -14,7 +14,7 @@
 
 precision highp float;
 
-#include<mrtInput>[SCENE_MRT_COUNT]
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
 
 // Forces linear space for image processing
 #ifndef FROMLINEARSPACE
@@ -489,6 +489,7 @@ void main(void) {
 
     #include<pbrBlockImageProcessing>
 
+    #define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
 
 #ifdef HIGH_DEFINITION_PIPELINE
     vec3 irradiance = finalDiffuse;
@@ -506,9 +507,8 @@ void main(void) {
     gl_FragData[2] = vec4(vViewPos.z, 0.0, 0.0, 1.0);
     gl_FragData[3] = vec4(sqrt(surfaceAlbedo), 1.0);
     gl_FragData[4] = vec4(finalColor.rgb - irradiance, 0.0);
-#else
-    // #define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
-    gl_FragColor = finalColor;
 #endif
+
+    gl_FragColor = finalColor;
     #include<pbrDebug>
 }

+ 7 - 0
src/Shaders/sprites.fragment.fx

@@ -9,6 +9,10 @@ uniform sampler2D diffuseSampler;
 // Fog
 #include<fogFragmentDeclaration>
 
+// Deferred
+#include<deferredDeclaration>[SCENE_MRT_COUNT]
+
+
 void main(void) {
 	vec4 color = texture2D(diffuseSampler, vUV);
 
@@ -23,4 +27,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<deferredDefaultOutput>
+
 }

+ 3 - 3
src/scene.ts

@@ -4074,9 +4074,9 @@ export class Scene extends AbstractScene implements IAnimatable {
 
         // Clear
         if (this.autoClearDepthAndStencil || this.autoClear) {
-            this._engine.clear(this.clearColor, 
-                this.autoClear || this.forceWireframe || this.forcePointsCloud, 
-                this.autoClearDepthAndStencil, 
+            this._engine.clear(this.clearColor,
+                this.autoClear || this.forceWireframe || this.forcePointsCloud,
+                this.autoClearDepthAndStencil,
                 this.autoClearDepthAndStencil,
                 this.highDefinitionPipeline ? this.highDefinitionMRT._texture! : undefined);
         }