@babylonjs/core 8.8.5 → 8.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/Animations/animatable.core.js +2 -2
  2. package/Animations/animatable.core.js.map +1 -1
  3. package/Cameras/targetCamera.d.ts +0 -4
  4. package/Cameras/targetCamera.js +0 -28
  5. package/Cameras/targetCamera.js.map +1 -1
  6. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +22 -15
  7. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
  8. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -0
  9. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +8 -0
  10. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
  11. package/Engines/WebGPU/webgpuBufferManager.js +5 -2
  12. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  13. package/Engines/abstractEngine.js +2 -2
  14. package/Engines/abstractEngine.js.map +1 -1
  15. package/Engines/constants.d.ts +5 -0
  16. package/Engines/constants.js +5 -0
  17. package/Engines/constants.js.map +1 -1
  18. package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.js +1 -1
  19. package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.js.map +1 -1
  20. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.d.ts +2 -1
  21. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js +5 -4
  22. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js.map +1 -1
  23. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.d.ts +3 -1
  24. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js +26 -4
  25. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js.map +1 -1
  26. package/FrameGraph/Node/nodeRenderGraph.d.ts +1 -1
  27. package/FrameGraph/Node/nodeRenderGraph.js +1 -1
  28. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  29. package/Helpers/environmentHelper.js +3 -3
  30. package/Helpers/environmentHelper.js.map +1 -1
  31. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +1 -0
  32. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  33. package/Materials/PBR/pbrBRDFConfiguration.d.ts +30 -0
  34. package/Materials/PBR/pbrBRDFConfiguration.js +45 -0
  35. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  36. package/Materials/PBR/pbrBaseMaterial.d.ts +0 -10
  37. package/Materials/PBR/pbrBaseMaterial.js +0 -13
  38. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  39. package/Materials/PBR/pbrMaterial.d.ts +0 -16
  40. package/Materials/PBR/pbrMaterial.decalMap.js +0 -5
  41. package/Materials/PBR/pbrMaterial.decalMap.js.map +1 -1
  42. package/Materials/PBR/pbrMaterial.js +1 -30
  43. package/Materials/PBR/pbrMaterial.js.map +1 -1
  44. package/Materials/Textures/renderTargetTexture.js +3 -1
  45. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  46. package/Materials/effectRenderer.d.ts +1 -0
  47. package/Materials/effectRenderer.js +3 -1
  48. package/Materials/effectRenderer.js.map +1 -1
  49. package/Materials/shaderMaterial.d.ts +7 -8
  50. package/Materials/shaderMaterial.js +21 -15
  51. package/Materials/shaderMaterial.js.map +1 -1
  52. package/Materials/standardMaterial.decalMap.js +0 -5
  53. package/Materials/standardMaterial.decalMap.js.map +1 -1
  54. package/Materials/standardMaterial.js +1 -1
  55. package/Materials/standardMaterial.js.map +1 -1
  56. package/Maths/math.vector.d.ts +23 -17
  57. package/Maths/math.vector.js +144 -115
  58. package/Maths/math.vector.js.map +1 -1
  59. package/Meshes/Node/nodeGeometry.d.ts +1 -1
  60. package/Meshes/Node/nodeGeometry.js +1 -1
  61. package/Meshes/Node/nodeGeometry.js.map +1 -1
  62. package/Meshes/instancedMesh.js +12 -2
  63. package/Meshes/instancedMesh.js.map +1 -1
  64. package/Meshes/mesh.d.ts +2 -2
  65. package/Meshes/mesh.js.map +1 -1
  66. package/Offline/database.d.ts +1 -1
  67. package/Offline/database.js +5 -5
  68. package/Offline/database.js.map +1 -1
  69. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  70. package/Rendering/depthPeelingRenderer.js +1 -1
  71. package/Rendering/depthPeelingRenderer.js.map +1 -1
  72. package/Rendering/edgesRenderer.d.ts +1 -1
  73. package/Rendering/edgesRenderer.js +2 -2
  74. package/Rendering/edgesRenderer.js.map +1 -1
  75. package/Rendering/fluidRenderer/fluidRenderer.d.ts +1 -1
  76. package/Rendering/fluidRenderer/fluidRenderer.js +1 -1
  77. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  78. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  79. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  80. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  81. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  82. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +1 -1
  83. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  84. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +1 -1
  85. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +1 -1
  86. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  87. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +2 -2
  88. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +2 -2
  89. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  90. package/Rendering/prePassEffectConfiguration.d.ts +5 -0
  91. package/Rendering/prePassEffectConfiguration.js.map +1 -1
  92. package/Rendering/prePassRenderer.js +3 -0
  93. package/Rendering/prePassRenderer.js.map +1 -1
  94. package/Rendering/subSurfaceConfiguration.d.ts +6 -1
  95. package/Rendering/subSurfaceConfiguration.js +6 -1
  96. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  97. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +15 -14
  98. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  99. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +3 -0
  100. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  101. package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
  102. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  103. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +6 -2
  104. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  105. package/Shaders/pbr.fragment.js +2 -1
  106. package/Shaders/pbr.fragment.js.map +1 -1
  107. package/Shaders/pbr.vertex.d.ts +1 -0
  108. package/Shaders/pbr.vertex.js +5 -2
  109. package/Shaders/pbr.vertex.js.map +1 -1
  110. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +3 -0
  111. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  112. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +1 -1
  113. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
  114. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +7 -2
  115. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  116. package/ShadersWGSL/pbr.fragment.js +2 -1
  117. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  118. package/ShadersWGSL/pbr.vertex.d.ts +1 -0
  119. package/ShadersWGSL/pbr.vertex.js +5 -2
  120. package/ShadersWGSL/pbr.vertex.js.map +1 -1
  121. package/assetContainer.js +13 -13
  122. package/assetContainer.js.map +1 -1
  123. package/package.json +1 -1
  124. package/sceneComponent.d.ts +1 -1
  125. package/sceneComponent.js.map +1 -1
@@ -11,6 +11,9 @@ export declare class MaterialBRDFDefines extends MaterialDefines {
11
11
  SPECULAR_GLOSSINESS_ENERGY_CONSERVATION: boolean;
12
12
  MIX_IBL_RADIANCE_WITH_IRRADIANCE: boolean;
13
13
  LEGACY_SPECULAR_ENERGY_CONSERVATION: boolean;
14
+ BASE_DIFFUSE_MODEL: number;
15
+ DIELECTRIC_SPECULAR_MODEL: number;
16
+ CONDUCTOR_SPECULAR_MODEL: number;
14
17
  }
15
18
  /**
16
19
  * Plugin that implements the BRDF component of the PBR material
@@ -48,6 +51,18 @@ export declare class PBRBRDFConfiguration extends MaterialPluginBase {
48
51
  * Default value for whether the legacy specular energy conservation is used.
49
52
  */
50
53
  static DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION: boolean;
54
+ /**
55
+ * Defines the default diffuse model used by the material.
56
+ */
57
+ static DEFAULT_DIFFUSE_MODEL: number;
58
+ /**
59
+ * Defines the default dielectric specular model used by the material.
60
+ */
61
+ static DEFAULT_DIELECTRIC_SPECULAR_MODEL: number;
62
+ /**
63
+ * Defines the default conductor specular model used by the material.
64
+ */
65
+ static DEFAULT_CONDUCTOR_SPECULAR_MODEL: number;
51
66
  private _useEnergyConservation;
52
67
  /**
53
68
  * Defines if the material uses energy conservation.
@@ -93,6 +108,21 @@ export declare class PBRBRDFConfiguration extends MaterialPluginBase {
93
108
  * If activated, the specular color is multiplied with (1. - maxChannel(albedo color)).
94
109
  */
95
110
  useLegacySpecularEnergyConservation: boolean;
111
+ private _baseDiffuseModel;
112
+ /**
113
+ * Defines the base diffuse roughness model of the material.
114
+ */
115
+ baseDiffuseModel: number;
116
+ private _dielectricSpecularModel;
117
+ /**
118
+ * The material model to use for specular lighting of dielectric materials.
119
+ */
120
+ dielectricSpecularModel: number;
121
+ private _conductorSpecularModel;
122
+ /**
123
+ * The material model to use for specular lighting.
124
+ */
125
+ conductorSpecularModel: number;
96
126
  /** @internal */
97
127
  private _internalMarkAllSubMeshesAsMiscDirty;
98
128
  /** @internal */
@@ -16,6 +16,9 @@ export class MaterialBRDFDefines extends MaterialDefines {
16
16
  this.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = false;
17
17
  this.MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;
18
18
  this.LEGACY_SPECULAR_ENERGY_CONSERVATION = false;
19
+ this.BASE_DIFFUSE_MODEL = 0;
20
+ this.DIELECTRIC_SPECULAR_MODEL = 0;
21
+ this.CONDUCTOR_SPECULAR_MODEL = 0;
19
22
  }
20
23
  }
21
24
  /**
@@ -80,6 +83,21 @@ export class PBRBRDFConfiguration extends MaterialPluginBase {
80
83
  * If activated, the specular color is multiplied with (1. - maxChannel(albedo color)).
81
84
  */
82
85
  this.useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;
86
+ this._baseDiffuseModel = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;
87
+ /**
88
+ * Defines the base diffuse roughness model of the material.
89
+ */
90
+ this.baseDiffuseModel = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;
91
+ this._dielectricSpecularModel = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;
92
+ /**
93
+ * The material model to use for specular lighting of dielectric materials.
94
+ */
95
+ this.dielectricSpecularModel = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;
96
+ this._conductorSpecularModel = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;
97
+ /**
98
+ * The material model to use for specular lighting.
99
+ */
100
+ this.conductorSpecularModel = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;
83
101
  this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[16];
84
102
  this._enable(true);
85
103
  }
@@ -90,6 +108,9 @@ export class PBRBRDFConfiguration extends MaterialPluginBase {
90
108
  defines.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation;
91
109
  defines.MIX_IBL_RADIANCE_WITH_IRRADIANCE = this._mixIblRadianceWithIrradiance;
92
110
  defines.LEGACY_SPECULAR_ENERGY_CONSERVATION = this._useLegacySpecularEnergyConservation;
111
+ defines.BASE_DIFFUSE_MODEL = this._baseDiffuseModel;
112
+ defines.DIELECTRIC_SPECULAR_MODEL = this._dielectricSpecularModel;
113
+ defines.CONDUCTOR_SPECULAR_MODEL = this._conductorSpecularModel;
93
114
  }
94
115
  getClassName() {
95
116
  return "PBRBRDFConfiguration";
@@ -127,6 +148,18 @@ PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;
127
148
  * Default value for whether the legacy specular energy conservation is used.
128
149
  */
129
150
  PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION = true;
151
+ /**
152
+ * Defines the default diffuse model used by the material.
153
+ */
154
+ PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL = 0;
155
+ /**
156
+ * Defines the default dielectric specular model used by the material.
157
+ */
158
+ PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL = 0;
159
+ /**
160
+ * Defines the default conductor specular model used by the material.
161
+ */
162
+ PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL = 0;
130
163
  __decorate([
131
164
  serialize(),
132
165
  expandToProperty("_markAllSubMeshesAsMiscDirty")
@@ -151,4 +184,16 @@ __decorate([
151
184
  serialize(),
152
185
  expandToProperty("_markAllSubMeshesAsMiscDirty")
153
186
  ], PBRBRDFConfiguration.prototype, "useLegacySpecularEnergyConservation", void 0);
187
+ __decorate([
188
+ serialize("baseDiffuseModel"),
189
+ expandToProperty("_markAllSubMeshesAsMiscDirty")
190
+ ], PBRBRDFConfiguration.prototype, "baseDiffuseModel", void 0);
191
+ __decorate([
192
+ serialize("dielectricSpecularModel"),
193
+ expandToProperty("_markAllSubMeshesAsMiscDirty")
194
+ ], PBRBRDFConfiguration.prototype, "dielectricSpecularModel", void 0);
195
+ __decorate([
196
+ serialize("conductorSpecularModel"),
197
+ expandToProperty("_markAllSubMeshesAsMiscDirty")
198
+ ], PBRBRDFConfiguration.prototype, "conductorSpecularModel", void 0);
154
199
  //# sourceMappingURL=pbrBRDFConfiguration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pbrBRDFConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrBRDFConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { serialize, expandToProperty } from \"../../Misc/decorators\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport type { PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialBRDFDefines extends MaterialDefines {\r\n BRDF_V_HEIGHT_CORRELATED = false;\r\n MS_BRDF_ENERGY_CONSERVATION = false;\r\n SPHERICAL_HARMONICS = false;\r\n SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = false;\r\n MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n LEGACY_SPECULAR_ENERGY_CONSERVATION = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the BRDF component of the PBR material\r\n */\r\nexport class PBRBRDFConfiguration extends MaterialPluginBase {\r\n /**\r\n * Default value used for the energy conservation.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value used for the Smith Visibility Height Correlated mode.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = true;\r\n\r\n /**\r\n * Default value used for the IBL diffuse part.\r\n * This can help switching back to the polynomials mode globally which is a tiny bit\r\n * less GPU intensive at the drawback of a lower quality.\r\n */\r\n public static DEFAULT_USE_SPHERICAL_HARMONICS = true;\r\n\r\n /**\r\n * Default value used for activating energy conservation for the specular workflow.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n */\r\n public static DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value for whether IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n public static DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n\r\n /**\r\n * Default value for whether the legacy specular energy conservation is used.\r\n */\r\n public static DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION = true;\r\n\r\n private _useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n\r\n private _useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses height smith correlated visibility term.\r\n * If you intent to not use our default BRDF, you need to load a separate BRDF Texture for the PBR\r\n * You can either load https://assets.babylonjs.com/environments/uncorrelatedBRDF.png\r\n * or https://assets.babylonjs.com/environments/uncorrelatedBRDF.dds to have more precision\r\n * Not relying on height correlated will also disable energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n\r\n private _useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses spherical harmonics vs spherical polynomials for the\r\n * diffuse part of the IBL.\r\n * The harmonics despite a tiny bigger cost has been proven to provide closer results\r\n * to the ground truth.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n\r\n private _useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation, when the specular workflow is active.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n * In the deactivated case, the material author has to ensure energy conservation, for a physically plausible rendering.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n\r\n private _mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n /**\r\n * Defines if IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n\r\n private _useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the legacy specular energy conservation is used.\r\n * If activated, the specular color is multiplied with (1. - maxChannel(albedo color)).\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRBRDF\", 90, new MaterialBRDFDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n this._enable(true);\r\n }\r\n\r\n public override prepareDefines(defines: MaterialBRDFDefines): void {\r\n defines.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated;\r\n defines.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated;\r\n defines.SPHERICAL_HARMONICS = this._useSphericalHarmonics;\r\n defines.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation;\r\n defines.MIX_IBL_RADIANCE_WITH_IRRADIANCE = this._mixIblRadianceWithIrradiance;\r\n defines.LEGACY_SPECULAR_ENERGY_CONSERVATION = this._useLegacySpecularEnergyConservation;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRBRDFConfiguration\";\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"pbrBRDFConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrBRDFConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { serialize, expandToProperty } from \"../../Misc/decorators\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport type { PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialBRDFDefines extends MaterialDefines {\r\n BRDF_V_HEIGHT_CORRELATED = false;\r\n MS_BRDF_ENERGY_CONSERVATION = false;\r\n SPHERICAL_HARMONICS = false;\r\n SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = false;\r\n MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n LEGACY_SPECULAR_ENERGY_CONSERVATION = false;\r\n BASE_DIFFUSE_MODEL = 0;\r\n DIELECTRIC_SPECULAR_MODEL = 0;\r\n CONDUCTOR_SPECULAR_MODEL = 0;\r\n}\r\n\r\n/**\r\n * Plugin that implements the BRDF component of the PBR material\r\n */\r\nexport class PBRBRDFConfiguration extends MaterialPluginBase {\r\n /**\r\n * Default value used for the energy conservation.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value used for the Smith Visibility Height Correlated mode.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = true;\r\n\r\n /**\r\n * Default value used for the IBL diffuse part.\r\n * This can help switching back to the polynomials mode globally which is a tiny bit\r\n * less GPU intensive at the drawback of a lower quality.\r\n */\r\n public static DEFAULT_USE_SPHERICAL_HARMONICS = true;\r\n\r\n /**\r\n * Default value used for activating energy conservation for the specular workflow.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n */\r\n public static DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value for whether IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n public static DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n\r\n /**\r\n * Default value for whether the legacy specular energy conservation is used.\r\n */\r\n public static DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Defines the default diffuse model used by the material.\r\n */\r\n public static DEFAULT_DIFFUSE_MODEL = Constants.MATERIAL_DIFFUSE_MODEL_E_OREN_NAYAR;\r\n\r\n /**\r\n * Defines the default dielectric specular model used by the material.\r\n */\r\n public static DEFAULT_DIELECTRIC_SPECULAR_MODEL: number = Constants.MATERIAL_DIELECTRIC_SPECULAR_MODEL_GLTF;\r\n\r\n /**\r\n * Defines the default conductor specular model used by the material.\r\n */\r\n public static DEFAULT_CONDUCTOR_SPECULAR_MODEL: number = Constants.MATERIAL_CONDUCTOR_SPECULAR_MODEL_GLTF;\r\n\r\n private _useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n\r\n private _useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses height smith correlated visibility term.\r\n * If you intent to not use our default BRDF, you need to load a separate BRDF Texture for the PBR\r\n * You can either load https://assets.babylonjs.com/environments/uncorrelatedBRDF.png\r\n * or https://assets.babylonjs.com/environments/uncorrelatedBRDF.dds to have more precision\r\n * Not relying on height correlated will also disable energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n\r\n private _useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses spherical harmonics vs spherical polynomials for the\r\n * diffuse part of the IBL.\r\n * The harmonics despite a tiny bigger cost has been proven to provide closer results\r\n * to the ground truth.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n\r\n private _useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation, when the specular workflow is active.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n * In the deactivated case, the material author has to ensure energy conservation, for a physically plausible rendering.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n\r\n private _mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n /**\r\n * Defines if IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n\r\n private _useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the legacy specular energy conservation is used.\r\n * If activated, the specular color is multiplied with (1. - maxChannel(albedo color)).\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n\r\n private _baseDiffuseModel: number = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;\r\n /**\r\n * Defines the base diffuse roughness model of the material.\r\n */\r\n @serialize(\"baseDiffuseModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public baseDiffuseModel: number = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;\r\n\r\n private _dielectricSpecularModel: number = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;\r\n /**\r\n * The material model to use for specular lighting of dielectric materials.\r\n */\r\n @serialize(\"dielectricSpecularModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public dielectricSpecularModel: number = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;\r\n\r\n private _conductorSpecularModel: number = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;\r\n /**\r\n * The material model to use for specular lighting.\r\n */\r\n @serialize(\"conductorSpecularModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public conductorSpecularModel: number = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRBRDF\", 90, new MaterialBRDFDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n this._enable(true);\r\n }\r\n\r\n public override prepareDefines(defines: MaterialBRDFDefines): void {\r\n defines.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated;\r\n defines.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated;\r\n defines.SPHERICAL_HARMONICS = this._useSphericalHarmonics;\r\n defines.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation;\r\n defines.MIX_IBL_RADIANCE_WITH_IRRADIANCE = this._mixIblRadianceWithIrradiance;\r\n defines.LEGACY_SPECULAR_ENERGY_CONSERVATION = this._useLegacySpecularEnergyConservation;\r\n defines.BASE_DIFFUSE_MODEL = this._baseDiffuseModel;\r\n defines.DIELECTRIC_SPECULAR_MODEL = this._dielectricSpecularModel;\r\n defines.CONDUCTOR_SPECULAR_MODEL = this._conductorSpecularModel;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRBRDFConfiguration\";\r\n }\r\n}\r\n"]}
@@ -31,7 +31,6 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
31
31
  NUM_SAMPLES: string;
32
32
  REALTIME_FILTERING: boolean;
33
33
  IBL_CDF_FILTERING: boolean;
34
- BASE_DIFFUSE_MODEL: number;
35
34
  MAINUV1: boolean;
36
35
  MAINUV2: boolean;
37
36
  MAINUV3: boolean;
@@ -134,8 +133,6 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
134
133
  LINEARSPECULARREFLECTION: boolean;
135
134
  RADIANCEOCCLUSION: boolean;
136
135
  HORIZONOCCLUSION: boolean;
137
- DIELECTRIC_SPECULAR_MODEL: number;
138
- CONDUCTOR_SPECULAR_MODEL: number;
139
136
  INSTANCES: boolean;
140
137
  THIN_INSTANCES: boolean;
141
138
  INSTANCESCOLOR: boolean;
@@ -275,10 +272,6 @@ export declare abstract class PBRBaseMaterial extends PushMaterial {
275
272
  * (point spot...).
276
273
  */
277
274
  static DEFAULT_AO_ON_ANALYTICAL_LIGHTS: number;
278
- /**
279
- * Defines the default diffuse model used by the material.
280
- */
281
- static DEFAULT_DIFFUSE_MODEL: number;
282
275
  /**
283
276
  * PBRMaterialLightFalloff Physical: light is falling off following the inverse squared distance law.
284
277
  */
@@ -661,9 +654,6 @@ export declare abstract class PBRBaseMaterial extends PushMaterial {
661
654
  */
662
655
  get realTimeFilteringQuality(): number;
663
656
  set realTimeFilteringQuality(n: number);
664
- private _baseDiffuseModel;
665
- private _dielectricSpecularModel;
666
- private _conductorSpecularModel;
667
657
  /**
668
658
  * Can this material render to several textures at once
669
659
  */
@@ -44,7 +44,6 @@ export class PBRMaterialDefines extends MaterialDefines {
44
44
  this.NUM_SAMPLES = "0";
45
45
  this.REALTIME_FILTERING = false;
46
46
  this.IBL_CDF_FILTERING = false;
47
- this.BASE_DIFFUSE_MODEL = 0;
48
47
  this.MAINUV1 = false;
49
48
  this.MAINUV2 = false;
50
49
  this.MAINUV3 = false;
@@ -147,8 +146,6 @@ export class PBRMaterialDefines extends MaterialDefines {
147
146
  this.LINEARSPECULARREFLECTION = false;
148
147
  this.RADIANCEOCCLUSION = false;
149
148
  this.HORIZONOCCLUSION = false;
150
- this.DIELECTRIC_SPECULAR_MODEL = 0;
151
- this.CONDUCTOR_SPECULAR_MODEL = 0;
152
149
  this.INSTANCES = false;
153
150
  this.THIN_INSTANCES = false;
154
151
  this.INSTANCESCOLOR = false;
@@ -677,9 +674,6 @@ export class PBRBaseMaterial extends PushMaterial {
677
674
  this._forceIrradianceInFragment = false;
678
675
  this._realTimeFiltering = false;
679
676
  this._realTimeFilteringQuality = 8;
680
- this._baseDiffuseModel = PBRBaseMaterial.DEFAULT_DIFFUSE_MODEL;
681
- this._dielectricSpecularModel = 0;
682
- this._conductorSpecularModel = 0;
683
677
  /**
684
678
  * Force normal to face away from face.
685
679
  * @internal
@@ -1292,7 +1286,6 @@ export class PBRBaseMaterial extends PushMaterial {
1292
1286
  // Lights
1293
1287
  PrepareDefinesForLights(scene, mesh, defines, true, this._maxSimultaneousLights, this._disableLighting);
1294
1288
  defines._needNormals = true;
1295
- defines.BASE_DIFFUSE_MODEL = this._baseDiffuseModel;
1296
1289
  // Multiview
1297
1290
  PrepareDefinesForMultiview(scene, defines);
1298
1291
  // PrePass
@@ -1611,8 +1604,6 @@ export class PBRBaseMaterial extends PushMaterial {
1611
1604
  defines.FORCENORMALFORWARD = this._forceNormalForward;
1612
1605
  defines.RADIANCEOCCLUSION = this._useRadianceOcclusion;
1613
1606
  defines.HORIZONOCCLUSION = this._useHorizonOcclusion;
1614
- defines.DIELECTRIC_SPECULAR_MODEL = this._dielectricSpecularModel;
1615
- defines.CONDUCTOR_SPECULAR_MODEL = this._conductorSpecularModel;
1616
1607
  // Misc.
1617
1608
  if (defines._areMiscDirty) {
1618
1609
  PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this.needAlphaTestingForMesh(mesh), defines, this._applyDecalMapAfterDetailMap);
@@ -2279,10 +2270,6 @@ PBRBaseMaterial.PBRMATERIAL_ALPHATESTANDBLEND = Material.MATERIAL_ALPHATESTANDBL
2279
2270
  * (point spot...).
2280
2271
  */
2281
2272
  PBRBaseMaterial.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = 0;
2282
- /**
2283
- * Defines the default diffuse model used by the material.
2284
- */
2285
- PBRBaseMaterial.DEFAULT_DIFFUSE_MODEL = 0;
2286
2273
  /**
2287
2274
  * PBRMaterialLightFalloff Physical: light is falling off following the inverse squared distance law.
2288
2275
  */