@onerjs/core 8.26.4 → 8.26.6

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 (151) hide show
  1. package/Engines/abstractEngine.js +2 -2
  2. package/Engines/abstractEngine.js.map +1 -1
  3. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +6 -0
  4. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  5. package/FrameGraph/frameGraphContext.d.ts +2 -1
  6. package/FrameGraph/frameGraphContext.js +4 -1
  7. package/FrameGraph/frameGraphContext.js.map +1 -1
  8. package/Lights/Clustered/clusteredLightContainer.d.ts +1 -1
  9. package/Lights/Clustered/clusteredLightContainer.js +4 -5
  10. package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
  11. package/Lights/pointLight.js +4 -4
  12. package/Lights/pointLight.js.map +1 -1
  13. package/Lights/rectAreaLight.js +4 -4
  14. package/Lights/rectAreaLight.js.map +1 -1
  15. package/Lights/spotLight.js +2 -2
  16. package/Lights/spotLight.js.map +1 -1
  17. package/Materials/Background/backgroundMaterial.d.ts +19 -91
  18. package/Materials/Background/backgroundMaterial.js +17 -245
  19. package/Materials/Background/backgroundMaterial.js.map +1 -1
  20. package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +3 -1
  21. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +15 -6
  22. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  23. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -1
  24. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  25. package/Materials/Node/Blocks/Dual/lightBlock.js +15 -4
  26. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  27. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.d.ts +20 -0
  28. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js +41 -3
  29. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js.map +1 -1
  30. package/Materials/Node/Blocks/Fragment/smartFilterFragmentOutputBlock.js +0 -1
  31. package/Materials/Node/Blocks/Fragment/smartFilterFragmentOutputBlock.js.map +1 -1
  32. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -5
  33. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  34. package/Materials/Node/nodeMaterial.d.ts +57 -69
  35. package/Materials/Node/nodeMaterial.js +9 -86
  36. package/Materials/Node/nodeMaterial.js.map +1 -1
  37. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -1
  38. package/Materials/Node/nodeMaterialBuildState.js +35 -15
  39. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  40. package/Materials/PBR/index.d.ts +5 -0
  41. package/Materials/PBR/index.js +5 -0
  42. package/Materials/PBR/index.js.map +1 -1
  43. package/Materials/PBR/openPbrMaterial.d.ts +998 -0
  44. package/Materials/PBR/openPbrMaterial.js +2069 -0
  45. package/Materials/PBR/openPbrMaterial.js.map +1 -0
  46. package/Materials/PBR/pbrBaseMaterial.d.ts +65 -43
  47. package/Materials/PBR/pbrBaseMaterial.js +37 -308
  48. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  49. package/Materials/PBR/pbrMaterial.d.ts +0 -78
  50. package/Materials/PBR/pbrMaterial.js +0 -110
  51. package/Materials/PBR/pbrMaterial.js.map +1 -1
  52. package/Materials/floatingOriginMatrixOverrides.d.ts +3 -0
  53. package/Materials/floatingOriginMatrixOverrides.js +91 -0
  54. package/Materials/floatingOriginMatrixOverrides.js.map +1 -0
  55. package/Materials/imageProcessing.d.ts +65 -0
  56. package/Materials/imageProcessing.js +162 -0
  57. package/Materials/imageProcessing.js.map +1 -0
  58. package/Materials/imageProcessingConfiguration.defines.d.ts +25 -0
  59. package/Materials/imageProcessingConfiguration.defines.js +27 -0
  60. package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
  61. package/Materials/index.d.ts +2 -0
  62. package/Materials/index.js +2 -0
  63. package/Materials/index.js.map +1 -1
  64. package/Materials/material.d.ts +14 -0
  65. package/Materials/material.js +14 -0
  66. package/Materials/material.js.map +1 -1
  67. package/Materials/materialHelper.functions.d.ts +53 -0
  68. package/Materials/materialHelper.functions.js +297 -0
  69. package/Materials/materialHelper.functions.js.map +1 -1
  70. package/Materials/standardMaterial.d.ts +57 -121
  71. package/Materials/standardMaterial.js +21 -250
  72. package/Materials/standardMaterial.js.map +1 -1
  73. package/Materials/uv.defines.d.ts +22 -0
  74. package/Materials/uv.defines.js +24 -0
  75. package/Materials/uv.defines.js.map +1 -0
  76. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -0
  77. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  78. package/Misc/decorators.d.ts +7 -0
  79. package/Misc/decorators.js +34 -0
  80. package/Misc/decorators.js.map +1 -1
  81. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +10 -1
  82. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
  83. package/Particles/Node/Blocks/index.d.ts +2 -0
  84. package/Particles/Node/Blocks/index.js +2 -0
  85. package/Particles/Node/Blocks/index.js.map +1 -1
  86. package/Particles/Node/Blocks/particleInputBlock.js +4 -1
  87. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
  88. package/Particles/Node/Blocks/particleLocalVariableBlock.d.ts +38 -0
  89. package/Particles/Node/Blocks/particleLocalVariableBlock.js +108 -0
  90. package/Particles/Node/Blocks/particleLocalVariableBlock.js.map +1 -0
  91. package/Particles/Node/Blocks/particleVectorLengthBlock.d.ts +26 -0
  92. package/Particles/Node/Blocks/particleVectorLengthBlock.js +50 -0
  93. package/Particles/Node/Blocks/particleVectorLengthBlock.js.map +1 -0
  94. package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +2 -1
  95. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +45 -0
  96. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  97. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +2 -1
  98. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  99. package/Rendering/geometryBufferRenderer.js +6 -4
  100. package/Rendering/geometryBufferRenderer.js.map +1 -1
  101. package/Rendering/iblCdfGenerator.js +28 -20
  102. package/Rendering/iblCdfGenerator.js.map +1 -1
  103. package/Rendering/reflectiveShadowMap.d.ts +3 -3
  104. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
  105. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  106. package/Shaders/ShadersInclude/clusteredLightingFunctions.js +3 -1
  107. package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
  108. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  109. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  110. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +34 -0
  111. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  112. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  113. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  114. package/Shaders/ShadersInclude/importanceSampling.js +4 -0
  115. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  116. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -0
  117. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  118. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  119. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  120. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -0
  121. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
  122. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  123. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  124. package/Shaders/ShadersInclude/pbrHelperFunctions.js +2 -0
  125. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  126. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  127. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  128. package/Shaders/openpbr.vertex.js +1 -1
  129. package/Shaders/openpbr.vertex.js.map +1 -1
  130. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +1 -1
  131. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  132. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
  133. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  134. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +28 -0
  135. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  136. package/ShadersWGSL/ShadersInclude/importanceSampling.js +4 -0
  137. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  138. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
  139. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  140. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  141. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  142. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +2 -0
  143. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  144. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
  145. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  146. package/ShadersWGSL/openpbr.vertex.js +1 -1
  147. package/ShadersWGSL/openpbr.vertex.js.map +1 -1
  148. package/package.json +1 -1
  149. package/scene.d.ts +21 -0
  150. package/scene.js +29 -3
  151. package/scene.js.map +1 -1
@@ -238,6 +238,7 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
238
238
  state._excludeVariableName("finalColor");
239
239
  state._excludeVariableName("vClipSpacePosition");
240
240
  state._excludeVariableName("vDebugMode");
241
+ state._excludeVariableName("vViewDepth");
241
242
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
242
243
  this._initShaderSourceAsync(state.shaderLanguage);
243
244
  }
@@ -570,7 +571,7 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
570
571
  break;
571
572
  }
572
573
  const onlyUpdateBuffersList = state.uniforms.indexOf("vLightData" + lightIndex) >= 0;
573
- PrepareUniformsAndSamplersForLight(lightIndex, state.uniforms, state.samplers, defines["PROJECTEDLIGHTTEXTURE" + lightIndex], uniformBuffers, onlyUpdateBuffersList, defines["IESLIGHTTEXTURE" + lightIndex]);
574
+ PrepareUniformsAndSamplersForLight(lightIndex, state.uniforms, state.samplers, defines["PROJECTEDLIGHTTEXTURE" + lightIndex], uniformBuffers, onlyUpdateBuffersList, defines["IESLIGHTTEXTURE" + lightIndex], defines["CLUSTLIGHT" + lightIndex]);
574
575
  }
575
576
  }
576
577
  isReady(mesh, nodeMaterial, defines) {
@@ -663,6 +664,10 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
663
664
  state.compilationString += `${state._declareLocalVar("worldPos", NodeMaterialBlockConnectionPointTypes.Vector4)} = ${worldPos.associatedVariableName};\n`;
664
665
  if (this.view.isConnected) {
665
666
  state.compilationString += `${state._declareLocalVar("view", NodeMaterialBlockConnectionPointTypes.Matrix)} = ${this.view.associatedVariableName};\n`;
667
+ state._emitVaryingFromString("vViewDepth", NodeMaterialBlockConnectionPointTypes.Float);
668
+ state.compilationString +=
669
+ (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? "vertexOutputs." : "") +
670
+ `vViewDepth = (${this.view.associatedVariableName} * ${worldPos.associatedVariableName}).z;\n`;
666
671
  }
667
672
  state.compilationString += state._emitCodeFromInclude("shadowsVertex", comments, {
668
673
  repeatKey: "maxSimultaneousLights",
@@ -783,17 +788,21 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
783
788
  const comments = `//${this.name}`;
784
789
  const normalShading = this.perturbedNormal;
785
790
  let worldPosVarName = this.worldPosition.associatedVariableName;
791
+ let worldPosVarName4 = this.worldPosition.associatedVariableName;
786
792
  let worldNormalVarName = this.worldNormal.associatedVariableName;
787
793
  if (this.generateOnlyFragmentCode) {
788
794
  worldPosVarName = state._getFreeVariableName("globalWorldPos");
789
- state._emitFunction("pbr_globalworldpos", isWebGPU ? `var<private> ${worldPosVarName}:vec3${state.fSuffix};\n` : `vec3${state.fSuffix} ${worldPosVarName};\n`, comments);
795
+ state._emitFunction("pbr_globalworldpos", `${state._declareLocalVar(worldPosVarName, NodeMaterialBlockConnectionPointTypes.Vector3, false, true)};\n`, comments);
790
796
  state.compilationString += `${worldPosVarName} = ${this.worldPosition.associatedVariableName}.xyz;\n`;
797
+ worldPosVarName4 = state._getFreeVariableName("globalWorldPos4");
798
+ state._emitFunction("pbr_globalworldpos4", `${state._declareLocalVar(worldPosVarName4, NodeMaterialBlockConnectionPointTypes.Vector4, false, true)};\n`, comments);
799
+ state.compilationString += `${worldPosVarName4} = ${this.worldPosition.associatedVariableName};\n`;
791
800
  worldNormalVarName = state._getFreeVariableName("globalWorldNormal");
792
- state._emitFunction("pbr_globalworldnorm", isWebGPU ? `var<private> ${worldNormalVarName}:vec4${state.fSuffix};\n` : `vec4${state.fSuffix} ${worldNormalVarName};\n`, comments);
801
+ state._emitFunction("pbr_globalworldnorm", `${state._declareLocalVar(worldNormalVarName, NodeMaterialBlockConnectionPointTypes.Vector4, false, true)};\n`, comments);
793
802
  state.compilationString += `${worldNormalVarName} = ${this.worldNormal.associatedVariableName};\n`;
794
803
  state.compilationString += state._emitCodeFromInclude("shadowsVertex", comments, {
795
804
  repeatKey: "maxSimultaneousLights",
796
- substitutionVars: this.generateOnlyFragmentCode ? `worldPos,${this.worldPosition.associatedVariableName}` : undefined,
805
+ substitutionVars: `worldPos,${this.worldPosition.associatedVariableName}`,
797
806
  });
798
807
  state.compilationString += `#if DEBUGMODE > 0\n`;
799
808
  state.compilationString += `${state._declareLocalVar("vClipSpacePosition", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}((vec2${state.fSuffix}(${isWebGPU ? "fragmentInputs.position" : "gl_FragCoord.xy"}) / vec2${state.fSuffix}(1.0)) * 2.0 - 1.0, 0.0, 1.0);\n`;
@@ -827,6 +836,9 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
827
836
  // Includes
828
837
  //
829
838
  if (!this.light) {
839
+ if (this.generateOnlyFragmentCode && this.view.isConnected) {
840
+ state.compilationString += `${state._declareLocalVar("vViewDepth", NodeMaterialBlockConnectionPointTypes.Float)} = (${this.view.associatedVariableName} * ${worldPosVarName4}).z;\n`;
841
+ }
830
842
  // Emit for all lights
831
843
  state._emitFunctionFromInclude(state.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", comments, {
832
844
  repeatKey: "maxSimultaneousLights",
@@ -857,6 +869,10 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
857
869
  state._emitFunctionFromInclude("pbrBlockAmbientOcclusion", comments);
858
870
  state._emitFunctionFromInclude("pbrBlockAlphaFresnel", comments);
859
871
  state._emitFunctionFromInclude("pbrBlockAnisotropic", comments);
872
+ if (!isWebGPU) {
873
+ // In WebGPU, those functions are part of pbrDirectLightingFunctions
874
+ state._emitFunctionFromInclude("pbrClusteredLightingFunctions", comments);
875
+ }
860
876
  //
861
877
  // code
862
878
  //
@@ -1010,9 +1026,16 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
1010
1026
  });
1011
1027
  }
1012
1028
  else {
1029
+ let substitutionVars = `vPositionW,${worldPosVarName}.xyz`;
1030
+ if (isWebGPU) {
1031
+ substitutionVars = "fragmentInputs." + substitutionVars;
1032
+ if (this.generateOnlyFragmentCode) {
1033
+ substitutionVars += `,fragmentInputs.vViewDepth,vViewDepth`;
1034
+ }
1035
+ }
1013
1036
  state.compilationString += state._emitCodeFromInclude("lightFragment", comments, {
1014
1037
  repeatKey: "maxSimultaneousLights",
1015
- substitutionVars: `${isWebGPU ? "fragmentInputs." : ""}vPositionW,${worldPosVarName}.xyz,uniforms.vReflectivityColor,vReflectivityColor`,
1038
+ substitutionVars: substitutionVars + ",uniforms.vReflectivityColor,vReflectivityColor",
1016
1039
  });
1017
1040
  }
1018
1041
  // _____________________________ Compute Final Lit Components ________________________