@babylonjs/core 8.8.1 → 8.8.2

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 (72) hide show
  1. package/Engines/abstractEngine.js +2 -2
  2. package/Engines/abstractEngine.js.map +1 -1
  3. package/Engines/constants.d.ts +23 -0
  4. package/Engines/constants.js +23 -0
  5. package/Engines/constants.js.map +1 -1
  6. package/Engines/thinEngine.d.ts +1 -0
  7. package/Engines/thinEngine.js +22 -18
  8. package/Engines/thinEngine.js.map +1 -1
  9. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +8 -11
  10. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  11. package/Materials/Node/Blocks/PBR/sheenBlock.js +1 -1
  12. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  13. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +6 -2
  14. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  15. package/Materials/PBR/pbrBRDFConfiguration.d.ts +11 -0
  16. package/Materials/PBR/pbrBRDFConfiguration.js +16 -0
  17. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  18. package/Materials/PBR/pbrBaseMaterial.d.ts +4 -0
  19. package/Materials/PBR/pbrBaseMaterial.js +12 -8
  20. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  21. package/Materials/PBR/pbrMaterial.d.ts +8 -0
  22. package/Materials/PBR/pbrMaterial.js +16 -0
  23. package/Materials/PBR/pbrMaterial.js.map +1 -1
  24. package/Shaders/ShadersInclude/lightFragment.js +5 -1
  25. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  26. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +12 -5
  27. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  28. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +3 -0
  29. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  30. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +21 -8
  31. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  32. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +3 -0
  33. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  34. package/Shaders/ShadersInclude/pbrBlockReflectance.js +6 -6
  35. package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  36. package/Shaders/ShadersInclude/pbrBlockReflectance0.js +2 -7
  37. package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  38. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +20 -16
  39. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  40. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +6 -8
  41. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  42. package/Shaders/ShadersInclude/pbrDebug.js +2 -2
  43. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  44. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -5
  45. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  46. package/Shaders/pbr.fragment.js +7 -3
  47. package/Shaders/pbr.fragment.js.map +1 -1
  48. package/ShadersWGSL/ShadersInclude/lightFragment.js +5 -1
  49. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  50. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +5 -5
  51. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  52. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +3 -0
  53. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  54. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +21 -8
  55. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  56. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +3 -0
  57. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  58. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +6 -6
  59. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  60. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +2 -7
  61. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  62. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +22 -15
  63. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  64. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +6 -8
  65. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  66. package/ShadersWGSL/ShadersInclude/pbrDebug.js +2 -2
  67. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
  68. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -7
  69. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  70. package/ShadersWGSL/pbr.fragment.js +7 -3
  71. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  72. package/package.json +1 -1
@@ -17,7 +17,7 @@ import { ClearCoatBlock } from "./clearCoatBlock.js";
17
17
  import { IridescenceBlock } from "./iridescenceBlock.js";
18
18
  import { SubSurfaceBlock } from "./subSurfaceBlock.js";
19
19
 
20
- import { Color3, TmpColors } from "../../../../Maths/math.color.js";
20
+ import { Color3 } from "../../../../Maths/math.color.js";
21
21
  import { Logger } from "../../../../Misc/logger.js";
22
22
  import { BindLight, BindLights, PrepareDefinesForLight, PrepareDefinesForLights, PrepareDefinesForMultiview, PrepareUniformsAndSamplersForLight, } from "../../../materialHelper.functions.js";
23
23
  const MapOutputToVariable = {
@@ -601,16 +601,8 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
601
601
  effect.setFloat(this._invertNormalName, invertNormal ? -1 : 1);
602
602
  effect.setFloat4("vLightingIntensity", this.directIntensity, 1, this.environmentIntensity * this._scene.environmentIntensity, this.specularIntensity);
603
603
  // reflectivity bindings
604
- const outsideIOR = 1; // consider air as clear coat and other layers would remap in the shader.
605
- const ior = this.indexOfRefraction.connectInputBlock?.value ?? 1.5;
606
- // We are here deriving our default reflectance from a common value for none metallic surface.
607
- // Based of the schlick fresnel approximation model
608
- // for dielectrics.
609
- const f0 = Math.pow((ior - outsideIOR) / (ior + outsideIOR), 2);
610
- // Tweak the default F0 and F90 based on our given setup
611
- this._metallicReflectanceColor.scaleToRef(f0 * this._metallicF0Factor, TmpColors.Color3[0]);
612
604
  const metallicF90 = this._metallicF0Factor;
613
- effect.setColor4(this._vMetallicReflectanceFactorsName, TmpColors.Color3[0], metallicF90);
605
+ effect.setColor4(this._vMetallicReflectanceFactorsName, this._metallicReflectanceColor, metallicF90);
614
606
  if (nodeMaterial.imageProcessingConfiguration) {
615
607
  nodeMaterial.imageProcessingConfiguration.bind(effect);
616
608
  }
@@ -715,8 +707,13 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
715
707
  state._emitUniformFromString(this._vMetallicReflectanceFactorsName, NodeMaterialBlockConnectionPointTypes.Vector4);
716
708
  this._baseDiffuseRoughnessName = state._getFreeVariableName("baseDiffuseRoughness");
717
709
  state._emitUniformFromString(this._baseDiffuseRoughnessName, NodeMaterialBlockConnectionPointTypes.Float);
710
+ const outsideIOR = 1; // consider air as clear coat and other layers would remap in the shader.
711
+ const ior = this.indexOfRefraction.connectInputBlock?.value ?? 1.5;
712
+ // Based of the schlick fresnel approximation model
713
+ // for dielectrics.
714
+ const f0 = Math.pow((ior - outsideIOR) / (ior + outsideIOR), 2);
718
715
  code += `${state._declareLocalVar("baseColor", NodeMaterialBlockConnectionPointTypes.Vector3)} = surfaceAlbedo;
719
- ${isWebGPU ? "let" : `vec4${state.fSuffix}`} vReflectivityColor = vec4${state.fSuffix}(${this.metallic.associatedVariableName}, ${this.roughness.associatedVariableName}, ${this.indexOfRefraction.associatedVariableName || "1.5"}, 1.0);
716
+ ${isWebGPU ? "let" : `vec4${state.fSuffix}`} vReflectivityColor = vec4${state.fSuffix}(${this.metallic.associatedVariableName}, ${this.roughness.associatedVariableName}, ${this.indexOfRefraction.associatedVariableName || "1.5"}, ${f0});
720
717
  reflectivityOut = reflectivityBlock(
721
718
  vReflectivityColor
722
719
  #ifdef METALLICWORKFLOW