@onerjs/core 8.26.1 → 8.26.3

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 (269) 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/lightBlock.js +15 -4
  21. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  22. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -5
  23. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  24. package/Materials/Node/nodeMaterial.d.ts +57 -69
  25. package/Materials/Node/nodeMaterial.js +9 -86
  26. package/Materials/Node/nodeMaterial.js.map +1 -1
  27. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -1
  28. package/Materials/Node/nodeMaterialBuildState.js +35 -15
  29. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  30. package/Materials/PBR/index.d.ts +5 -0
  31. package/Materials/PBR/index.js +5 -0
  32. package/Materials/PBR/index.js.map +1 -1
  33. package/Materials/PBR/openPbrMaterial.d.ts +998 -0
  34. package/Materials/PBR/openPbrMaterial.js +2069 -0
  35. package/Materials/PBR/openPbrMaterial.js.map +1 -0
  36. package/Materials/PBR/pbrBaseMaterial.d.ts +57 -43
  37. package/Materials/PBR/pbrBaseMaterial.js +21 -304
  38. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  39. package/Materials/PBR/pbrMaterial.d.ts +0 -78
  40. package/Materials/PBR/pbrMaterial.js +0 -110
  41. package/Materials/PBR/pbrMaterial.js.map +1 -1
  42. package/Materials/floatingOriginMatrixOverrides.d.ts +3 -0
  43. package/Materials/floatingOriginMatrixOverrides.js +91 -0
  44. package/Materials/floatingOriginMatrixOverrides.js.map +1 -0
  45. package/Materials/imageProcessing.d.ts +65 -0
  46. package/Materials/imageProcessing.js +162 -0
  47. package/Materials/imageProcessing.js.map +1 -0
  48. package/Materials/imageProcessingConfiguration.defines.d.ts +25 -0
  49. package/Materials/imageProcessingConfiguration.defines.js +27 -0
  50. package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
  51. package/Materials/index.d.ts +2 -0
  52. package/Materials/index.js +2 -0
  53. package/Materials/index.js.map +1 -1
  54. package/Materials/material.d.ts +14 -0
  55. package/Materials/material.js +14 -0
  56. package/Materials/material.js.map +1 -1
  57. package/Materials/materialHelper.functions.d.ts +53 -0
  58. package/Materials/materialHelper.functions.js +297 -0
  59. package/Materials/materialHelper.functions.js.map +1 -1
  60. package/Materials/standardMaterial.d.ts +57 -121
  61. package/Materials/standardMaterial.js +21 -250
  62. package/Materials/standardMaterial.js.map +1 -1
  63. package/Materials/uv.defines.d.ts +22 -0
  64. package/Materials/uv.defines.js +24 -0
  65. package/Materials/uv.defines.js.map +1 -0
  66. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -0
  67. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  68. package/Meshes/transformNode.d.ts +2 -0
  69. package/Meshes/transformNode.js +7 -4
  70. package/Meshes/transformNode.js.map +1 -1
  71. package/Misc/decorators.d.ts +7 -0
  72. package/Misc/decorators.js +34 -0
  73. package/Misc/decorators.js.map +1 -1
  74. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +10 -1
  75. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
  76. package/Particles/Node/Blocks/index.d.ts +2 -0
  77. package/Particles/Node/Blocks/index.js +2 -0
  78. package/Particles/Node/Blocks/index.js.map +1 -1
  79. package/Particles/Node/Blocks/particleInputBlock.js +4 -1
  80. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
  81. package/Particles/Node/Blocks/particleLocalVariableBlock.d.ts +38 -0
  82. package/Particles/Node/Blocks/particleLocalVariableBlock.js +108 -0
  83. package/Particles/Node/Blocks/particleLocalVariableBlock.js.map +1 -0
  84. package/Particles/Node/Blocks/particleVectorLengthBlock.d.ts +26 -0
  85. package/Particles/Node/Blocks/particleVectorLengthBlock.js +50 -0
  86. package/Particles/Node/Blocks/particleVectorLengthBlock.js.map +1 -0
  87. package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +2 -1
  88. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +45 -0
  89. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  90. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +2 -1
  91. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  92. package/Rendering/geometryBufferRenderer.js +6 -4
  93. package/Rendering/geometryBufferRenderer.js.map +1 -1
  94. package/Rendering/iblCdfGenerator.js +28 -20
  95. package/Rendering/iblCdfGenerator.js.map +1 -1
  96. package/Rendering/reflectiveShadowMap.d.ts +3 -3
  97. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
  98. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  99. package/Shaders/ShadersInclude/clusteredLightingFunctions.js +3 -1
  100. package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
  101. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  102. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  103. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +34 -0
  104. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  105. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  106. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  107. package/Shaders/ShadersInclude/importanceSampling.js +4 -0
  108. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  109. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -0
  110. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  111. package/Shaders/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  112. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +127 -0
  113. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  114. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  115. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js +35 -0
  116. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  117. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  118. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  119. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  120. package/Shaders/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  121. package/Shaders/ShadersInclude/openpbrCoatLayerData.js +59 -0
  122. package/Shaders/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  123. package/Shaders/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  124. package/Shaders/ShadersInclude/openpbrConductorReflectance.js +19 -0
  125. package/Shaders/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  126. package/Shaders/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  127. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js +30 -0
  128. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  129. package/Shaders/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  130. package/Shaders/ShadersInclude/openpbrDirectLighting.js +69 -0
  131. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  132. package/Shaders/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  133. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  134. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  135. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.d.ts +5 -0
  136. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js +129 -0
  137. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js.map +1 -0
  138. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  139. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +106 -0
  140. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  141. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.d.ts +6 -0
  142. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +115 -0
  143. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -0
  144. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  145. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +72 -0
  146. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  147. package/Shaders/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  148. package/Shaders/ShadersInclude/openpbrGeometryInfo.js +46 -0
  149. package/Shaders/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  150. package/Shaders/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  151. package/Shaders/ShadersInclude/openpbrIblFunctions.js +221 -0
  152. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  153. package/Shaders/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  154. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  155. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  156. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  157. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  158. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  159. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  160. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +72 -0
  161. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  162. package/Shaders/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  163. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  164. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  165. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  166. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  167. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  168. package/Shaders/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  169. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +18 -0
  170. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  171. package/Shaders/ShadersInclude/openpbrVertexDeclaration.d.ts +6 -0
  172. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +103 -0
  173. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -0
  174. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  175. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  176. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -0
  177. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
  178. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  179. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  180. package/Shaders/ShadersInclude/pbrHelperFunctions.js +2 -0
  181. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  182. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  183. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  184. package/Shaders/openpbr.fragment.d.ts +54 -0
  185. package/Shaders/openpbr.fragment.js +206 -0
  186. package/Shaders/openpbr.fragment.js.map +1 -0
  187. package/Shaders/openpbr.vertex.d.ts +39 -0
  188. package/Shaders/openpbr.vertex.js +238 -0
  189. package/Shaders/openpbr.vertex.js.map +1 -0
  190. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +1 -1
  191. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  192. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
  193. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  194. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +28 -0
  195. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  196. package/ShadersWGSL/ShadersInclude/importanceSampling.js +4 -0
  197. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  198. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  199. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +126 -0
  200. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  201. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  202. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js +36 -0
  203. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  204. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  205. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  206. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  207. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  208. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js +59 -0
  209. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  210. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  211. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js +19 -0
  212. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  213. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  214. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js +33 -0
  215. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  216. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  217. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +69 -0
  218. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  219. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  220. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  221. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  222. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  223. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +112 -0
  224. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  225. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  226. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +68 -0
  227. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  228. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  229. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js +54 -0
  230. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  231. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  232. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +218 -0
  233. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  234. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  235. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  236. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  237. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  238. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  239. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  240. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  241. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +51 -0
  242. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  243. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  244. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  245. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  246. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  247. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  248. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  249. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  250. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +17 -0
  251. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  252. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
  253. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  254. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  255. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  256. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +2 -0
  257. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  258. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
  259. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  260. package/ShadersWGSL/openpbr.fragment.d.ts +52 -0
  261. package/ShadersWGSL/openpbr.fragment.js +193 -0
  262. package/ShadersWGSL/openpbr.fragment.js.map +1 -0
  263. package/ShadersWGSL/openpbr.vertex.d.ts +37 -0
  264. package/ShadersWGSL/openpbr.vertex.js +227 -0
  265. package/ShadersWGSL/openpbr.vertex.js.map +1 -0
  266. package/package.json +1 -1
  267. package/scene.d.ts +21 -0
  268. package/scene.js +29 -3
  269. package/scene.js.map +1 -1
@@ -0,0 +1,106 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrEnvironmentLighting";
4
+ const shader = `#ifdef REFLECTION
5
+ vec3 baseDiffuseEnvironmentLight=sampleIrradiance(
6
+ normalW
7
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
8
+ ,vEnvironmentIrradiance
9
+ #endif
10
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
11
+ ,reflectionMatrix
12
+ #endif
13
+ #ifdef USEIRRADIANCEMAP
14
+ ,irradianceSampler
15
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
16
+ ,vReflectionDominantDirection
17
+ #endif
18
+ #endif
19
+ #ifdef REALTIME_FILTERING
20
+ ,vReflectionFilteringInfo
21
+ #ifdef IBL_CDF_FILTERING
22
+ ,icdfSampler
23
+ #endif
24
+ #endif
25
+ ,vReflectionInfos
26
+ ,viewDirectionW
27
+ ,base_diffuse_roughness
28
+ ,base_color
29
+ );
30
+ #ifdef REFLECTIONMAP_3D
31
+ vec3 reflectionCoords=vec3(0.,0.,0.);
32
+ #else
33
+ vec2 reflectionCoords=vec2(0.,0.);
34
+ #endif
35
+ float specularAlphaG=specular_roughness*specular_roughness;
36
+ #ifdef ANISOTROPIC_BASE
37
+ vec3 baseSpecularEnvironmentLight=sampleRadianceAnisotropic(specularAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos
38
+ ,baseGeoInfo
39
+ ,normalW
40
+ ,viewDirectionW
41
+ ,vPositionW
42
+ ,noise
43
+ ,reflectionSampler
44
+ #ifdef REALTIME_FILTERING
45
+ ,vReflectionFilteringInfo
46
+ #endif
47
+ );
48
+ #else
49
+ reflectionCoords=createReflectionCoords(vPositionW,normalW);vec3 baseSpecularEnvironmentLight=sampleRadiance(specularAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos
50
+ ,baseGeoInfo
51
+ ,reflectionSampler
52
+ ,reflectionCoords
53
+ #ifdef REALTIME_FILTERING
54
+ ,vReflectionFilteringInfo
55
+ #endif
56
+ );
57
+ #endif
58
+ #ifdef ANISOTROPIC_BASE
59
+ baseSpecularEnvironmentLight=mix(baseSpecularEnvironmentLight.rgb,baseDiffuseEnvironmentLight,specularAlphaG*specularAlphaG*max(1.0-baseGeoInfo.anisotropy,0.3));
60
+ #else
61
+ baseSpecularEnvironmentLight=mix(baseSpecularEnvironmentLight.rgb,baseDiffuseEnvironmentLight,specularAlphaG);
62
+ #endif
63
+ vec3 coatEnvironmentLight=vec3(0.,0.,0.);if (coat_weight>0.0) {
64
+ #ifdef REFLECTIONMAP_3D
65
+ vec3 reflectionCoords=vec3(0.,0.,0.);
66
+ #else
67
+ vec2 reflectionCoords=vec2(0.,0.);
68
+ #endif
69
+ reflectionCoords=createReflectionCoords(vPositionW,coatNormalW);float coatAlphaG=coat_roughness*coat_roughness;
70
+ #ifdef ANISOTROPIC_COAT
71
+ coatEnvironmentLight=sampleRadianceAnisotropic(coatAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos
72
+ ,coatGeoInfo
73
+ ,coatNormalW
74
+ ,viewDirectionW
75
+ ,vPositionW
76
+ ,noise
77
+ ,reflectionSampler
78
+ #ifdef REALTIME_FILTERING
79
+ ,vReflectionFilteringInfo
80
+ #endif
81
+ );
82
+ #else
83
+ coatEnvironmentLight=sampleRadiance(coatAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos
84
+ ,coatGeoInfo
85
+ ,reflectionSampler
86
+ ,reflectionCoords
87
+ #ifdef REALTIME_FILTERING
88
+ ,vReflectionFilteringInfo
89
+ #endif
90
+ );
91
+ #endif
92
+ }
93
+ float dielectricIblFresnel=getReflectanceFromBRDFLookup(vec3(baseDielectricReflectance.F0),vec3(baseDielectricReflectance.F90),baseGeoInfo.environmentBrdf).r;vec3 dielectricIblColoredFresnel=getReflectanceFromBRDFLookup(baseDielectricReflectance.coloredF0,baseDielectricReflectance.coloredF90,baseGeoInfo.environmentBrdf);vec3 conductorIblFresnel=conductorIblFresnel(baseConductorReflectance,baseGeoInfo.NdotV,specular_roughness,baseGeoInfo.environmentBrdf);float coatIblFresnel=0.0;if (coat_weight>0.0) {coatIblFresnel=getReflectanceFromBRDFLookup(vec3(coatReflectance.F0),vec3(coatReflectance.F90),coatGeoInfo.environmentBrdf).r;}
94
+ vec3 slab_diffuse_ibl=vec3(0.,0.,0.);vec3 slab_glossy_ibl=vec3(0.,0.,0.);vec3 slab_metal_ibl=vec3(0.,0.,0.);vec3 slab_coat_ibl=vec3(0.,0.,0.);slab_diffuse_ibl=baseDiffuseEnvironmentLight*vLightingIntensity.z;slab_diffuse_ibl*=aoOut.ambientOcclusionColor;slab_glossy_ibl=baseSpecularEnvironmentLight*vLightingIntensity.z;slab_metal_ibl=baseSpecularEnvironmentLight*conductorIblFresnel*vLightingIntensity.z;vec3 coatAbsorption=vec3(1.0);if (coat_weight>0.0) {slab_coat_ibl=coatEnvironmentLight*vLightingIntensity.z;float hemisphere_avg_fresnel=coatReflectance.F0+0.5*(1.0-coatReflectance.F0);float averageReflectance=(coatIblFresnel+hemisphere_avg_fresnel)*0.5;float roughnessFactor=1.0-coat_roughness*0.5;averageReflectance*=roughnessFactor;float darkened_transmission=(1.0-averageReflectance)*(1.0-averageReflectance);darkened_transmission=mix(1.0,darkened_transmission,coat_darkening);float sin2=1.0-coatGeoInfo.NdotV*coatGeoInfo.NdotV;sin2=sin2/(coat_ior*coat_ior);float cos_t=sqrt(1.0-sin2);float coatPathLength=1.0/cos_t;vec3 colored_transmission=pow(coat_color,vec3(coatPathLength));coatAbsorption=mix(vec3(1.0),colored_transmission*darkened_transmission,coat_weight);}
95
+ vec3 slab_subsurface_ibl=vec3(0.,0.,0.);vec3 slab_translucent_base_ibl=vec3(0.,0.,0.);vec3 slab_fuzz_ibl=vec3(0.,0.,0.);slab_diffuse_ibl*=base_color.rgb;
96
+ #define CUSTOM_FRAGMENT_BEFORE_IBLLAYERCOMPOSITION
97
+ vec3 material_opaque_base_ibl=mix(slab_diffuse_ibl,slab_subsurface_ibl,subsurface_weight);vec3 material_dielectric_base_ibl=mix(material_opaque_base_ibl,slab_translucent_base_ibl,transmission_weight);vec3 material_dielectric_gloss_ibl=layer(material_dielectric_base_ibl,slab_glossy_ibl,dielectricIblFresnel,vec3(1.0),specular_color);vec3 material_base_substrate_ibl=mix(material_dielectric_gloss_ibl,slab_metal_ibl,base_metalness);vec3 material_coated_base_ibl=layer(material_base_substrate_ibl,slab_coat_ibl,coatIblFresnel,coatAbsorption,vec3(1.0));material_surface_ibl=mix(material_coated_base_ibl,slab_fuzz_ibl,fuzz_weight);
98
+ #endif
99
+ `;
100
+ // Sideeffect
101
+ if (!ShaderStore.IncludesShadersStore[name]) {
102
+ ShaderStore.IncludesShadersStore[name] = shader;
103
+ }
104
+ /** @internal */
105
+ export const openpbrEnvironmentLighting = { name, shader };
106
+ //# sourceMappingURL=openpbrEnvironmentLighting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrEnvironmentLighting.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/openpbrEnvironmentLighting.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,4BAA4B,CAAC;AAC1C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Fd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrEnvironmentLighting\";\nconst shader = `#ifdef REFLECTION\nvec3 baseDiffuseEnvironmentLight=sampleIrradiance(\nnormalW\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\n,vEnvironmentIrradiance\n#endif\n#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))\n,reflectionMatrix\n#endif\n#ifdef USEIRRADIANCEMAP\n,irradianceSampler\n#ifdef USE_IRRADIANCE_DOMINANT_DIRECTION\n,vReflectionDominantDirection\n#endif\n#endif\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#ifdef IBL_CDF_FILTERING\n,icdfSampler\n#endif\n#endif\n,vReflectionInfos\n,viewDirectionW\n,base_diffuse_roughness\n,base_color\n);\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=vec3(0.,0.,0.);\n#else\nvec2 reflectionCoords=vec2(0.,0.);\n#endif\nfloat specularAlphaG=specular_roughness*specular_roughness;\n#ifdef ANISOTROPIC_BASE\nvec3 baseSpecularEnvironmentLight=sampleRadianceAnisotropic(specularAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos\n,baseGeoInfo\n,normalW\n,viewDirectionW\n,vPositionW\n,noise\n,reflectionSampler\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n);\n#else\nreflectionCoords=createReflectionCoords(vPositionW,normalW);vec3 baseSpecularEnvironmentLight=sampleRadiance(specularAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos\n,baseGeoInfo\n,reflectionSampler\n,reflectionCoords\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n);\n#endif\n#ifdef ANISOTROPIC_BASE\nbaseSpecularEnvironmentLight=mix(baseSpecularEnvironmentLight.rgb,baseDiffuseEnvironmentLight,specularAlphaG*specularAlphaG*max(1.0-baseGeoInfo.anisotropy,0.3));\n#else\nbaseSpecularEnvironmentLight=mix(baseSpecularEnvironmentLight.rgb,baseDiffuseEnvironmentLight,specularAlphaG);\n#endif\nvec3 coatEnvironmentLight=vec3(0.,0.,0.);if (coat_weight>0.0) {\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=vec3(0.,0.,0.);\n#else\nvec2 reflectionCoords=vec2(0.,0.);\n#endif\nreflectionCoords=createReflectionCoords(vPositionW,coatNormalW);float coatAlphaG=coat_roughness*coat_roughness;\n#ifdef ANISOTROPIC_COAT\ncoatEnvironmentLight=sampleRadianceAnisotropic(coatAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos\n,coatGeoInfo\n,coatNormalW\n,viewDirectionW\n,vPositionW\n,noise\n,reflectionSampler\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n);\n#else\ncoatEnvironmentLight=sampleRadiance(coatAlphaG,vReflectionMicrosurfaceInfos.rgb,vReflectionInfos\n,coatGeoInfo\n,reflectionSampler\n,reflectionCoords\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n);\n#endif\n}\nfloat dielectricIblFresnel=getReflectanceFromBRDFLookup(vec3(baseDielectricReflectance.F0),vec3(baseDielectricReflectance.F90),baseGeoInfo.environmentBrdf).r;vec3 dielectricIblColoredFresnel=getReflectanceFromBRDFLookup(baseDielectricReflectance.coloredF0,baseDielectricReflectance.coloredF90,baseGeoInfo.environmentBrdf);vec3 conductorIblFresnel=conductorIblFresnel(baseConductorReflectance,baseGeoInfo.NdotV,specular_roughness,baseGeoInfo.environmentBrdf);float coatIblFresnel=0.0;if (coat_weight>0.0) {coatIblFresnel=getReflectanceFromBRDFLookup(vec3(coatReflectance.F0),vec3(coatReflectance.F90),coatGeoInfo.environmentBrdf).r;}\nvec3 slab_diffuse_ibl=vec3(0.,0.,0.);vec3 slab_glossy_ibl=vec3(0.,0.,0.);vec3 slab_metal_ibl=vec3(0.,0.,0.);vec3 slab_coat_ibl=vec3(0.,0.,0.);slab_diffuse_ibl=baseDiffuseEnvironmentLight*vLightingIntensity.z;slab_diffuse_ibl*=aoOut.ambientOcclusionColor;slab_glossy_ibl=baseSpecularEnvironmentLight*vLightingIntensity.z;slab_metal_ibl=baseSpecularEnvironmentLight*conductorIblFresnel*vLightingIntensity.z;vec3 coatAbsorption=vec3(1.0);if (coat_weight>0.0) {slab_coat_ibl=coatEnvironmentLight*vLightingIntensity.z;float hemisphere_avg_fresnel=coatReflectance.F0+0.5*(1.0-coatReflectance.F0);float averageReflectance=(coatIblFresnel+hemisphere_avg_fresnel)*0.5;float roughnessFactor=1.0-coat_roughness*0.5;averageReflectance*=roughnessFactor;float darkened_transmission=(1.0-averageReflectance)*(1.0-averageReflectance);darkened_transmission=mix(1.0,darkened_transmission,coat_darkening);float sin2=1.0-coatGeoInfo.NdotV*coatGeoInfo.NdotV;sin2=sin2/(coat_ior*coat_ior);float cos_t=sqrt(1.0-sin2);float coatPathLength=1.0/cos_t;vec3 colored_transmission=pow(coat_color,vec3(coatPathLength));coatAbsorption=mix(vec3(1.0),colored_transmission*darkened_transmission,coat_weight);}\nvec3 slab_subsurface_ibl=vec3(0.,0.,0.);vec3 slab_translucent_base_ibl=vec3(0.,0.,0.);vec3 slab_fuzz_ibl=vec3(0.,0.,0.);slab_diffuse_ibl*=base_color.rgb;\n#define CUSTOM_FRAGMENT_BEFORE_IBLLAYERCOMPOSITION\nvec3 material_opaque_base_ibl=mix(slab_diffuse_ibl,slab_subsurface_ibl,subsurface_weight);vec3 material_dielectric_base_ibl=mix(material_opaque_base_ibl,slab_translucent_base_ibl,transmission_weight);vec3 material_dielectric_gloss_ibl=layer(material_dielectric_base_ibl,slab_glossy_ibl,dielectricIblFresnel,vec3(1.0),specular_color);vec3 material_base_substrate_ibl=mix(material_dielectric_gloss_ibl,slab_metal_ibl,base_metalness);vec3 material_coated_base_ibl=layer(material_base_substrate_ibl,slab_coat_ibl,coatIblFresnel,coatAbsorption,vec3(1.0));material_surface_ibl=mix(material_coated_base_ibl,slab_fuzz_ibl,fuzz_weight);\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrEnvironmentLighting = { name, shader };\n"]}
@@ -0,0 +1,6 @@
1
+ import "./decalFragmentDeclaration.js";
2
+ /** @internal */
3
+ export declare const openpbrFragmentDeclaration: {
4
+ name: string;
5
+ shader: string;
6
+ };
@@ -0,0 +1,115 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ import "./decalFragmentDeclaration.js";
4
+ const name = "openpbrFragmentDeclaration";
5
+ const shader = `uniform vec4 vEyePosition;uniform float vBaseWeight;uniform vec4 vBaseColor;uniform float vBaseDiffuseRoughness;uniform vec4 vReflectanceInfo;uniform vec4 vSpecularColor;uniform vec3 vSpecularAnisotropy;uniform float vCoatWeight;uniform vec3 vCoatColor;uniform float vCoatRoughness;uniform float vCoatRoughnessAnisotropy;uniform float vCoatIor;uniform float vCoatDarkening;uniform vec2 vGeometryCoatTangent;uniform vec3 vEmissionColor;uniform vec4 vLightingIntensity;uniform float visibility;
6
+ #ifdef BASE_COLOR
7
+ uniform vec2 vBaseColorInfos;
8
+ #endif
9
+ #ifdef BASE_WEIGHT
10
+ uniform vec2 vBaseWeightInfos;
11
+ #endif
12
+ #ifdef BASE_METALNESS
13
+ uniform vec2 vBaseMetalnessInfos;
14
+ #endif
15
+ #ifdef BASE_DIFFUSE_ROUGHNESS
16
+ uniform vec2 vBaseDiffuseRoughnessInfos;
17
+ #endif
18
+ #ifdef SPECULAR_WEIGHT
19
+ uniform vec2 vSpecularWeightInfos;
20
+ #endif
21
+ #ifdef SPECULAR_COLOR
22
+ uniform vec2 vSpecularColorInfos;
23
+ #endif
24
+ #ifdef SPECULAR_ROUGHNESS
25
+ uniform vec2 vSpecularRoughnessInfos;
26
+ #endif
27
+ #ifdef SPECULAR_ROUGHNESS_ANISOTROPY
28
+ uniform vec2 vSpecularRoughnessAnisotropyInfos;
29
+ #endif
30
+ #ifdef SPECULAR_IOR
31
+ uniform vec2 vSpecularIorInfos;
32
+ #endif
33
+ #ifdef AMBIENT_OCCLUSION
34
+ uniform vec2 vAmbientOcclusionInfos;
35
+ #endif
36
+ #ifdef GEOMETRY_NORMAL
37
+ uniform vec2 vGeometryNormalInfos;uniform vec2 vTangentSpaceParams;
38
+ #endif
39
+ #ifdef GEOMETRY_TANGENT
40
+ uniform vec2 vGeometryTangentInfos;
41
+ #endif
42
+ #ifdef GEOMETRY_COAT_NORMAL
43
+ uniform vec2 vGeometryCoatNormalInfos;
44
+ #endif
45
+ #ifdef GEOMETRY_OPACITY
46
+ uniform vec2 vGeometryOpacityInfos;
47
+ #endif
48
+ #ifdef EMISSION_COLOR
49
+ uniform vec2 vEmissionColorInfos;
50
+ #endif
51
+ #ifdef COAT_WEIGHT
52
+ uniform vec2 vCoatWeightInfos;
53
+ #endif
54
+ #ifdef COAT_COLOR
55
+ uniform vec2 vCoatColorInfos;
56
+ #endif
57
+ #ifdef COAT_ROUGHNESS
58
+ uniform vec2 vCoatRoughnessInfos;
59
+ #endif
60
+ #ifdef COAT_ROUGHNESS_ANISOTROPY
61
+ uniform vec2 vCoatRoughnessAnisotropyInfos;
62
+ #endif
63
+ #ifdef COAT_IOR
64
+ uniform vec2 vCoatIorInfos;
65
+ #endif
66
+ #ifdef COAT_DARKENING
67
+ uniform vec2 vCoatDarkeningInfos;
68
+ #endif
69
+ #ifdef GEOMETRY_COAT_TANGENT
70
+ uniform vec2 vGeometryCoatTangentInfos;
71
+ #endif
72
+ #if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION) || defined(PREPASS)
73
+ uniform mat4 view;
74
+ #endif
75
+ #ifdef REFLECTION
76
+ uniform vec2 vReflectionInfos;
77
+ #ifdef REALTIME_FILTERING
78
+ uniform vec2 vReflectionFilteringInfo;
79
+ #endif
80
+ uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;
81
+ #if defined(USEIRRADIANCEMAP) && defined(USE_IRRADIANCE_DOMINANT_DIRECTION)
82
+ uniform vec3 vReflectionDominantDirection;
83
+ #endif
84
+ #if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)
85
+ uniform vec3 vReflectionPosition;uniform vec3 vReflectionSize;
86
+ #endif
87
+ #endif
88
+ #ifdef PREPASS
89
+ #ifdef SS_SCATTERING
90
+ uniform float scatteringDiffusionProfile;
91
+ #endif
92
+ #endif
93
+ #if DEBUGMODE>0
94
+ uniform vec2 vDebugMode;
95
+ #endif
96
+ #ifdef DETAIL
97
+ uniform vec4 vDetailInfos;
98
+ #endif
99
+ #include<decalFragmentDeclaration>
100
+ #ifdef USESPHERICALFROMREFLECTIONMAP
101
+ #ifdef SPHERICAL_HARMONICS
102
+ uniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;
103
+ #else
104
+ uniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;
105
+ #endif
106
+ #endif
107
+ #define ADDITIONAL_FRAGMENT_DECLARATION
108
+ `;
109
+ // Sideeffect
110
+ if (!ShaderStore.IncludesShadersStore[name]) {
111
+ ShaderStore.IncludesShadersStore[name] = shader;
112
+ }
113
+ /** @internal */
114
+ export const openpbrFragmentDeclaration = { name, shader };
115
+ //# sourceMappingURL=openpbrFragmentDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrFragmentDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/openpbrFragmentDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,4BAA4B,CAAC;AAEpC,MAAM,IAAI,GAAG,4BAA4B,CAAC;AAC1C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./decalFragmentDeclaration\";\n\nconst name = \"openpbrFragmentDeclaration\";\nconst shader = `uniform vec4 vEyePosition;uniform float vBaseWeight;uniform vec4 vBaseColor;uniform float vBaseDiffuseRoughness;uniform vec4 vReflectanceInfo;uniform vec4 vSpecularColor;uniform vec3 vSpecularAnisotropy;uniform float vCoatWeight;uniform vec3 vCoatColor;uniform float vCoatRoughness;uniform float vCoatRoughnessAnisotropy;uniform float vCoatIor;uniform float vCoatDarkening;uniform vec2 vGeometryCoatTangent;uniform vec3 vEmissionColor;uniform vec4 vLightingIntensity;uniform float visibility;\n#ifdef BASE_COLOR\nuniform vec2 vBaseColorInfos;\n#endif\n#ifdef BASE_WEIGHT\nuniform vec2 vBaseWeightInfos;\n#endif\n#ifdef BASE_METALNESS\nuniform vec2 vBaseMetalnessInfos;\n#endif\n#ifdef BASE_DIFFUSE_ROUGHNESS\nuniform vec2 vBaseDiffuseRoughnessInfos;\n#endif\n#ifdef SPECULAR_WEIGHT\nuniform vec2 vSpecularWeightInfos;\n#endif\n#ifdef SPECULAR_COLOR\nuniform vec2 vSpecularColorInfos;\n#endif\n#ifdef SPECULAR_ROUGHNESS\nuniform vec2 vSpecularRoughnessInfos;\n#endif\n#ifdef SPECULAR_ROUGHNESS_ANISOTROPY\nuniform vec2 vSpecularRoughnessAnisotropyInfos;\n#endif\n#ifdef SPECULAR_IOR\nuniform vec2 vSpecularIorInfos;\n#endif\n#ifdef AMBIENT_OCCLUSION\nuniform vec2 vAmbientOcclusionInfos;\n#endif\n#ifdef GEOMETRY_NORMAL\nuniform vec2 vGeometryNormalInfos;uniform vec2 vTangentSpaceParams;\n#endif\n#ifdef GEOMETRY_TANGENT\nuniform vec2 vGeometryTangentInfos;\n#endif\n#ifdef GEOMETRY_COAT_NORMAL\nuniform vec2 vGeometryCoatNormalInfos;\n#endif\n#ifdef GEOMETRY_OPACITY\nuniform vec2 vGeometryOpacityInfos;\n#endif\n#ifdef EMISSION_COLOR\nuniform vec2 vEmissionColorInfos;\n#endif\n#ifdef COAT_WEIGHT\nuniform vec2 vCoatWeightInfos;\n#endif\n#ifdef COAT_COLOR\nuniform vec2 vCoatColorInfos;\n#endif\n#ifdef COAT_ROUGHNESS\nuniform vec2 vCoatRoughnessInfos;\n#endif\n#ifdef COAT_ROUGHNESS_ANISOTROPY\nuniform vec2 vCoatRoughnessAnisotropyInfos;\n#endif\n#ifdef COAT_IOR\nuniform vec2 vCoatIorInfos;\n#endif\n#ifdef COAT_DARKENING\nuniform vec2 vCoatDarkeningInfos;\n#endif\n#ifdef GEOMETRY_COAT_TANGENT\nuniform vec2 vGeometryCoatTangentInfos;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION) || defined(PREPASS)\nuniform mat4 view;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#ifdef REALTIME_FILTERING\nuniform vec2 vReflectionFilteringInfo;\n#endif\nuniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;\n#if defined(USEIRRADIANCEMAP) && defined(USE_IRRADIANCE_DOMINANT_DIRECTION)\nuniform vec3 vReflectionDominantDirection;\n#endif\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;uniform vec3 vReflectionSize;\n#endif\n#endif\n#ifdef PREPASS\n#ifdef SS_SCATTERING\nuniform float scatteringDiffusionProfile;\n#endif\n#endif\n#if DEBUGMODE>0\nuniform vec2 vDebugMode;\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;\n#endif\n#include<decalFragmentDeclaration>\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nuniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;\n#else\nuniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;\n#endif\n#endif\n#define ADDITIONAL_FRAGMENT_DECLARATION\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrFragmentDeclaration = { name, shader };\n"]}
@@ -0,0 +1,6 @@
1
+ import "./samplerFragmentDeclaration.js";
2
+ /** @internal */
3
+ export declare const openpbrFragmentSamplersDeclaration: {
4
+ name: string;
5
+ shader: string;
6
+ };
@@ -0,0 +1,72 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ import "./samplerFragmentDeclaration.js";
4
+ const name = "openpbrFragmentSamplersDeclaration";
5
+ const shader = `#include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_SAMPLERNAME_,baseColor)
6
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight,_SAMPLERNAME_,baseWeight)
7
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness,_SAMPLERNAME_,baseDiffuseRoughness)
8
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness,_SAMPLERNAME_,baseMetalness)
9
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight,_SAMPLERNAME_,specularWeight)
10
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor,_SAMPLERNAME_,specularColor)
11
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness,_SAMPLERNAME_,specularRoughness)
12
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy,_SAMPLERNAME_,specularRoughnessAnisotropy)
13
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight,_SAMPLERNAME_,coatWeight)
14
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor,_SAMPLERNAME_,coatColor)
15
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_SAMPLERNAME_,coatRoughness)
16
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy,_SAMPLERNAME_,coatRoughnessAnisotropy)
17
+ #include <samplerFragmentDeclaration>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening,_SAMPLERNAME_,coatDarkening)
18
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_SAMPLERNAME_,geometryOpacity)
19
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent,_SAMPLERNAME_,geometryTangent)
20
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_COAT_TANGENT,_VARYINGNAME_,GeometryCoatTangent,_SAMPLERNAME_,geometryCoatTangent)
21
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_SAMPLERNAME_,emissionColor)
22
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_SAMPLERNAME_,ambientOcclusion)
23
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)
24
+ #ifdef REFLECTION
25
+ #ifdef REFLECTIONMAP_3D
26
+ #define sampleReflection(s,c) textureCube(s,c)
27
+ uniform samplerCube reflectionSampler;
28
+ #ifdef LODBASEDMICROSFURACE
29
+ #define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)
30
+ #else
31
+ uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
32
+ #endif
33
+ #ifdef USEIRRADIANCEMAP
34
+ uniform samplerCube irradianceSampler;
35
+ #endif
36
+ #else
37
+ #define sampleReflection(s,c) texture2D(s,c)
38
+ uniform sampler2D reflectionSampler;
39
+ #ifdef LODBASEDMICROSFURACE
40
+ #define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)
41
+ #else
42
+ uniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;
43
+ #endif
44
+ #ifdef USEIRRADIANCEMAP
45
+ uniform sampler2D irradianceSampler;
46
+ #endif
47
+ #endif
48
+ #ifdef REFLECTIONMAP_SKYBOX
49
+ varying vec3 vPositionUVW;
50
+ #else
51
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
52
+ varying vec3 vDirectionW;
53
+ #endif
54
+ #endif
55
+ #endif
56
+ #ifdef ENVIRONMENTBRDF
57
+ uniform sampler2D environmentBrdfSampler;
58
+ #endif
59
+ #ifdef ANISOTROPIC
60
+ uniform sampler2D blueNoiseSampler;
61
+ #endif
62
+ #ifdef IBL_CDF_FILTERING
63
+ uniform sampler2D icdfSampler;
64
+ #endif
65
+ `;
66
+ // Sideeffect
67
+ if (!ShaderStore.IncludesShadersStore[name]) {
68
+ ShaderStore.IncludesShadersStore[name] = shader;
69
+ }
70
+ /** @internal */
71
+ export const openpbrFragmentSamplersDeclaration = { name, shader };
72
+ //# sourceMappingURL=openpbrFragmentSamplersDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrFragmentSamplersDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,8BAA8B,CAAC;AAEtC,MAAM,IAAI,GAAG,oCAAoC,CAAC;AAClD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Dd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./samplerFragmentDeclaration\";\n\nconst name = \"openpbrFragmentSamplersDeclaration\";\nconst shader = `#include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_SAMPLERNAME_,baseColor)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight,_SAMPLERNAME_,baseWeight)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness,_SAMPLERNAME_,baseDiffuseRoughness)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness,_SAMPLERNAME_,baseMetalness)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight,_SAMPLERNAME_,specularWeight)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor,_SAMPLERNAME_,specularColor)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness,_SAMPLERNAME_,specularRoughness)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy,_SAMPLERNAME_,specularRoughnessAnisotropy)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight,_SAMPLERNAME_,coatWeight)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor,_SAMPLERNAME_,coatColor)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_SAMPLERNAME_,coatRoughness)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy,_SAMPLERNAME_,coatRoughnessAnisotropy)\n#include <samplerFragmentDeclaration>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening,_SAMPLERNAME_,coatDarkening)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_SAMPLERNAME_,geometryOpacity)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent,_SAMPLERNAME_,geometryTangent)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_COAT_TANGENT,_VARYINGNAME_,GeometryCoatTangent,_SAMPLERNAME_,geometryCoatTangent)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_SAMPLERNAME_,emissionColor)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_SAMPLERNAME_,ambientOcclusion)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform samplerCube irradianceSampler;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform sampler2D irradianceSampler;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#endif\n#ifdef ENVIRONMENTBRDF\nuniform sampler2D environmentBrdfSampler;\n#endif\n#ifdef ANISOTROPIC\nuniform sampler2D blueNoiseSampler;\n#endif\n#ifdef IBL_CDF_FILTERING\nuniform sampler2D icdfSampler;\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrFragmentSamplersDeclaration = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrGeometryInfo: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,46 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrGeometryInfo";
4
+ const shader = `struct geometryInfoOutParams
5
+ {float NdotV;float NdotVUnclamped;vec3 environmentBrdf;float horizonOcclusion;};
6
+ #ifdef ANISOTROPIC
7
+ struct geometryInfoAnisoOutParams
8
+ {float NdotV;float NdotVUnclamped;vec3 environmentBrdf;float horizonOcclusion;float anisotropy;vec3 anisotropicTangent;vec3 anisotropicBitangent;mat3 TBN;};
9
+ #endif
10
+ #define pbr_inline
11
+ geometryInfoOutParams geometryInfo(
12
+ in vec3 normalW,in vec3 viewDirectionW,in float roughness,in vec3 geometricNormalW
13
+ )
14
+ {geometryInfoOutParams outParams;outParams.NdotVUnclamped=dot(normalW,viewDirectionW);outParams.NdotV=absEps(outParams.NdotVUnclamped);
15
+ #if defined(ENVIRONMENTBRDF)
16
+ outParams.environmentBrdf=getBRDFLookup(outParams.NdotV,roughness);
17
+ #else
18
+ outParams.environmentBrdf=vec3(0.0);
19
+ #endif
20
+ outParams.horizonOcclusion=1.0;
21
+ #if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
22
+ #ifdef HORIZONOCCLUSION
23
+ #if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL)
24
+ #ifdef REFLECTIONMAP_3D
25
+ outParams.horizonOcclusion=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);
26
+ #endif
27
+ #endif
28
+ #endif
29
+ #endif
30
+ return outParams;}
31
+ #ifdef ANISOTROPIC
32
+ #define pbr_inline
33
+ geometryInfoAnisoOutParams geometryInfoAniso(
34
+ in vec3 normalW,in vec3 viewDirectionW,in float roughness,in vec3 geometricNormalW
35
+ ,in vec3 vAnisotropy,in mat3 TBN
36
+ )
37
+ {geometryInfoOutParams geoInfo=geometryInfo(normalW,viewDirectionW,roughness,geometricNormalW);geometryInfoAnisoOutParams outParams;outParams.NdotV=geoInfo.NdotV;outParams.NdotVUnclamped=geoInfo.NdotVUnclamped;outParams.environmentBrdf=geoInfo.environmentBrdf;outParams.horizonOcclusion=geoInfo.horizonOcclusion;outParams.anisotropy=vAnisotropy.b;vec3 anisotropyDirection=vec3(vAnisotropy.xy,0.);mat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));outParams.anisotropicTangent=normalize(anisoTBN*anisotropyDirection);outParams.anisotropicBitangent=normalize(cross(anisoTBN[2],outParams.anisotropicTangent));outParams.TBN=TBN;return outParams;}
38
+ #endif
39
+ `;
40
+ // Sideeffect
41
+ if (!ShaderStore.IncludesShadersStore[name]) {
42
+ ShaderStore.IncludesShadersStore[name] = shader;
43
+ }
44
+ /** @internal */
45
+ export const openpbrGeometryInfo = { name, shader };
46
+ //# sourceMappingURL=openpbrGeometryInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrGeometryInfo.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/openpbrGeometryInfo.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrGeometryInfo\";\nconst shader = `struct geometryInfoOutParams\n{float NdotV;float NdotVUnclamped;vec3 environmentBrdf;float horizonOcclusion;};\n#ifdef ANISOTROPIC\nstruct geometryInfoAnisoOutParams\n{float NdotV;float NdotVUnclamped;vec3 environmentBrdf;float horizonOcclusion;float anisotropy;vec3 anisotropicTangent;vec3 anisotropicBitangent;mat3 TBN;};\n#endif\n#define pbr_inline\ngeometryInfoOutParams geometryInfo(\nin vec3 normalW,in vec3 viewDirectionW,in float roughness,in vec3 geometricNormalW\n)\n{geometryInfoOutParams outParams;outParams.NdotVUnclamped=dot(normalW,viewDirectionW);outParams.NdotV=absEps(outParams.NdotVUnclamped);\n#if defined(ENVIRONMENTBRDF)\noutParams.environmentBrdf=getBRDFLookup(outParams.NdotV,roughness);\n#else\noutParams.environmentBrdf=vec3(0.0);\n#endif\noutParams.horizonOcclusion=1.0;\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef HORIZONOCCLUSION\n#if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL)\n#ifdef REFLECTIONMAP_3D\noutParams.horizonOcclusion=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);\n#endif\n#endif\n#endif\n#endif\nreturn outParams;}\n#ifdef ANISOTROPIC\n#define pbr_inline\ngeometryInfoAnisoOutParams geometryInfoAniso(\nin vec3 normalW,in vec3 viewDirectionW,in float roughness,in vec3 geometricNormalW\n,in vec3 vAnisotropy,in mat3 TBN\n)\n{geometryInfoOutParams geoInfo=geometryInfo(normalW,viewDirectionW,roughness,geometricNormalW);geometryInfoAnisoOutParams outParams;outParams.NdotV=geoInfo.NdotV;outParams.NdotVUnclamped=geoInfo.NdotVUnclamped;outParams.environmentBrdf=geoInfo.environmentBrdf;outParams.horizonOcclusion=geoInfo.horizonOcclusion;outParams.anisotropy=vAnisotropy.b;vec3 anisotropyDirection=vec3(vAnisotropy.xy,0.);mat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));outParams.anisotropicTangent=normalize(anisoTBN*anisotropyDirection);outParams.anisotropicBitangent=normalize(cross(anisoTBN[2],outParams.anisotropicTangent));outParams.TBN=TBN;return outParams;}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrGeometryInfo = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrIblFunctions: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,221 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrIblFunctions";
4
+ const shader = `#ifdef REFLECTION
5
+ vec3 sampleIrradiance(
6
+ in vec3 surfaceNormal
7
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
8
+ ,in vec3 vEnvironmentIrradianceSH
9
+ #endif
10
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
11
+ ,in mat4 iblMatrix
12
+ #endif
13
+ #ifdef USEIRRADIANCEMAP
14
+ #ifdef REFLECTIONMAP_3D
15
+ ,in samplerCube irradianceSampler
16
+ #else
17
+ ,in sampler2D irradianceSampler
18
+ #endif
19
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
20
+ ,in vec3 reflectionDominantDirection
21
+ #endif
22
+ #endif
23
+ #ifdef REALTIME_FILTERING
24
+ ,in vec2 vReflectionFilteringInfo
25
+ #ifdef IBL_CDF_FILTERING
26
+ ,in sampler2D icdfSampler
27
+ #endif
28
+ #endif
29
+ ,in vec2 vReflectionInfos
30
+ ,in vec3 viewDirectionW
31
+ ,in float diffuseRoughness
32
+ ,in vec3 surfaceAlbedo
33
+ ) {vec3 environmentIrradiance=vec3(0.,0.,0.);
34
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
35
+ vec3 irradianceVector=(iblMatrix*vec4(surfaceNormal,0)).xyz;vec3 irradianceView=(iblMatrix*vec4(viewDirectionW,0)).xyz;
36
+ #if !defined(USE_IRRADIANCE_DOMINANT_DIRECTION) && !defined(REALTIME_FILTERING)
37
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
38
+ {float NdotV=max(dot(surfaceNormal,viewDirectionW),0.0);irradianceVector=mix(irradianceVector,irradianceView,(0.5*(1.0-NdotV))*diffuseRoughness);}
39
+ #endif
40
+ #endif
41
+ #ifdef REFLECTIONMAP_OPPOSITEZ
42
+ irradianceVector.z*=-1.0;
43
+ #endif
44
+ #ifdef INVERTCUBICMAP
45
+ irradianceVector.y*=-1.0;
46
+ #endif
47
+ #endif
48
+ #ifdef USESPHERICALFROMREFLECTIONMAP
49
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
50
+ environmentIrradiance=vEnvironmentIrradianceSH;
51
+ #else
52
+ #if defined(REALTIME_FILTERING)
53
+ environmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView
54
+ #ifdef IBL_CDF_FILTERING
55
+ ,icdfSampler
56
+ #endif
57
+ );
58
+ #else
59
+ environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
60
+ #endif
61
+ #endif
62
+ #elif defined(USEIRRADIANCEMAP)
63
+ #ifdef REFLECTIONMAP_3D
64
+ vec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,irradianceVector);
65
+ #else
66
+ vec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,reflectionCoords);
67
+ #endif
68
+ environmentIrradiance=environmentIrradianceFromTexture.rgb;
69
+ #ifdef RGBDREFLECTION
70
+ environmentIrradiance.rgb=fromRGBD(environmentIrradianceFromTexture);
71
+ #endif
72
+ #ifdef GAMMAREFLECTION
73
+ environmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);
74
+ #endif
75
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
76
+ vec3 Ls=normalize(reflectionDominantDirection);float NoL=dot(irradianceVector,Ls);float NoV=dot(irradianceVector,irradianceView);vec3 diffuseRoughnessTerm=vec3(1.0);
77
+ #if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON
78
+ float LoV=dot (Ls,irradianceView);float mag=length(reflectionDominantDirection)*2.0;vec3 clampedAlbedo=clamp(surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3(1.0),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0,1.0)));
79
+ #elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY
80
+ vec3 H=(irradianceView+Ls)*0.5;float VoH=dot(irradianceView,H);diffuseRoughnessTerm=vec3(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);
81
+ #endif
82
+ environmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;
83
+ #endif
84
+ #endif
85
+ environmentIrradiance*=vReflectionInfos.x;return environmentIrradiance;}
86
+ #define pbr_inline
87
+ #ifdef REFLECTIONMAP_3D
88
+ vec3 createReflectionCoords(
89
+ #else
90
+ vec2 createReflectionCoords(
91
+ #endif
92
+ in vec3 vPositionW
93
+ ,in vec3 normalW
94
+ )
95
+ {vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);
96
+ #ifdef REFLECTIONMAP_OPPOSITEZ
97
+ reflectionVector.z*=-1.0;
98
+ #endif
99
+ #ifdef REFLECTIONMAP_3D
100
+ vec3 reflectionCoords=reflectionVector;
101
+ #else
102
+ vec2 reflectionCoords=reflectionVector.xy;
103
+ #ifdef REFLECTIONMAP_PROJECTION
104
+ reflectionCoords/=reflectionVector.z;
105
+ #endif
106
+ reflectionCoords.y=1.0-reflectionCoords.y;
107
+ #endif
108
+ return reflectionCoords;}
109
+ #define pbr_inline
110
+ #define inline
111
+ vec3 sampleRadiance(
112
+ in float alphaG
113
+ ,in vec3 vReflectionMicrosurfaceInfos
114
+ ,in vec2 vReflectionInfos
115
+ ,in geometryInfoOutParams geoInfo
116
+ #ifdef REFLECTIONMAP_3D
117
+ ,in samplerCube reflectionSampler
118
+ ,const vec3 reflectionCoords
119
+ #else
120
+ ,in sampler2D reflectionSampler
121
+ ,const vec2 reflectionCoords
122
+ #endif
123
+ #ifdef REALTIME_FILTERING
124
+ ,in vec2 vReflectionFilteringInfo
125
+ #endif
126
+ )
127
+ {vec4 environmentRadiance=vec4(0.,0.,0.,0.);
128
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
129
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
130
+ #elif defined(LINEARSPECULARREFLECTION)
131
+ float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
132
+ #else
133
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
134
+ #endif
135
+ reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
136
+ #ifdef REALTIME_FILTERING
137
+ environmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);
138
+ #else
139
+ environmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
140
+ #endif
141
+ #ifdef RGBDREFLECTION
142
+ environmentRadiance.rgb=fromRGBD(environmentRadiance);
143
+ #endif
144
+ #ifdef GAMMAREFLECTION
145
+ environmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);
146
+ #endif
147
+ environmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}
148
+ #if defined(ANISOTROPIC)
149
+ #define pbr_inline
150
+ #define inline
151
+ vec3 sampleRadianceAnisotropic(
152
+ in float alphaG
153
+ ,in vec3 vReflectionMicrosurfaceInfos
154
+ ,in vec2 vReflectionInfos
155
+ ,in geometryInfoAnisoOutParams geoInfo
156
+ ,const vec3 normalW
157
+ ,const vec3 viewDirectionW
158
+ ,const vec3 positionW
159
+ ,const vec3 noise
160
+ #ifdef REFLECTIONMAP_3D
161
+ ,in samplerCube reflectionSampler
162
+ #else
163
+ ,in sampler2D reflectionSampler
164
+ #endif
165
+ #ifdef REALTIME_FILTERING
166
+ ,in vec2 vReflectionFilteringInfo
167
+ #endif
168
+ )
169
+ {vec4 environmentRadiance=vec4(0.,0.,0.,0.);float alphaT=alphaG*sqrt(2.0/(1.0+(1.0-geoInfo.anisotropy)*(1.0-geoInfo.anisotropy)));float alphaB=(1.0-geoInfo.anisotropy)*alphaT;alphaG=alphaB;
170
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
171
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
172
+ #elif defined(LINEARSPECULARREFLECTION)
173
+ float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
174
+ #else
175
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
176
+ #endif
177
+ reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
178
+ #ifdef REALTIME_FILTERING
179
+ vec3 view=(reflectionMatrix*vec4(viewDirectionW,0.0)).xyz;vec3 tangent=(reflectionMatrix*vec4(geoInfo.anisotropicTangent,0.0)).xyz;vec3 bitangent=(reflectionMatrix*vec4(geoInfo.anisotropicBitangent,0.0)).xyz;vec3 normal=(reflectionMatrix*vec4(normalW,0.0)).xyz;
180
+ #ifdef REFLECTIONMAP_OPPOSITEZ
181
+ view.z*=-1.0;tangent.z*=-1.0;bitangent.z*=-1.0;normal.z*=-1.0;
182
+ #endif
183
+ environmentRadiance =
184
+ vec4(radianceAnisotropic(alphaT,alphaB,reflectionSampler,
185
+ view,tangent,
186
+ bitangent,normal,
187
+ vReflectionFilteringInfo,noise.xy),
188
+ 1.0);
189
+ #else
190
+ const int samples=16;vec4 radianceSample=vec4(0.0);vec3 reflectionCoords=vec3(0.0);float sample_weight=0.0;float total_weight=0.0;float step=1.0/float(max(samples-1,1));for (int i=0; i<samples; ++i) {float t=mix(-1.0,1.0,float(i)*step);t+=step*2.0*noise.x;sample_weight=max(1.0-abs(t),0.001);sample_weight*=sample_weight;t*=min(4.0*alphaT*geoInfo.anisotropy,1.0);vec3 bentNormal;if (t<0.0) {float blend=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {float blend=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}
191
+ reflectionCoords=createReflectionCoords(positionW,bentNormal);radianceSample=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
192
+ #ifdef RGBDREFLECTION
193
+ environmentRadiance.rgb+=sample_weight*fromRGBD(radianceSample);
194
+ #elif defined(GAMMAREFLECTION)
195
+ environmentRadiance.rgb+=sample_weight*toLinearSpace(radianceSample.rgb);
196
+ #else
197
+ environmentRadiance.rgb+=sample_weight*radianceSample.rgb;
198
+ #endif
199
+ total_weight+=sample_weight;}
200
+ environmentRadiance=vec4(environmentRadiance.xyz/float(total_weight),1.0);
201
+ #endif
202
+ environmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}
203
+ #endif
204
+ #define pbr_inline
205
+ vec3 conductorIblFresnel(in ReflectanceParams reflectance,in float NdotV,in float roughness,in vec3 environmentBrdf)
206
+ {
207
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
208
+ vec3 albedoF0=mix(reflectance.coloredF0,pow(reflectance.coloredF0,vec3(1.4)),roughness);return getF82Specular(NdotV,albedoF0,reflectance.coloredF90,roughness);
209
+ #else
210
+ return getReflectanceFromBRDFLookup(reflectance.coloredF0,reflectance.coloredF90,environmentBrdf);
211
+ #endif
212
+ }
213
+ #endif
214
+ `;
215
+ // Sideeffect
216
+ if (!ShaderStore.IncludesShadersStore[name]) {
217
+ ShaderStore.IncludesShadersStore[name] = shader;
218
+ }
219
+ /** @internal */
220
+ export const openpbrIblFunctions = { name, shader };
221
+ //# sourceMappingURL=openpbrIblFunctions.js.map