@babylonjs/core 8.28.1 → 8.28.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 (272) hide show
  1. package/Engines/abstractEngine.js +2 -2
  2. package/Engines/abstractEngine.js.map +1 -1
  3. package/FrameGraph/frameGraphContext.d.ts +2 -1
  4. package/FrameGraph/frameGraphContext.js +4 -1
  5. package/FrameGraph/frameGraphContext.js.map +1 -1
  6. package/Lights/Clustered/clusteredLightContainer.d.ts +1 -1
  7. package/Lights/Clustered/clusteredLightContainer.js +4 -5
  8. package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
  9. package/Lights/pointLight.js +4 -4
  10. package/Lights/pointLight.js.map +1 -1
  11. package/Lights/rectAreaLight.js +4 -4
  12. package/Lights/rectAreaLight.js.map +1 -1
  13. package/Lights/spotLight.js +2 -2
  14. package/Lights/spotLight.js.map +1 -1
  15. package/Materials/Background/backgroundMaterial.d.ts +19 -91
  16. package/Materials/Background/backgroundMaterial.js +17 -245
  17. package/Materials/Background/backgroundMaterial.js.map +1 -1
  18. package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +3 -1
  19. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +15 -6
  20. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  21. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -1
  22. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  23. package/Materials/Node/Blocks/Dual/lightBlock.js +15 -4
  24. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  25. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.d.ts +20 -0
  26. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js +41 -3
  27. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js.map +1 -1
  28. package/Materials/Node/Blocks/Fragment/smartFilterFragmentOutputBlock.js +0 -1
  29. package/Materials/Node/Blocks/Fragment/smartFilterFragmentOutputBlock.js.map +1 -1
  30. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -5
  31. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  32. package/Materials/Node/nodeMaterial.d.ts +57 -69
  33. package/Materials/Node/nodeMaterial.js +9 -86
  34. package/Materials/Node/nodeMaterial.js.map +1 -1
  35. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -1
  36. package/Materials/Node/nodeMaterialBuildState.js +35 -15
  37. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  38. package/Materials/PBR/index.d.ts +5 -0
  39. package/Materials/PBR/index.js +5 -0
  40. package/Materials/PBR/index.js.map +1 -1
  41. package/Materials/PBR/openPbrMaterial.d.ts +998 -0
  42. package/Materials/PBR/openPbrMaterial.js +2069 -0
  43. package/Materials/PBR/openPbrMaterial.js.map +1 -0
  44. package/Materials/PBR/pbrBaseMaterial.d.ts +57 -43
  45. package/Materials/PBR/pbrBaseMaterial.js +21 -304
  46. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  47. package/Materials/PBR/pbrMaterial.d.ts +0 -78
  48. package/Materials/PBR/pbrMaterial.js +0 -110
  49. package/Materials/PBR/pbrMaterial.js.map +1 -1
  50. package/Materials/floatingOriginMatrixOverrides.d.ts +3 -0
  51. package/Materials/floatingOriginMatrixOverrides.js +91 -0
  52. package/Materials/floatingOriginMatrixOverrides.js.map +1 -0
  53. package/Materials/imageProcessing.d.ts +65 -0
  54. package/Materials/imageProcessing.js +162 -0
  55. package/Materials/imageProcessing.js.map +1 -0
  56. package/Materials/imageProcessingConfiguration.defines.d.ts +25 -0
  57. package/Materials/imageProcessingConfiguration.defines.js +27 -0
  58. package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
  59. package/Materials/index.d.ts +2 -0
  60. package/Materials/index.js +2 -0
  61. package/Materials/index.js.map +1 -1
  62. package/Materials/material.d.ts +14 -0
  63. package/Materials/material.js +14 -0
  64. package/Materials/material.js.map +1 -1
  65. package/Materials/materialHelper.functions.d.ts +53 -0
  66. package/Materials/materialHelper.functions.js +297 -0
  67. package/Materials/materialHelper.functions.js.map +1 -1
  68. package/Materials/standardMaterial.d.ts +57 -121
  69. package/Materials/standardMaterial.js +21 -250
  70. package/Materials/standardMaterial.js.map +1 -1
  71. package/Materials/uv.defines.d.ts +22 -0
  72. package/Materials/uv.defines.js +24 -0
  73. package/Materials/uv.defines.js.map +1 -0
  74. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -0
  75. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  76. package/Misc/decorators.d.ts +7 -0
  77. package/Misc/decorators.js +34 -0
  78. package/Misc/decorators.js.map +1 -1
  79. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +10 -1
  80. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
  81. package/Particles/Node/Blocks/index.d.ts +2 -0
  82. package/Particles/Node/Blocks/index.js +2 -0
  83. package/Particles/Node/Blocks/index.js.map +1 -1
  84. package/Particles/Node/Blocks/particleInputBlock.js +4 -1
  85. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
  86. package/Particles/Node/Blocks/particleLocalVariableBlock.d.ts +38 -0
  87. package/Particles/Node/Blocks/particleLocalVariableBlock.js +108 -0
  88. package/Particles/Node/Blocks/particleLocalVariableBlock.js.map +1 -0
  89. package/Particles/Node/Blocks/particleVectorLengthBlock.d.ts +26 -0
  90. package/Particles/Node/Blocks/particleVectorLengthBlock.js +50 -0
  91. package/Particles/Node/Blocks/particleVectorLengthBlock.js.map +1 -0
  92. package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +2 -1
  93. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +45 -0
  94. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  95. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +2 -1
  96. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  97. package/Rendering/geometryBufferRenderer.js +6 -4
  98. package/Rendering/geometryBufferRenderer.js.map +1 -1
  99. package/Rendering/reflectiveShadowMap.d.ts +3 -3
  100. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
  101. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  102. package/Shaders/ShadersInclude/clusteredLightingFunctions.js +3 -1
  103. package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
  104. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  105. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  106. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +34 -0
  107. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  108. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  109. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  110. package/Shaders/ShadersInclude/importanceSampling.js +4 -0
  111. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  112. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -0
  113. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  114. package/Shaders/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  115. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +127 -0
  116. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  117. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  118. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js +35 -0
  119. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  120. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  121. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  122. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  123. package/Shaders/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  124. package/Shaders/ShadersInclude/openpbrCoatLayerData.js +59 -0
  125. package/Shaders/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  126. package/Shaders/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  127. package/Shaders/ShadersInclude/openpbrConductorReflectance.js +19 -0
  128. package/Shaders/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  129. package/Shaders/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  130. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js +30 -0
  131. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  132. package/Shaders/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  133. package/Shaders/ShadersInclude/openpbrDirectLighting.js +69 -0
  134. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  135. package/Shaders/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  136. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  137. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  138. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.d.ts +5 -0
  139. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js +129 -0
  140. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js.map +1 -0
  141. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  142. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +106 -0
  143. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  144. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.d.ts +6 -0
  145. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +115 -0
  146. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -0
  147. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  148. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +72 -0
  149. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  150. package/Shaders/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  151. package/Shaders/ShadersInclude/openpbrGeometryInfo.js +46 -0
  152. package/Shaders/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  153. package/Shaders/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  154. package/Shaders/ShadersInclude/openpbrIblFunctions.js +221 -0
  155. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  156. package/Shaders/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  157. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  158. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  159. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  160. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  161. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  162. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  163. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +72 -0
  164. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  165. package/Shaders/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  166. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  167. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  168. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  169. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  170. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  171. package/Shaders/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  172. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +18 -0
  173. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  174. package/Shaders/ShadersInclude/openpbrVertexDeclaration.d.ts +6 -0
  175. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +103 -0
  176. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -0
  177. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  178. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  179. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -0
  180. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
  181. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  182. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  183. package/Shaders/ShadersInclude/pbrHelperFunctions.js +2 -0
  184. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  185. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  186. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  187. package/Shaders/openpbr.fragment.d.ts +54 -0
  188. package/Shaders/openpbr.fragment.js +206 -0
  189. package/Shaders/openpbr.fragment.js.map +1 -0
  190. package/Shaders/openpbr.vertex.d.ts +39 -0
  191. package/Shaders/openpbr.vertex.js +238 -0
  192. package/Shaders/openpbr.vertex.js.map +1 -0
  193. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +1 -1
  194. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  195. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
  196. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  197. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +28 -0
  198. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  199. package/ShadersWGSL/ShadersInclude/importanceSampling.js +4 -0
  200. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  201. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  202. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +126 -0
  203. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  204. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  205. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js +36 -0
  206. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  207. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  208. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  209. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  210. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  211. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js +59 -0
  212. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  213. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  214. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js +19 -0
  215. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  216. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  217. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js +33 -0
  218. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  219. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  220. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +69 -0
  221. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  222. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  223. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  224. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  225. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  226. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +112 -0
  227. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  228. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  229. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +68 -0
  230. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  231. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  232. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js +54 -0
  233. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  234. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  235. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +218 -0
  236. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  237. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  238. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  239. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  240. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  241. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  242. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  243. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  244. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +51 -0
  245. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  246. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  247. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  248. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  249. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  250. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  251. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  252. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  253. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +17 -0
  254. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  255. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
  256. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  257. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  258. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  259. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +2 -0
  260. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  261. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
  262. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  263. package/ShadersWGSL/openpbr.fragment.d.ts +52 -0
  264. package/ShadersWGSL/openpbr.fragment.js +193 -0
  265. package/ShadersWGSL/openpbr.fragment.js.map +1 -0
  266. package/ShadersWGSL/openpbr.vertex.d.ts +37 -0
  267. package/ShadersWGSL/openpbr.vertex.js +227 -0
  268. package/ShadersWGSL/openpbr.vertex.js.map +1 -0
  269. package/package.json +1 -1
  270. package/scene.d.ts +21 -0
  271. package/scene.js +29 -3
  272. package/scene.js.map +1 -1
@@ -0,0 +1,206 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../Engines/shaderStore.js";
3
+ import "./ShadersInclude/prePassDeclaration.js";
4
+ import "./ShadersInclude/oitDeclaration.js";
5
+ import "./ShadersInclude/openpbrFragmentDeclaration.js";
6
+ import "./ShadersInclude/openpbrUboDeclaration.js";
7
+ import "./ShadersInclude/pbrFragmentExtraDeclaration.js";
8
+ import "./ShadersInclude/lightFragmentDeclaration.js";
9
+ import "./ShadersInclude/lightUboDeclaration.js";
10
+ import "./ShadersInclude/openpbrFragmentSamplersDeclaration.js";
11
+ import "./ShadersInclude/imageProcessingDeclaration.js";
12
+ import "./ShadersInclude/clipPlaneFragmentDeclaration.js";
13
+ import "./ShadersInclude/logDepthDeclaration.js";
14
+ import "./ShadersInclude/fogFragmentDeclaration.js";
15
+ import "./ShadersInclude/helperFunctions.js";
16
+ import "./ShadersInclude/subSurfaceScatteringFunctions.js";
17
+ import "./ShadersInclude/importanceSampling.js";
18
+ import "./ShadersInclude/pbrHelperFunctions.js";
19
+ import "./ShadersInclude/imageProcessingFunctions.js";
20
+ import "./ShadersInclude/shadowsFragmentFunctions.js";
21
+ import "./ShadersInclude/harmonicsFunctions.js";
22
+ import "./ShadersInclude/pbrDirectLightingSetupFunctions.js";
23
+ import "./ShadersInclude/pbrDirectLightingFalloffFunctions.js";
24
+ import "./ShadersInclude/pbrBRDFFunctions.js";
25
+ import "./ShadersInclude/hdrFilteringFunctions.js";
26
+ import "./ShadersInclude/pbrDirectLightingFunctions.js";
27
+ import "./ShadersInclude/pbrIBLFunctions.js";
28
+ import "./ShadersInclude/openpbrNormalMapFragmentMainFunctions.js";
29
+ import "./ShadersInclude/openpbrNormalMapFragmentFunctions.js";
30
+ import "./ShadersInclude/reflectionFunction.js";
31
+ import "./ShadersInclude/openpbrDielectricReflectance.js";
32
+ import "./ShadersInclude/openpbrConductorReflectance.js";
33
+ import "./ShadersInclude/openpbrBlockAmbientOcclusion.js";
34
+ import "./ShadersInclude/openpbrGeometryInfo.js";
35
+ import "./ShadersInclude/openpbrIblFunctions.js";
36
+ import "./ShadersInclude/clipPlaneFragment.js";
37
+ import "./ShadersInclude/pbrBlockNormalGeometric.js";
38
+ import "./ShadersInclude/openpbrNormalMapFragment.js";
39
+ import "./ShadersInclude/openpbrBlockNormalFinal.js";
40
+ import "./ShadersInclude/openpbrBaseLayerData.js";
41
+ import "./ShadersInclude/openpbrCoatLayerData.js";
42
+ import "./ShadersInclude/depthPrePass.js";
43
+ import "./ShadersInclude/openpbrEnvironmentLighting.js";
44
+ import "./ShadersInclude/openpbrDirectLightingInit.js";
45
+ import "./ShadersInclude/openpbrDirectLighting.js";
46
+ import "./ShadersInclude/logDepthFragment.js";
47
+ import "./ShadersInclude/fogFragment.js";
48
+ import "./ShadersInclude/pbrBlockImageProcessing.js";
49
+ import "./ShadersInclude/pbrBlockPrePass.js";
50
+ import "./ShadersInclude/oitFragment.js";
51
+ import "./ShadersInclude/pbrDebug.js";
52
+ const name = "openpbrPixelShader";
53
+ const shader = `#define OPENPBR_FRAGMENT_SHADER
54
+ #define CUSTOM_FRAGMENT_EXTENSION
55
+ #if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA)
56
+ #extension GL_OES_standard_derivatives : enable
57
+ #endif
58
+ #ifdef LODBASEDMICROSFURACE
59
+ #extension GL_EXT_shader_texture_lod : enable
60
+ #endif
61
+ #define CUSTOM_FRAGMENT_BEGIN
62
+ #ifdef LOGARITHMICDEPTH
63
+ #extension GL_EXT_frag_depth : enable
64
+ #endif
65
+ #include<prePassDeclaration>[SCENE_MRT_COUNT]
66
+ precision highp float;
67
+ #include<oitDeclaration>
68
+ #ifndef FROMLINEARSPACE
69
+ #define FROMLINEARSPACE
70
+ #endif
71
+ #include<__decl__openpbrFragment>
72
+ #include<pbrFragmentExtraDeclaration>
73
+ #include<__decl__lightFragment>[0..maxSimultaneousLights]
74
+ #include<openpbrFragmentSamplersDeclaration>
75
+ #include<imageProcessingDeclaration>
76
+ #include<clipPlaneFragmentDeclaration>
77
+ #include<logDepthDeclaration>
78
+ #include<fogFragmentDeclaration>
79
+ #include<helperFunctions>
80
+ #include<subSurfaceScatteringFunctions>
81
+ #include<importanceSampling>
82
+ #include<pbrHelperFunctions>
83
+ #include<imageProcessingFunctions>
84
+ #include<shadowsFragmentFunctions>
85
+ #include<harmonicsFunctions>
86
+ #include<pbrDirectLightingSetupFunctions>
87
+ #include<pbrDirectLightingFalloffFunctions>
88
+ #include<pbrBRDFFunctions>
89
+ #include<hdrFilteringFunctions>
90
+ #include<pbrDirectLightingFunctions>
91
+ #include<pbrIBLFunctions>
92
+ #include<openpbrNormalMapFragmentMainFunctions>
93
+ #include<openpbrNormalMapFragmentFunctions>
94
+ #ifdef REFLECTION
95
+ #include<reflectionFunction>
96
+ #endif
97
+ #define CUSTOM_FRAGMENT_DEFINITIONS
98
+ #include<openpbrDielectricReflectance>
99
+ #include<openpbrConductorReflectance>
100
+ #include<openpbrBlockAmbientOcclusion>
101
+ #include<openpbrGeometryInfo>
102
+ #include<openpbrIblFunctions>
103
+ vec3 layer(vec3 slab_bottom,vec3 slab_top,float lerp_factor,vec3 bottom_multiplier,vec3 top_multiplier) {return mix(slab_bottom*bottom_multiplier,slab_top*top_multiplier,lerp_factor);}
104
+ void main(void) {
105
+ #define CUSTOM_FRAGMENT_MAIN_BEGIN
106
+ #include<clipPlaneFragment>
107
+ #include<pbrBlockNormalGeometric>
108
+ vec3 coatNormalW=normalW;
109
+ #include<openpbrNormalMapFragment>
110
+ #include<openpbrBlockNormalFinal>
111
+ #include<openpbrBaseLayerData>
112
+ #include<openpbrCoatLayerData>
113
+ float subsurface_weight=0.0;float transmission_weight=0.0;float fuzz_weight=0.0;
114
+ #define CUSTOM_FRAGMENT_UPDATE_ALPHA
115
+ #include<depthPrePass>
116
+ #define CUSTOM_FRAGMENT_BEFORE_LIGHTS
117
+ ambientOcclusionOutParams aoOut;
118
+ #ifdef AMBIENT_OCCLUSION
119
+ vec3 ambientOcclusionFromTexture=texture2D(ambientOcclusionSampler,vAmbientOcclusionUV+uvOffset).rgb;
120
+ #endif
121
+ aoOut=ambientOcclusionBlock(
122
+ #ifdef AMBIENT_OCCLUSION
123
+ ambientOcclusionFromTexture,
124
+ vAmbientOcclusionInfos
125
+ #endif
126
+ );
127
+ #ifdef ANISOTROPIC_COAT
128
+ geometryInfoAnisoOutParams coatGeoInfo=geometryInfoAniso(
129
+ coatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW
130
+ ,vec3(geometry_coat_tangent.x,geometry_coat_tangent.y,coat_roughness_anisotropy),TBN
131
+ );
132
+ #else
133
+ geometryInfoOutParams coatGeoInfo=geometryInfo(
134
+ coatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW
135
+ );
136
+ #endif
137
+ specular_roughness=mix(specular_roughness,pow(min(1.0,pow(specular_roughness,4.0)+2.0*pow(coat_roughness,4.0)),0.25),coat_weight);
138
+ #ifdef ANISOTROPIC_BASE
139
+ geometryInfoAnisoOutParams baseGeoInfo=geometryInfoAniso(
140
+ normalW,viewDirectionW.xyz,specular_roughness,geometricNormalW
141
+ ,vec3(geometry_tangent.x,geometry_tangent.y,specular_roughness_anisotropy),TBN
142
+ );
143
+ #else
144
+ geometryInfoOutParams baseGeoInfo=geometryInfo(
145
+ normalW,viewDirectionW.xyz,specular_roughness,geometricNormalW
146
+ );
147
+ #endif
148
+ ReflectanceParams coatReflectance;coatReflectance=dielectricReflectance(
149
+ coat_ior
150
+ ,1.0
151
+ ,vec3(1.0)
152
+ ,coat_weight
153
+ );ReflectanceParams baseDielectricReflectance;{float effectiveCoatIor=mix(1.0,coat_ior,coat_weight);baseDielectricReflectance=dielectricReflectance(
154
+ specular_ior
155
+ ,effectiveCoatIor
156
+ ,specular_color
157
+ ,specular_weight
158
+ );}
159
+ ReflectanceParams baseConductorReflectance;baseConductorReflectance=conductorReflectance(base_color,specular_color,specular_weight);vec3 material_surface_ibl=vec3(0.,0.,0.);
160
+ #include<openpbrEnvironmentLighting>
161
+ vec3 material_surface_direct=vec3(0.,0.,0.);
162
+ #if defined(LIGHT0)
163
+ float aggShadow=0.;float numLights=0.;
164
+ #include<openpbrDirectLightingInit>[0..maxSimultaneousLights]
165
+ #include<openpbrDirectLighting>[0..maxSimultaneousLights]
166
+ #endif
167
+ vec3 material_surface_emission=vEmissionColor;
168
+ #ifdef EMISSION_COLOR
169
+ vec3 emissionColorTex=texture2D(emissionColorSampler,vEmissionColorUV+uvOffset).rgb;
170
+ #ifdef EMISSION_COLOR_GAMMA
171
+ material_surface_emission*=toLinearSpace(emissionColorTex.rgb);
172
+ #else
173
+ material_surface_emission*=emissionColorTex.rgb;
174
+ #endif
175
+ material_surface_emission*= vEmissionColorInfos.y;
176
+ #endif
177
+ material_surface_emission*=vLightingIntensity.y;
178
+ #define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION
179
+ vec4 finalColor=vec4(material_surface_ibl+material_surface_direct+material_surface_emission,alpha);
180
+ #define CUSTOM_FRAGMENT_BEFORE_FOG
181
+ finalColor=max(finalColor,0.0);
182
+ #include<logDepthFragment>
183
+ #include<fogFragment>(color,finalColor)
184
+ #include<pbrBlockImageProcessing>
185
+ #define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
186
+ #ifdef PREPASS
187
+ #include<pbrBlockPrePass>
188
+ #endif
189
+ #if !defined(PREPASS) || defined(WEBGL2)
190
+ gl_FragColor=finalColor;
191
+ #endif
192
+ #include<oitFragment>
193
+ #if ORDER_INDEPENDENT_TRANSPARENCY
194
+ if (fragDepth==nearestDepth) {frontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);} else {backColor+=finalColor;}
195
+ #endif
196
+ #include<pbrDebug>
197
+ #define CUSTOM_FRAGMENT_MAIN_END
198
+ }
199
+ `;
200
+ // Sideeffect
201
+ if (!ShaderStore.ShadersStore[name]) {
202
+ ShaderStore.ShadersStore[name] = shader;
203
+ }
204
+ /** @internal */
205
+ export const openpbrPixelShader = { name, shader };
206
+ //# sourceMappingURL=openpbr.fragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbr.fragment.js","sourceRoot":"","sources":["../../../../dev/core/src/Shaders/openpbr.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,iCAAiC,CAAC;AACzC,OAAO,6CAA6C,CAAC;AACrD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,qDAAqD,CAAC;AAC7D,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yCAAyC,CAAC;AACjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gDAAgD,CAAC;AACxD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kDAAkD,CAAC;AAC1D,OAAO,oDAAoD,CAAC;AAC5D,OAAO,mCAAmC,CAAC;AAC3C,OAAO,wCAAwC,CAAC;AAChD,OAAO,6CAA6C,CAAC;AACrD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,qCAAqC,CAAC;AAC7C,OAAO,+CAA+C,CAAC;AACvD,OAAO,8CAA8C,CAAC;AACtD,OAAO,+CAA+C,CAAC;AACvD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,0CAA0C,CAAC;AAClD,OAAO,2CAA2C,CAAC;AACnD,OAAO,0CAA0C,CAAC;AAClD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,+BAA+B,CAAC;AACvC,OAAO,6CAA6C,CAAC;AACrD,OAAO,4CAA4C,CAAC;AACpD,OAAO,wCAAwC,CAAC;AAChD,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8BAA8B,CAAC;AACtC,OAAO,0CAA0C,CAAC;AAClD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,2BAA2B,CAAC;AAEnC,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/prePassDeclaration\";\nimport \"./ShadersInclude/oitDeclaration\";\nimport \"./ShadersInclude/openpbrFragmentDeclaration\";\nimport \"./ShadersInclude/openpbrUboDeclaration\";\nimport \"./ShadersInclude/pbrFragmentExtraDeclaration\";\nimport \"./ShadersInclude/lightFragmentDeclaration\";\nimport \"./ShadersInclude/lightUboDeclaration\";\nimport \"./ShadersInclude/openpbrFragmentSamplersDeclaration\";\nimport \"./ShadersInclude/imageProcessingDeclaration\";\nimport \"./ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/fogFragmentDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/subSurfaceScatteringFunctions\";\nimport \"./ShadersInclude/importanceSampling\";\nimport \"./ShadersInclude/pbrHelperFunctions\";\nimport \"./ShadersInclude/imageProcessingFunctions\";\nimport \"./ShadersInclude/shadowsFragmentFunctions\";\nimport \"./ShadersInclude/harmonicsFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingSetupFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingFalloffFunctions\";\nimport \"./ShadersInclude/pbrBRDFFunctions\";\nimport \"./ShadersInclude/hdrFilteringFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingFunctions\";\nimport \"./ShadersInclude/pbrIBLFunctions\";\nimport \"./ShadersInclude/openpbrNormalMapFragmentMainFunctions\";\nimport \"./ShadersInclude/openpbrNormalMapFragmentFunctions\";\nimport \"./ShadersInclude/reflectionFunction\";\nimport \"./ShadersInclude/openpbrDielectricReflectance\";\nimport \"./ShadersInclude/openpbrConductorReflectance\";\nimport \"./ShadersInclude/openpbrBlockAmbientOcclusion\";\nimport \"./ShadersInclude/openpbrGeometryInfo\";\nimport \"./ShadersInclude/openpbrIblFunctions\";\nimport \"./ShadersInclude/clipPlaneFragment\";\nimport \"./ShadersInclude/pbrBlockNormalGeometric\";\nimport \"./ShadersInclude/openpbrNormalMapFragment\";\nimport \"./ShadersInclude/openpbrBlockNormalFinal\";\nimport \"./ShadersInclude/openpbrBaseLayerData\";\nimport \"./ShadersInclude/openpbrCoatLayerData\";\nimport \"./ShadersInclude/depthPrePass\";\nimport \"./ShadersInclude/openpbrEnvironmentLighting\";\nimport \"./ShadersInclude/openpbrDirectLightingInit\";\nimport \"./ShadersInclude/openpbrDirectLighting\";\nimport \"./ShadersInclude/logDepthFragment\";\nimport \"./ShadersInclude/fogFragment\";\nimport \"./ShadersInclude/pbrBlockImageProcessing\";\nimport \"./ShadersInclude/pbrBlockPrePass\";\nimport \"./ShadersInclude/oitFragment\";\nimport \"./ShadersInclude/pbrDebug\";\n\nconst name = \"openpbrPixelShader\";\nconst shader = `#define OPENPBR_FRAGMENT_SHADER\n#define CUSTOM_FRAGMENT_EXTENSION\n#if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#ifdef LODBASEDMICROSFURACE\n#extension GL_EXT_shader_texture_lod : enable\n#endif\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<prePassDeclaration>[SCENE_MRT_COUNT]\nprecision highp float;\n#include<oitDeclaration>\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE\n#endif\n#include<__decl__openpbrFragment>\n#include<pbrFragmentExtraDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<openpbrFragmentSamplersDeclaration>\n#include<imageProcessingDeclaration>\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#include<helperFunctions>\n#include<subSurfaceScatteringFunctions>\n#include<importanceSampling>\n#include<pbrHelperFunctions>\n#include<imageProcessingFunctions>\n#include<shadowsFragmentFunctions>\n#include<harmonicsFunctions>\n#include<pbrDirectLightingSetupFunctions>\n#include<pbrDirectLightingFalloffFunctions>\n#include<pbrBRDFFunctions>\n#include<hdrFilteringFunctions>\n#include<pbrDirectLightingFunctions>\n#include<pbrIBLFunctions>\n#include<openpbrNormalMapFragmentMainFunctions>\n#include<openpbrNormalMapFragmentFunctions>\n#ifdef REFLECTION\n#include<reflectionFunction>\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#include<openpbrDielectricReflectance>\n#include<openpbrConductorReflectance>\n#include<openpbrBlockAmbientOcclusion>\n#include<openpbrGeometryInfo>\n#include<openpbrIblFunctions>\nvec3 layer(vec3 slab_bottom,vec3 slab_top,float lerp_factor,vec3 bottom_multiplier,vec3 top_multiplier) {return mix(slab_bottom*bottom_multiplier,slab_top*top_multiplier,lerp_factor);}\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\n#include<pbrBlockNormalGeometric>\nvec3 coatNormalW=normalW;\n#include<openpbrNormalMapFragment>\n#include<openpbrBlockNormalFinal>\n#include<openpbrBaseLayerData>\n#include<openpbrCoatLayerData>\nfloat subsurface_weight=0.0;float transmission_weight=0.0;float fuzz_weight=0.0;\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\n#include<depthPrePass>\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\nambientOcclusionOutParams aoOut;\n#ifdef AMBIENT_OCCLUSION\nvec3 ambientOcclusionFromTexture=texture2D(ambientOcclusionSampler,vAmbientOcclusionUV+uvOffset).rgb;\n#endif\naoOut=ambientOcclusionBlock(\n#ifdef AMBIENT_OCCLUSION\nambientOcclusionFromTexture,\nvAmbientOcclusionInfos\n#endif\n);\n#ifdef ANISOTROPIC_COAT\ngeometryInfoAnisoOutParams coatGeoInfo=geometryInfoAniso(\ncoatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW\n,vec3(geometry_coat_tangent.x,geometry_coat_tangent.y,coat_roughness_anisotropy),TBN\n);\n#else\ngeometryInfoOutParams coatGeoInfo=geometryInfo(\ncoatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW\n);\n#endif\nspecular_roughness=mix(specular_roughness,pow(min(1.0,pow(specular_roughness,4.0)+2.0*pow(coat_roughness,4.0)),0.25),coat_weight);\n#ifdef ANISOTROPIC_BASE\ngeometryInfoAnisoOutParams baseGeoInfo=geometryInfoAniso(\nnormalW,viewDirectionW.xyz,specular_roughness,geometricNormalW\n,vec3(geometry_tangent.x,geometry_tangent.y,specular_roughness_anisotropy),TBN\n);\n#else\ngeometryInfoOutParams baseGeoInfo=geometryInfo(\nnormalW,viewDirectionW.xyz,specular_roughness,geometricNormalW\n);\n#endif\nReflectanceParams coatReflectance;coatReflectance=dielectricReflectance(\ncoat_ior \n,1.0 \n,vec3(1.0)\n,coat_weight\n);ReflectanceParams baseDielectricReflectance;{float effectiveCoatIor=mix(1.0,coat_ior,coat_weight);baseDielectricReflectance=dielectricReflectance(\nspecular_ior \n,effectiveCoatIor \n,specular_color\n,specular_weight\n);}\nReflectanceParams baseConductorReflectance;baseConductorReflectance=conductorReflectance(base_color,specular_color,specular_weight);vec3 material_surface_ibl=vec3(0.,0.,0.);\n#include<openpbrEnvironmentLighting>\nvec3 material_surface_direct=vec3(0.,0.,0.);\n#if defined(LIGHT0)\nfloat aggShadow=0.;float numLights=0.;\n#include<openpbrDirectLightingInit>[0..maxSimultaneousLights]\n#include<openpbrDirectLighting>[0..maxSimultaneousLights]\n#endif\nvec3 material_surface_emission=vEmissionColor;\n#ifdef EMISSION_COLOR\nvec3 emissionColorTex=texture2D(emissionColorSampler,vEmissionColorUV+uvOffset).rgb;\n#ifdef EMISSION_COLOR_GAMMA\nmaterial_surface_emission*=toLinearSpace(emissionColorTex.rgb);\n#else\nmaterial_surface_emission*=emissionColorTex.rgb;\n#endif\nmaterial_surface_emission*= vEmissionColorInfos.y;\n#endif\nmaterial_surface_emission*=vLightingIntensity.y;\n#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\nvec4 finalColor=vec4(material_surface_ibl+material_surface_direct+material_surface_emission,alpha);\n#define CUSTOM_FRAGMENT_BEFORE_FOG\nfinalColor=max(finalColor,0.0);\n#include<logDepthFragment>\n#include<fogFragment>(color,finalColor)\n#include<pbrBlockImageProcessing>\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\n#include<pbrBlockPrePass>\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=finalColor;\n#endif\n#include<oitFragment>\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);} else {backColor+=finalColor;}\n#endif\n#include<pbrDebug>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nif (!ShaderStore.ShadersStore[name]) {\n ShaderStore.ShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrPixelShader = { name, shader };\n"]}
@@ -0,0 +1,39 @@
1
+ import "./ShadersInclude/openpbrVertexDeclaration.js";
2
+ import "./ShadersInclude/openpbrUboDeclaration.js";
3
+ import "./ShadersInclude/uvAttributeDeclaration.js";
4
+ import "./ShadersInclude/mainUVVaryingDeclaration.js";
5
+ import "./ShadersInclude/helperFunctions.js";
6
+ import "./ShadersInclude/pbrBRDFFunctions.js";
7
+ import "./ShadersInclude/bonesDeclaration.js";
8
+ import "./ShadersInclude/bakedVertexAnimationDeclaration.js";
9
+ import "./ShadersInclude/instancesDeclaration.js";
10
+ import "./ShadersInclude/prePassVertexDeclaration.js";
11
+ import "./ShadersInclude/samplerVertexDeclaration.js";
12
+ import "./ShadersInclude/harmonicsFunctions.js";
13
+ import "./ShadersInclude/openpbrNormalMapVertexDeclaration.js";
14
+ import "./ShadersInclude/clipPlaneVertexDeclaration.js";
15
+ import "./ShadersInclude/fogVertexDeclaration.js";
16
+ import "./ShadersInclude/lightVxFragmentDeclaration.js";
17
+ import "./ShadersInclude/lightVxUboDeclaration.js";
18
+ import "./ShadersInclude/morphTargetsVertexGlobalDeclaration.js";
19
+ import "./ShadersInclude/morphTargetsVertexDeclaration.js";
20
+ import "./ShadersInclude/logDepthDeclaration.js";
21
+ import "./ShadersInclude/morphTargetsVertexGlobal.js";
22
+ import "./ShadersInclude/morphTargetsVertex.js";
23
+ import "./ShadersInclude/instancesVertex.js";
24
+ import "./ShadersInclude/bonesVertex.js";
25
+ import "./ShadersInclude/bakedVertexAnimation.js";
26
+ import "./ShadersInclude/prePassVertex.js";
27
+ import "./ShadersInclude/uvVariableDeclaration.js";
28
+ import "./ShadersInclude/samplerVertexImplementation.js";
29
+ import "./ShadersInclude/openpbrNormalMapVertex.js";
30
+ import "./ShadersInclude/clipPlaneVertex.js";
31
+ import "./ShadersInclude/fogVertex.js";
32
+ import "./ShadersInclude/shadowsVertex.js";
33
+ import "./ShadersInclude/vertexColorMixing.js";
34
+ import "./ShadersInclude/logDepthVertex.js";
35
+ /** @internal */
36
+ export declare const openpbrVertexShader: {
37
+ name: string;
38
+ shader: string;
39
+ };
@@ -0,0 +1,238 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../Engines/shaderStore.js";
3
+ import "./ShadersInclude/openpbrVertexDeclaration.js";
4
+ import "./ShadersInclude/openpbrUboDeclaration.js";
5
+ import "./ShadersInclude/uvAttributeDeclaration.js";
6
+ import "./ShadersInclude/mainUVVaryingDeclaration.js";
7
+ import "./ShadersInclude/helperFunctions.js";
8
+ import "./ShadersInclude/pbrBRDFFunctions.js";
9
+ import "./ShadersInclude/bonesDeclaration.js";
10
+ import "./ShadersInclude/bakedVertexAnimationDeclaration.js";
11
+ import "./ShadersInclude/instancesDeclaration.js";
12
+ import "./ShadersInclude/prePassVertexDeclaration.js";
13
+ import "./ShadersInclude/samplerVertexDeclaration.js";
14
+ import "./ShadersInclude/harmonicsFunctions.js";
15
+ import "./ShadersInclude/openpbrNormalMapVertexDeclaration.js";
16
+ import "./ShadersInclude/clipPlaneVertexDeclaration.js";
17
+ import "./ShadersInclude/fogVertexDeclaration.js";
18
+ import "./ShadersInclude/lightVxFragmentDeclaration.js";
19
+ import "./ShadersInclude/lightVxUboDeclaration.js";
20
+ import "./ShadersInclude/morphTargetsVertexGlobalDeclaration.js";
21
+ import "./ShadersInclude/morphTargetsVertexDeclaration.js";
22
+ import "./ShadersInclude/logDepthDeclaration.js";
23
+ import "./ShadersInclude/morphTargetsVertexGlobal.js";
24
+ import "./ShadersInclude/morphTargetsVertex.js";
25
+ import "./ShadersInclude/instancesVertex.js";
26
+ import "./ShadersInclude/bonesVertex.js";
27
+ import "./ShadersInclude/bakedVertexAnimation.js";
28
+ import "./ShadersInclude/prePassVertex.js";
29
+ import "./ShadersInclude/uvVariableDeclaration.js";
30
+ import "./ShadersInclude/samplerVertexImplementation.js";
31
+ import "./ShadersInclude/openpbrNormalMapVertex.js";
32
+ import "./ShadersInclude/clipPlaneVertex.js";
33
+ import "./ShadersInclude/fogVertex.js";
34
+ import "./ShadersInclude/shadowsVertex.js";
35
+ import "./ShadersInclude/vertexColorMixing.js";
36
+ import "./ShadersInclude/logDepthVertex.js";
37
+ const name = "openpbrVertexShader";
38
+ const shader = `#define OPENPBR_VERTEX_SHADER
39
+ #define CUSTOM_VERTEX_EXTENSION
40
+ precision highp float;
41
+ #include<__decl__openpbrVertex>
42
+ #define CUSTOM_VERTEX_BEGIN
43
+ attribute vec3 position;
44
+ #ifdef NORMAL
45
+ attribute vec3 normal;
46
+ #endif
47
+ #ifdef TANGENT
48
+ attribute vec4 tangent;
49
+ #endif
50
+ #ifdef UV1
51
+ attribute vec2 uv;
52
+ #endif
53
+ #include<uvAttributeDeclaration>[2..7]
54
+ #include<mainUVVaryingDeclaration>[1..7]
55
+ #ifdef VERTEXCOLOR
56
+ attribute vec4 color;
57
+ #endif
58
+ #include<helperFunctions>
59
+ #include<pbrBRDFFunctions>
60
+ #include<bonesDeclaration>
61
+ #include<bakedVertexAnimationDeclaration>
62
+ #include<instancesDeclaration>
63
+ #include<prePassVertexDeclaration>
64
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor)
65
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight)
66
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness)
67
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness)
68
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight)
69
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor)
70
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness)
71
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy)
72
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight)
73
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor)
74
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness)
75
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy)
76
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening)
77
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal)
78
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent)
79
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal)
80
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity)
81
+ #include<samplerVertexDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor)
82
+ #include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion)
83
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
84
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
85
+ varying vec3 vPositionW;
86
+ #if DEBUGMODE>0
87
+ varying vec4 vClipSpacePosition;
88
+ #endif
89
+ #ifdef NORMAL
90
+ varying vec3 vNormalW;
91
+ #if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
92
+ varying vec3 vEnvironmentIrradiance;
93
+ #include<harmonicsFunctions>
94
+ #endif
95
+ #endif
96
+ #if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
97
+ varying vec4 vColor;
98
+ #endif
99
+ #include<openpbrNormalMapVertexDeclaration>
100
+ #include<clipPlaneVertexDeclaration>
101
+ #include<fogVertexDeclaration>
102
+ #include<__decl__lightVxFragment>[0..maxSimultaneousLights]
103
+ #include<morphTargetsVertexGlobalDeclaration>
104
+ #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
105
+ #ifdef REFLECTIONMAP_SKYBOX
106
+ varying vec3 vPositionUVW;
107
+ #endif
108
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
109
+ varying vec3 vDirectionW;
110
+ #endif
111
+ #include<logDepthDeclaration>
112
+ #define CUSTOM_VERTEX_DEFINITIONS
113
+ void main(void) {
114
+ #define CUSTOM_VERTEX_MAIN_BEGIN
115
+ vec3 positionUpdated=position;
116
+ #ifdef NORMAL
117
+ vec3 normalUpdated=normal;
118
+ #endif
119
+ #ifdef TANGENT
120
+ vec4 tangentUpdated=tangent;
121
+ #endif
122
+ #ifdef UV1
123
+ vec2 uvUpdated=uv;
124
+ #endif
125
+ #ifdef UV2
126
+ vec2 uv2Updated=uv2;
127
+ #endif
128
+ #ifdef VERTEXCOLOR
129
+ vec4 colorUpdated=color;
130
+ #endif
131
+ #include<morphTargetsVertexGlobal>
132
+ #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
133
+ #ifdef REFLECTIONMAP_SKYBOX
134
+ vPositionUVW=positionUpdated;
135
+ #endif
136
+ #define CUSTOM_VERTEX_UPDATE_POSITION
137
+ #define CUSTOM_VERTEX_UPDATE_NORMAL
138
+ #include<instancesVertex>
139
+ #if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
140
+ vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
141
+ #endif
142
+ #include<bonesVertex>
143
+ #include<bakedVertexAnimation>
144
+ vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vPositionW=vec3(worldPos);
145
+ #ifdef PREPASS
146
+ #include<prePassVertex>
147
+ #endif
148
+ #ifdef NORMAL
149
+ mat3 normalWorld=mat3(finalWorld);
150
+ #if defined(INSTANCES) && defined(THIN_INSTANCES)
151
+ vNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);
152
+ #else
153
+ #ifdef NONUNIFORMSCALING
154
+ normalWorld=transposeMat3(inverseMat3(normalWorld));
155
+ #endif
156
+ vNormalW=normalize(normalWorld*normalUpdated);
157
+ #endif
158
+ #if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
159
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
160
+ vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
161
+ #if !defined(NATIVE) && !defined(WEBGPU)
162
+ bool bbb=any(isnan(position));if (bbb) { }
163
+ #endif
164
+ float NdotV=max(dot(vNormalW,viewDirectionW),0.0);vec3 roughNormal=mix(vNormalW,viewDirectionW,(0.5*(1.0-NdotV))*vBaseDiffuseRoughness);vec3 reflectionVector=vec3(reflectionMatrix*vec4(roughNormal,0)).xyz;
165
+ #else
166
+ vec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;
167
+ #endif
168
+ #ifdef REFLECTIONMAP_OPPOSITEZ
169
+ reflectionVector.z*=-1.0;
170
+ #endif
171
+ vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);
172
+ #endif
173
+ #endif
174
+ #define CUSTOM_VERTEX_UPDATE_WORLDPOS
175
+ #ifdef MULTIVIEW
176
+ if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}
177
+ #else
178
+ gl_Position=viewProjection*worldPos;
179
+ #endif
180
+ #if DEBUGMODE>0
181
+ vClipSpacePosition=gl_Position;
182
+ #endif
183
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
184
+ vDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));
185
+ #endif
186
+ #ifndef UV1
187
+ vec2 uvUpdated=vec2(0.,0.);
188
+ #endif
189
+ #ifndef UV2
190
+ vec2 uv2Updated=vec2(0.,0.);
191
+ #endif
192
+ #ifdef MAINUV1
193
+ vMainUV1=uvUpdated;
194
+ #endif
195
+ #ifdef MAINUV2
196
+ vMainUV2=uv2Updated;
197
+ #endif
198
+ #include<uvVariableDeclaration>[3..7]
199
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_MATRIXNAME_,albedo,_INFONAME_,BaseColorInfos.x)
200
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight,_MATRIXNAME_,baseWeight,_INFONAME_,BaseWeightInfos.x)
201
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness,_MATRIXNAME_,baseDiffuseRoughness,_INFONAME_,BaseDiffuseRoughnessInfos.x)
202
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness,_MATRIXNAME_,baseMetalness,_INFONAME_,BaseMetalnessInfos.x)
203
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight,_MATRIXNAME_,specularWeight,_INFONAME_,SpecularWeightInfos.x)
204
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor,_MATRIXNAME_,specularColor,_INFONAME_,SpecularColorInfos.x)
205
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness,_MATRIXNAME_,specularRoughness,_INFONAME_,SpecularRoughnessInfos.x)
206
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy,_MATRIXNAME_,specularRoughnessAnisotropy,_INFONAME_,SpecularRoughnessAnisotropyInfos.x)
207
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight,_MATRIXNAME_,coatWeight,_INFONAME_,CoatWeightInfos.x)
208
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor,_MATRIXNAME_,coatColor,_INFONAME_,CoatColorInfos.x)
209
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_MATRIXNAME_,coatRoughness,_INFONAME_,CoatRoughnessInfos.x)
210
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy,_MATRIXNAME_,coatRoughnessAnisotropy,_INFONAME_,CoatRoughnessAnisotropyInfos.x)
211
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening,_MATRIXNAME_,coatDarkening,_INFONAME_,CoatDarkeningInfos.x)
212
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_MATRIXNAME_,geometryNormal,_INFONAME_,GeometryNormalInfos.x)
213
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_MATRIXNAME_,geometryCoatNormal,_INFONAME_,GeometryCoatNormalInfos.x)
214
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_MATRIXNAME_,geometryOpacity,_INFONAME_,GeometryOpacityInfos.x)
215
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent,_MATRIXNAME_,geometryTangent,_INFONAME_,GeometryTangentInfos.x)
216
+ #include<samplerVertexImplementation>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_MATRIXNAME_,emissionColor,_INFONAME_,EmissionColorInfos.x)
217
+ #include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_MATRIXNAME_,ambientOcclusion,_INFONAME_,AmbientOcclusionInfos.x)
218
+ #include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
219
+ #include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
220
+ #include<openpbrNormalMapVertex>
221
+ #include<clipPlaneVertex>
222
+ #include<fogVertex>
223
+ #include<shadowsVertex>[0..maxSimultaneousLights]
224
+ #include<vertexColorMixing>
225
+ #if defined(POINTSIZE) && !defined(WEBGPU)
226
+ gl_PointSize=pointSize;
227
+ #endif
228
+ #include<logDepthVertex>
229
+ #define CUSTOM_VERTEX_MAIN_END
230
+ }
231
+ `;
232
+ // Sideeffect
233
+ if (!ShaderStore.ShadersStore[name]) {
234
+ ShaderStore.ShadersStore[name] = shader;
235
+ }
236
+ /** @internal */
237
+ export const openpbrVertexShader = { name, shader };
238
+ //# sourceMappingURL=openpbr.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbr.vertex.js","sourceRoot":"","sources":["../../../../dev/core/src/Shaders/openpbr.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,2CAA2C,CAAC;AACnD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,2CAA2C,CAAC;AACnD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kDAAkD,CAAC;AAC1D,OAAO,uCAAuC,CAAC;AAC/C,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,oDAAoD,CAAC;AAC5D,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,6CAA6C,CAAC;AACrD,OAAO,wCAAwC,CAAC;AAChD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AACxD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gCAAgC,CAAC;AACxC,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,yCAAyC,CAAC;AACjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,gCAAgC,CAAC;AACxC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,iCAAiC,CAAC;AAEzC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiMd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/openpbrVertexDeclaration\";\nimport \"./ShadersInclude/openpbrUboDeclaration\";\nimport \"./ShadersInclude/uvAttributeDeclaration\";\nimport \"./ShadersInclude/mainUVVaryingDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/pbrBRDFFunctions\";\nimport \"./ShadersInclude/bonesDeclaration\";\nimport \"./ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"./ShadersInclude/instancesDeclaration\";\nimport \"./ShadersInclude/prePassVertexDeclaration\";\nimport \"./ShadersInclude/samplerVertexDeclaration\";\nimport \"./ShadersInclude/harmonicsFunctions\";\nimport \"./ShadersInclude/openpbrNormalMapVertexDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/fogVertexDeclaration\";\nimport \"./ShadersInclude/lightVxFragmentDeclaration\";\nimport \"./ShadersInclude/lightVxUboDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobalDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobal\";\nimport \"./ShadersInclude/morphTargetsVertex\";\nimport \"./ShadersInclude/instancesVertex\";\nimport \"./ShadersInclude/bonesVertex\";\nimport \"./ShadersInclude/bakedVertexAnimation\";\nimport \"./ShadersInclude/prePassVertex\";\nimport \"./ShadersInclude/uvVariableDeclaration\";\nimport \"./ShadersInclude/samplerVertexImplementation\";\nimport \"./ShadersInclude/openpbrNormalMapVertex\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/fogVertex\";\nimport \"./ShadersInclude/shadowsVertex\";\nimport \"./ShadersInclude/vertexColorMixing\";\nimport \"./ShadersInclude/logDepthVertex\";\n\nconst name = \"openpbrVertexShader\";\nconst shader = `#define OPENPBR_VERTEX_SHADER\n#define CUSTOM_VERTEX_EXTENSION\nprecision highp float;\n#include<__decl__openpbrVertex>\n#define CUSTOM_VERTEX_BEGIN\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef TANGENT\nattribute vec4 tangent;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#include<uvAttributeDeclaration>[2..7]\n#include<mainUVVaryingDeclaration>[1..7]\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<helperFunctions>\n#include<pbrBRDFFunctions>\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\n#include<prePassVertexDeclaration>\n#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor)\n#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight)\n#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness)\n#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy)\n#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight)\n#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor)\n#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness)\n#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy)\n#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening)\n#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal)\n#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent)\n#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal)\n#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity)\n#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor)\n#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion)\n#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\n#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\nvarying vec3 vPositionW;\n#if DEBUGMODE>0\nvarying vec4 vClipSpacePosition;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vec3 vEnvironmentIrradiance;\n#include<harmonicsFunctions>\n#endif\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include<openpbrNormalMapVertexDeclaration>\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\n#include<morphTargetsVertexGlobalDeclaration>\n#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#include<logDepthDeclaration>\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#ifdef NORMAL\nvec3 normalUpdated=normal;\n#endif\n#ifdef TANGENT\nvec4 tangentUpdated=tangent;\n#endif\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#ifdef UV2\nvec2 uv2Updated=uv2;\n#endif\n#ifdef VERTEXCOLOR\nvec4 colorUpdated=color;\n#endif\n#include<morphTargetsVertexGlobal>\n#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include<instancesVertex>\n#if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vPositionW=vec3(worldPos);\n#ifdef PREPASS\n#include<prePassVertex>\n#endif\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\n#if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\n#if !defined(NATIVE) && !defined(WEBGPU)\nbool bbb=any(isnan(position));if (bbb) { }\n#endif\nfloat NdotV=max(dot(vNormalW,viewDirectionW),0.0);vec3 roughNormal=mix(vNormalW,viewDirectionW,(0.5*(1.0-NdotV))*vBaseDiffuseRoughness);vec3 reflectionVector=vec3(reflectionMatrix*vec4(roughNormal,0)).xyz;\n#else\nvec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\nvEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\n#endif\n#endif\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\n#if DEBUGMODE>0\nvClipSpacePosition=gl_Position;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\n#endif\n#ifndef UV1\nvec2 uvUpdated=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2Updated=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uvUpdated;\n#endif\n#ifdef MAINUV2\nvMainUV2=uv2Updated;\n#endif\n#include<uvVariableDeclaration>[3..7]\n#include<samplerVertexImplementation>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_MATRIXNAME_,albedo,_INFONAME_,BaseColorInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight,_MATRIXNAME_,baseWeight,_INFONAME_,BaseWeightInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness,_MATRIXNAME_,baseDiffuseRoughness,_INFONAME_,BaseDiffuseRoughnessInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness,_MATRIXNAME_,baseMetalness,_INFONAME_,BaseMetalnessInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight,_MATRIXNAME_,specularWeight,_INFONAME_,SpecularWeightInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor,_MATRIXNAME_,specularColor,_INFONAME_,SpecularColorInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness,_MATRIXNAME_,specularRoughness,_INFONAME_,SpecularRoughnessInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy,_MATRIXNAME_,specularRoughnessAnisotropy,_INFONAME_,SpecularRoughnessAnisotropyInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight,_MATRIXNAME_,coatWeight,_INFONAME_,CoatWeightInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor,_MATRIXNAME_,coatColor,_INFONAME_,CoatColorInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_MATRIXNAME_,coatRoughness,_INFONAME_,CoatRoughnessInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy,_MATRIXNAME_,coatRoughnessAnisotropy,_INFONAME_,CoatRoughnessAnisotropyInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening,_MATRIXNAME_,coatDarkening,_INFONAME_,CoatDarkeningInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_MATRIXNAME_,geometryNormal,_INFONAME_,GeometryNormalInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_MATRIXNAME_,geometryCoatNormal,_INFONAME_,GeometryCoatNormalInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_MATRIXNAME_,geometryOpacity,_INFONAME_,GeometryOpacityInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent,_MATRIXNAME_,geometryTangent,_INFONAME_,GeometryTangentInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_MATRIXNAME_,emissionColor,_INFONAME_,EmissionColorInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_MATRIXNAME_,ambientOcclusion,_INFONAME_,AmbientOcclusionInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\n#include<openpbrNormalMapVertex>\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nif (!ShaderStore.ShadersStore[name]) {\n ShaderStore.ShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrVertexShader = { name, shader };\n"]}
@@ -2,7 +2,7 @@
2
2
  import { ShaderStore } from "../../Engines/shaderStore.js";
3
3
  import "./sceneUboDeclaration.js";
4
4
  const name = "backgroundUboDeclaration";
5
- const shader = `uniform vPrimaryColor: vec4f;uniform vPrimaryColorShadow: vec4f;uniform vDiffuseInfos: vec2f;uniform vReflectionInfos: vec2f;uniform diffuseMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform fFovMultiplier: f32;uniform pointSize: f32;uniform shadowLevel: f32;uniform alpha: f32;uniform vBackgroundCenter: vec3f;uniform vReflectionControl: vec4f;uniform projectedGroundInfos: vec2f;
5
+ const shader = `uniform vPrimaryColor: vec4f;uniform vPrimaryColorShadow: vec4f;uniform vDiffuseInfos : vec2f;uniform diffuseMatrix : mat4x4f;uniform fFovMultiplier: f32;uniform pointSize: f32;uniform shadowLevel: f32;uniform alpha: f32;uniform vBackgroundCenter: vec3f;uniform vReflectionControl: vec4f;uniform projectedGroundInfos: vec2f;uniform vReflectionInfos : vec2f;uniform reflectionMatrix : mat4x4f;uniform vReflectionMicrosurfaceInfos : vec3f;
6
6
  #include<sceneUboDeclaration>
7
7
  `;
8
8
  // Sideeffect
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;CAEd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\n\nconst name = \"backgroundUboDeclaration\";\nconst shader = `uniform vPrimaryColor: vec4f;uniform vPrimaryColorShadow: vec4f;uniform vDiffuseInfos: vec2f;uniform vReflectionInfos: vec2f;uniform diffuseMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform fFovMultiplier: f32;uniform pointSize: f32;uniform shadowLevel: f32;uniform alpha: f32;uniform vBackgroundCenter: vec3f;uniform vReflectionControl: vec4f;uniform projectedGroundInfos: vec2f;\n#include<sceneUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const backgroundUboDeclarationWGSL = { name, shader };\n"]}
1
+ {"version":3,"file":"backgroundUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;CAEd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\n\nconst name = \"backgroundUboDeclaration\";\nconst shader = `uniform vPrimaryColor: vec4f;uniform vPrimaryColorShadow: vec4f;uniform vDiffuseInfos : vec2f;uniform diffuseMatrix : mat4x4f;uniform fFovMultiplier: f32;uniform pointSize: f32;uniform shadowLevel: f32;uniform alpha: f32;uniform vBackgroundCenter: vec3f;uniform vReflectionControl: vec4f;uniform projectedGroundInfos: vec2f;uniform vReflectionInfos : vec2f;uniform reflectionMatrix : mat4x4f;uniform vReflectionMicrosurfaceInfos : vec3f;\n#include<sceneUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const backgroundUboDeclarationWGSL = { name, shader };\n"]}
@@ -3,7 +3,7 @@ import { ShaderStore } from "../../Engines/shaderStore.js";
3
3
  import "./sceneUboDeclaration.js";
4
4
  import "./meshUboDeclaration.js";
5
5
  const name = "defaultUboDeclaration";
6
- const shader = `uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vReflectionInfos: vec2f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;uniform cameraInfo: vec4f;
6
+ const shader = `uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;uniform cameraInfo: vec4f;uniform vReflectionInfos: vec2f;uniform reflectionMatrix: mat4x4f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;
7
7
  #define ADDITIONAL_UBO_DECLARATION
8
8
  #include<sceneUboDeclaration>
9
9
  #include<meshUboDeclaration>
@@ -1 +1 @@
1
- {"version":3,"file":"defaultUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/defaultUboDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;CAId,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\nimport \"./meshUboDeclaration\";\n\nconst name = \"defaultUboDeclaration\";\nconst shader = `uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vReflectionInfos: vec2f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;uniform cameraInfo: vec4f;\n#define ADDITIONAL_UBO_DECLARATION\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const defaultUboDeclarationWGSL = { name, shader };\n"]}
1
+ {"version":3,"file":"defaultUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/defaultUboDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;CAId,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\nimport \"./meshUboDeclaration\";\n\nconst name = \"defaultUboDeclaration\";\nconst shader = `uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;uniform cameraInfo: vec4f;uniform vReflectionInfos: vec2f;uniform reflectionMatrix: mat4x4f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;\n#define ADDITIONAL_UBO_DECLARATION\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const defaultUboDeclarationWGSL = { name, shader };\n"]}
@@ -90,6 +90,34 @@ c=toLinearSpace(c);
90
90
  #endif
91
91
  result+=c*NoL;}}
92
92
  result=result/weight;return result;}}
93
+ #ifdef ANISOTROPIC
94
+ fn radianceAnisotropic(
95
+ alphaTangent: f32,
96
+ alphaBitangent: f32,
97
+ inputTexture: texture_cube<f32>,
98
+ inputSampler: sampler,
99
+ inputView: vec3f,
100
+ inputTangent: vec3f,
101
+ inputBitangent: vec3f,
102
+ inputNormal: vec3f,
103
+ filteringInfo: vec2f,
104
+ noiseInput: vec2f
105
+ )->vec3f {var V: vec3f=inputView;var N: vec3f=inputNormal;var T: vec3f=inputTangent;var B: vec3f=inputBitangent;var R: vec3f=reflect(-V,N);var c: vec3f=textureSample(inputTexture,inputSampler,R).rgb;if (alphaTangent==0.f && alphaBitangent==0.f) {
106
+ #if GAMMA_INPUT
107
+ c=toLinearSpace(c);
108
+ #endif
109
+ return c;}
110
+ var result: vec3f=vec3f(0.f);var maxLevel: f32=filteringInfo.y;var dim0: f32=filteringInfo.x;var effectiveDim: f32=dim0*sqrt(alphaTangent*alphaBitangent);var omegaP: f32=(4.f*PI)/(6.f*effectiveDim*effectiveDim);let noiseScale: f32=clamp(log2(f32(NUM_SAMPLES))/12.0f,0.0f,1.0f);var weight: f32=0.f;for(var i: u32=0u; i<NUM_SAMPLES; i++)
111
+ {var Xi: vec2f=hammersley(i,NUM_SAMPLES);Xi=fract(Xi+noiseInput*mix(0.5f,0.015f,noiseScale));
112
+ var H_tangent: vec3f=hemisphereImportanceSampleDggxAnisotropic(Xi,alphaTangent,alphaBitangent);var H: vec3f=normalize(H_tangent.x*T+H_tangent.y*B+H_tangent.z*N);var L: vec3f=normalize(2.0f*dot(V,H)*H-V);var NoH: f32=max(dot(N,H),0.001f);var VoH: f32=max(dot(V,H),0.001f);var NoL: f32=max(dot(N,L),0.001f);if (NoL>0.f) {var pdf_inversed: f32=4./normalDistributionFunction_BurleyGGX_Anisotropic(
113
+ H_tangent.z,H_tangent.x,H_tangent.y,vec2(alphaTangent,alphaBitangent)
114
+ );var omegaS: f32=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;var l: f32=log4(omegaS)-log4(omegaP)+log4(K);var mipLevel: f32=clamp(l,0.0f,maxLevel);weight+=NoL;var c: vec3f=textureSampleLevel(inputTexture,inputSampler,L,mipLevel).rgb;
115
+ #if GAMMA_INPUT
116
+ c=toLinearSpace(c);
117
+ #endif
118
+ result+=c*NoL;}}
119
+ result=result/weight;return result;}
120
+ #endif
93
121
  #endif
94
122
  #endif
95
123
  `;