@onerjs/core 8.26.2 → 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 (266) 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/Misc/decorators.d.ts +7 -0
  69. package/Misc/decorators.js +34 -0
  70. package/Misc/decorators.js.map +1 -1
  71. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +10 -1
  72. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
  73. package/Particles/Node/Blocks/index.d.ts +2 -0
  74. package/Particles/Node/Blocks/index.js +2 -0
  75. package/Particles/Node/Blocks/index.js.map +1 -1
  76. package/Particles/Node/Blocks/particleInputBlock.js +4 -1
  77. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
  78. package/Particles/Node/Blocks/particleLocalVariableBlock.d.ts +38 -0
  79. package/Particles/Node/Blocks/particleLocalVariableBlock.js +108 -0
  80. package/Particles/Node/Blocks/particleLocalVariableBlock.js.map +1 -0
  81. package/Particles/Node/Blocks/particleVectorLengthBlock.d.ts +26 -0
  82. package/Particles/Node/Blocks/particleVectorLengthBlock.js +50 -0
  83. package/Particles/Node/Blocks/particleVectorLengthBlock.js.map +1 -0
  84. package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +2 -1
  85. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +45 -0
  86. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  87. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +2 -1
  88. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  89. package/Rendering/geometryBufferRenderer.js +6 -4
  90. package/Rendering/geometryBufferRenderer.js.map +1 -1
  91. package/Rendering/iblCdfGenerator.js +28 -20
  92. package/Rendering/iblCdfGenerator.js.map +1 -1
  93. package/Rendering/reflectiveShadowMap.d.ts +3 -3
  94. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
  95. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  96. package/Shaders/ShadersInclude/clusteredLightingFunctions.js +3 -1
  97. package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
  98. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  99. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  100. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +34 -0
  101. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  102. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  103. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  104. package/Shaders/ShadersInclude/importanceSampling.js +4 -0
  105. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  106. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -0
  107. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  108. package/Shaders/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  109. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +127 -0
  110. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  111. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  112. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js +35 -0
  113. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  114. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  115. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  116. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  117. package/Shaders/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  118. package/Shaders/ShadersInclude/openpbrCoatLayerData.js +59 -0
  119. package/Shaders/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  120. package/Shaders/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  121. package/Shaders/ShadersInclude/openpbrConductorReflectance.js +19 -0
  122. package/Shaders/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  123. package/Shaders/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  124. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js +30 -0
  125. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  126. package/Shaders/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  127. package/Shaders/ShadersInclude/openpbrDirectLighting.js +69 -0
  128. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  129. package/Shaders/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  130. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  131. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  132. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.d.ts +5 -0
  133. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js +129 -0
  134. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js.map +1 -0
  135. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  136. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +106 -0
  137. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  138. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.d.ts +6 -0
  139. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +115 -0
  140. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -0
  141. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  142. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +72 -0
  143. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  144. package/Shaders/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  145. package/Shaders/ShadersInclude/openpbrGeometryInfo.js +46 -0
  146. package/Shaders/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  147. package/Shaders/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  148. package/Shaders/ShadersInclude/openpbrIblFunctions.js +221 -0
  149. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  150. package/Shaders/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  151. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  152. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  153. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  154. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  155. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  156. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  157. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +72 -0
  158. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  159. package/Shaders/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  160. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  161. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  162. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  163. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  164. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  165. package/Shaders/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  166. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +18 -0
  167. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  168. package/Shaders/ShadersInclude/openpbrVertexDeclaration.d.ts +6 -0
  169. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +103 -0
  170. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -0
  171. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  172. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  173. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -0
  174. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
  175. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  176. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  177. package/Shaders/ShadersInclude/pbrHelperFunctions.js +2 -0
  178. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  179. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  180. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  181. package/Shaders/openpbr.fragment.d.ts +54 -0
  182. package/Shaders/openpbr.fragment.js +206 -0
  183. package/Shaders/openpbr.fragment.js.map +1 -0
  184. package/Shaders/openpbr.vertex.d.ts +39 -0
  185. package/Shaders/openpbr.vertex.js +238 -0
  186. package/Shaders/openpbr.vertex.js.map +1 -0
  187. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +1 -1
  188. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  189. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
  190. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  191. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +28 -0
  192. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  193. package/ShadersWGSL/ShadersInclude/importanceSampling.js +4 -0
  194. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  195. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  196. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +126 -0
  197. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  198. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  199. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js +36 -0
  200. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  201. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  202. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  203. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  204. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  205. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js +59 -0
  206. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  207. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  208. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js +19 -0
  209. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  210. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  211. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js +33 -0
  212. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  213. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  214. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +69 -0
  215. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  216. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  217. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  218. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  219. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  220. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +112 -0
  221. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  222. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  223. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +68 -0
  224. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  225. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  226. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js +54 -0
  227. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  228. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  229. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +218 -0
  230. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  231. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  232. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  233. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  234. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  235. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  236. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  237. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  238. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +51 -0
  239. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  240. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  241. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  242. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  243. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  244. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  245. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  246. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  247. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +17 -0
  248. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  249. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
  250. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  251. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  252. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  253. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +2 -0
  254. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  255. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
  256. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  257. package/ShadersWGSL/openpbr.fragment.d.ts +52 -0
  258. package/ShadersWGSL/openpbr.fragment.js +193 -0
  259. package/ShadersWGSL/openpbr.fragment.js.map +1 -0
  260. package/ShadersWGSL/openpbr.vertex.d.ts +37 -0
  261. package/ShadersWGSL/openpbr.vertex.js +227 -0
  262. package/ShadersWGSL/openpbr.vertex.js.map +1 -0
  263. package/package.json +1 -1
  264. package/scene.d.ts +21 -0
  265. package/scene.js +29 -3
  266. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pbrDirectLightingFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrDirectLightingFunctions.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 = \"pbrDirectLightingFunctions\";\nconst shader = `#define CLEARCOATREFLECTANCE90 1.0\nstruct lightingInfo\n{vec3 diffuse;\n#ifdef SS_TRANSLUCENCY\nvec3 diffuseTransmission;\n#endif\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef CLEARCOAT\nvec4 clearCoat;\n#endif\n#ifdef SHEEN\nvec3 sheen;\n#endif\n};float adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\nfloat lightRoughness=lightRadius/lightDistance;float totalRoughness=saturate(lightRoughness+roughness);return totalRoughness;\n#else\nreturn roughness;\n#endif\n}\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {return mix(groundColor,lightColor,info.NdotL);}\n#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)\nvec3 computeAreaDiffuseLighting(preLightingInfo info,vec3 lightColor) {return info.areaLightDiffuse*lightColor;}\n#endif\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {vec3 diffuseTerm=vec3(1.0/PI);\n#if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_LEGACY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.diffuseRoughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON\nvec3 clampedAlbedo=clamp(info.surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseTerm=diffuseBRDF_EON(clampedAlbedo,info.diffuseRoughness,info.NdotL,info.NdotV,info.LdotV);diffuseTerm/=clampedAlbedo;\n#endif\nreturn diffuseTerm*info.attenuation*info.NdotL*lightColor;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return toLinearSpace(textureColor);}\n#ifdef SS_TRANSLUCENCY\nvec3 computeDiffuseTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {vec3 transmittanceNdotL=vec3(0.);float NdotL=absEps(info.NdotLUnclamped);\n#ifndef SS_TRANSLUCENCY_LEGACY\nif (info.NdotLUnclamped<0.0) {\n#endif\nfloat wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);float trAdapt=step(0.,info.NdotLUnclamped);transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\n#ifndef SS_TRANSLUCENCY_LEGACY\n}\nvec3 diffuseTerm=vec3(1.0/PI);\n#if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_LEGACY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.diffuseRoughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON\nvec3 clampedAlbedo=clamp(info.surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseTerm=diffuseBRDF_EON(clampedAlbedo,info.diffuseRoughness,info.NdotL,info.NdotV,info.LdotV);diffuseTerm/=clampedAlbedo;\n#endif\n#else\nfloat diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\n#endif\nreturn diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;}\n#endif\n#ifdef SPECULARTERM\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 fresnel,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);\n#ifdef IRIDESCENCE\nfresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\n#endif\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\n#else\nfloat smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\n#endif\nvec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}\n#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)\nvec3 computeAreaSpecularLighting(preLightingInfo info,vec3 specularColor,vec3 reflectance0,vec3 reflectance90) {vec3 fresnel=specularColor*info.areaLightFresnel.x*reflectance0+( vec3( 1.0 )-specularColor )*info.areaLightFresnel.y*reflectance90;return specularColor*fresnel*info.areaLightSpecular;}\n#endif\n#endif\n#ifdef ANISOTROPIC\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float TdotH=dot(T,info.H);float BdotH=dot(B,info.H);float TdotV=dot(T,V);float BdotV=dot(B,V);float TdotL=dot(T,info.L);float BdotL=dot(B,info.L);float alphaG=convertRoughnessToAverageSlope(info.roughness);vec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);alphaTB=max(alphaTB,square(geometricRoughnessFactor));vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\n#ifdef IRIDESCENCE\nfresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\n#endif\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);float smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);vec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n#ifdef CLEARCOAT\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {float NccdotL=saturateEps(dot(Ncc,info.L));float NccdotH=saturateEps(dot(Ncc,info.H));float clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);float fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnel*=clearCoatIntensity;float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);float kelemenVisibility=visibility_Kelemen(info.VdotH);float clearCoatTerm=fresnel*distribution*kelemenVisibility;return vec4(\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\n1.0-fresnel\n);}\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);float NdotLRefract=saturateEps(dot(Ncc,LRefract));vec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);return absorption;}\n#endif\n#ifdef SHEEN\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);float fresnel=1.;float distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);/*#ifdef SHEEN_SOFTER\nfloat visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);\n#else */\nfloat visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */\nfloat sheenTerm=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrDirectLightingFunctions = { name, shader };\n"]}
1
+ {"version":3,"file":"pbrDirectLightingFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrDirectLightingFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,4BAA4B,CAAC;AAC1C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGd,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 = \"pbrDirectLightingFunctions\";\nconst shader = `#define CLEARCOATREFLECTANCE90 1.0\nstruct lightingInfo\n{vec3 diffuse;\n#ifdef SS_TRANSLUCENCY\nvec3 diffuseTransmission;\n#endif\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef CLEARCOAT\nvec4 clearCoat;\n#endif\n#ifdef SHEEN\nvec3 sheen;\n#endif\n};float adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\nfloat lightRoughness=lightRadius/lightDistance;float totalRoughness=saturate(lightRoughness+roughness);return totalRoughness;\n#else\nreturn roughness;\n#endif\n}\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {return mix(groundColor,lightColor,info.NdotL);}\n#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)\nvec3 computeAreaDiffuseLighting(preLightingInfo info,vec3 lightColor) {return info.areaLightDiffuse*lightColor;}\n#endif\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {vec3 diffuseTerm=vec3(1.0/PI);\n#if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_LEGACY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.diffuseRoughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON\nvec3 clampedAlbedo=clamp(info.surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseTerm=diffuseBRDF_EON(clampedAlbedo,info.diffuseRoughness,info.NdotL,info.NdotV,info.LdotV);diffuseTerm/=clampedAlbedo;\n#endif\nreturn diffuseTerm*info.attenuation*info.NdotL*lightColor;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return toLinearSpace(textureColor);}\n#ifdef SS_TRANSLUCENCY\nvec3 computeDiffuseTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {vec3 transmittanceNdotL=vec3(0.);float NdotL=absEps(info.NdotLUnclamped);\n#ifndef SS_TRANSLUCENCY_LEGACY\nif (info.NdotLUnclamped<0.0) {\n#endif\nfloat wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);float trAdapt=step(0.,info.NdotLUnclamped);transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\n#ifndef SS_TRANSLUCENCY_LEGACY\n}\nvec3 diffuseTerm=vec3(1.0/PI);\n#if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_LEGACY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY\ndiffuseTerm=vec3(diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.diffuseRoughness));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON\nvec3 clampedAlbedo=clamp(info.surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseTerm=diffuseBRDF_EON(clampedAlbedo,info.diffuseRoughness,info.NdotL,info.NdotV,info.LdotV);diffuseTerm/=clampedAlbedo;\n#endif\n#else\nfloat diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\n#endif\nreturn diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;}\n#endif\n#ifdef SPECULARTERM\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 fresnel,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);\n#ifdef IRIDESCENCE\nfresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\n#endif\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\n#else\nfloat smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\n#endif\nvec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}\n#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)\nvec3 computeAreaSpecularLighting(preLightingInfo info,vec3 specularColor,vec3 reflectance0,vec3 reflectance90) {vec3 fresnel=specularColor*info.areaLightFresnel.x*reflectance0+( vec3( 1.0 )-specularColor )*info.areaLightFresnel.y*reflectance90;return specularColor*fresnel*info.areaLightSpecular;}\n#endif\n#endif\n#if defined(ANISOTROPIC) && defined(ANISOTROPIC_OPENPBR)\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float TdotH=dot(T,info.H);float BdotH=dot(B,info.H);float TdotV=dot(T,V);float BdotV=dot(B,V);float TdotL=dot(T,info.L);float BdotL=dot(B,info.L);float alphaG=convertRoughnessToAverageSlope(info.roughness);vec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);alphaTB=max(alphaTB,square(geometricRoughnessFactor));float distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);float smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);vec3 specTerm=vec3(distribution*smithVisibility);return specTerm*info.attenuation*info.NdotL*lightColor;}\n#elif defined(ANISOTROPIC)\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float TdotH=dot(T,info.H);float BdotH=dot(B,info.H);float TdotV=dot(T,V);float BdotV=dot(B,V);float TdotL=dot(T,info.L);float BdotL=dot(B,info.L);float alphaG=convertRoughnessToAverageSlope(info.roughness);vec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);alphaTB=max(alphaTB,square(geometricRoughnessFactor));vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\n#ifdef IRIDESCENCE\nfresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\n#endif\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);float smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);vec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n#ifdef CLEARCOAT\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {float NccdotL=saturateEps(dot(Ncc,info.L));float NccdotH=saturateEps(dot(Ncc,info.H));float clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);float fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnel*=clearCoatIntensity;float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);float kelemenVisibility=visibility_Kelemen(info.VdotH);float clearCoatTerm=fresnel*distribution*kelemenVisibility;return vec4(\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\n1.0-fresnel\n);}\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);float NdotLRefract=saturateEps(dot(Ncc,LRefract));vec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);return absorption;}\n#endif\n#ifdef SHEEN\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);float fresnel=1.;float distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);/*#ifdef SHEEN_SOFTER\nfloat visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);\n#else */\nfloat visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */\nfloat sheenTerm=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrDirectLightingFunctions = { name, shader };\n"]}
@@ -17,6 +17,8 @@ return vec2(0.);
17
17
  vec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}
18
18
  vec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 anisotropicFrameDirection;if (anisotropy>=0.0) {anisotropicFrameDirection=B;} else {anisotropicFrameDirection=T;}
19
19
  vec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);vec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);vec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));return anisotropicNormal;}
20
+ #elif ANISOTROPIC_OPENPBR
21
+ vec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=alphaG*sqrt(2.0/(1.0+(1.0-anisotropy)*(1.0-anisotropy)));float alphaB=max(alphaT*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}
20
22
  #else
21
23
  vec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(mix(alphaG,1.0,anisotropy*anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG,MINIMUMVARIANCE);return vec2(alphaT,alphaB);}
22
24
  vec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 bentNormal=cross(B,V);bentNormal=normalize(cross(bentNormal,B));float a=square(square(1.0-anisotropy*(1.0-roughness)));bentNormal=normalize(mix(bentNormal,N,a));return bentNormal;}
@@ -1 +1 @@
1
- {"version":3,"file":"pbrHelperFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrHelperFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCd,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,kBAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrHelperFunctions\";\nconst shader = `#define MINIMUMVARIANCE 0.0005\nfloat convertRoughnessToAverageSlope(float roughness)\n{return square(roughness)+MINIMUMVARIANCE;}\nfloat fresnelGrazingReflectance(float reflectance0) {float reflectance90=saturate(reflectance0*25.0);return reflectance90;}\nvec2 getAARoughnessFactors(vec3 normalVector) {\n#ifdef SPECULARAA\nvec3 nDfdx=dFdx(normalVector.xyz);vec3 nDfdy=dFdy(normalVector.xyz);float slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));float geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);float geometricAlphaGFactor=sqrt(slopeSquare);geometricAlphaGFactor*=0.75;return vec2(geometricRoughnessFactor,geometricAlphaGFactor);\n#else\nreturn vec2(0.);\n#endif\n}\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_LEGACY\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 anisotropicFrameDirection;if (anisotropy>=0.0) {anisotropicFrameDirection=B;} else {anisotropicFrameDirection=T;}\nvec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);vec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);vec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));return anisotropicNormal;}\n#else\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(mix(alphaG,1.0,anisotropy*anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG,MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 bentNormal=cross(B,V);bentNormal=normalize(cross(bentNormal,B));float a=square(square(1.0-anisotropy*(1.0-roughness)));bentNormal=normalize(mix(bentNormal,N,a));return bentNormal;}\n#endif\n#endif\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\nvec3 cocaLambert(vec3 alpha,float distance) {return exp(-alpha*distance);}\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {return cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));}\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {return -log(color)/distance;}\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 clearCoatAbsorption=mix(vec3(1.0),\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\nclearCoatIntensity);return clearCoatAbsorption;}\n#endif\n#ifdef MICROSURFACEAUTOMATIC\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\n{const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;float reflectivityLuminance=getLuminance(reflectivityColor);float reflectivityLuma=sqrt(reflectivityLuminance);microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return microSurface;}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrHelperFunctions = { name, shader };\n"]}
1
+ {"version":3,"file":"pbrHelperFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrHelperFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,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,kBAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrHelperFunctions\";\nconst shader = `#define MINIMUMVARIANCE 0.0005\nfloat convertRoughnessToAverageSlope(float roughness)\n{return square(roughness)+MINIMUMVARIANCE;}\nfloat fresnelGrazingReflectance(float reflectance0) {float reflectance90=saturate(reflectance0*25.0);return reflectance90;}\nvec2 getAARoughnessFactors(vec3 normalVector) {\n#ifdef SPECULARAA\nvec3 nDfdx=dFdx(normalVector.xyz);vec3 nDfdy=dFdy(normalVector.xyz);float slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));float geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);float geometricAlphaGFactor=sqrt(slopeSquare);geometricAlphaGFactor*=0.75;return vec2(geometricRoughnessFactor,geometricAlphaGFactor);\n#else\nreturn vec2(0.);\n#endif\n}\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_LEGACY\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 anisotropicFrameDirection;if (anisotropy>=0.0) {anisotropicFrameDirection=B;} else {anisotropicFrameDirection=T;}\nvec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);vec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);vec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));return anisotropicNormal;}\n#elif ANISOTROPIC_OPENPBR\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=alphaG*sqrt(2.0/(1.0+(1.0-anisotropy)*(1.0-anisotropy)));float alphaB=max(alphaT*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\n#else\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(mix(alphaG,1.0,anisotropy*anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG,MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 bentNormal=cross(B,V);bentNormal=normalize(cross(bentNormal,B));float a=square(square(1.0-anisotropy*(1.0-roughness)));bentNormal=normalize(mix(bentNormal,N,a));return bentNormal;}\n#endif\n#endif\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\nvec3 cocaLambert(vec3 alpha,float distance) {return exp(-alpha*distance);}\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {return cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));}\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {return -log(color)/distance;}\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 clearCoatAbsorption=mix(vec3(1.0),\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\nclearCoatIntensity);return clearCoatAbsorption;}\n#endif\n#ifdef MICROSURFACEAUTOMATIC\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\n{const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;float reflectivityLuminance=getLuminance(reflectivityColor);float reflectivityLuma=sqrt(reflectivityLuminance);microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return microSurface;}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrHelperFunctions = { 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 = "pbrUboDeclaration";
6
- const shader = `layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec2 vBaseDiffuseRoughnessInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec2 vReflectionInfos;vec2 vReflectionFilteringInfo;vec3 vReflectionPosition;vec3 vReflectionSize;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 baseDiffuseRoughnessMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;mat4 reflectionMatrix;vec3 vReflectionColor;vec4 vAlbedoColor;float baseWeight;float baseDiffuseRoughness;vec4 vLightingIntensity;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionDominantDirection;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;vec4 cameraInfo;
6
+ const shader = `layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec2 vBaseDiffuseRoughnessInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 baseDiffuseRoughnessMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;vec4 vAlbedoColor;float baseWeight;float baseDiffuseRoughness;vec4 vLightingIntensity;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec4 cameraInfo;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;
7
7
  #define ADDITIONAL_UBO_DECLARATION
8
8
  };
9
9
  #include<sceneUboDeclaration>
@@ -1 +1 @@
1
- {"version":3,"file":"pbrUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrUboDeclaration.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,mBAAmB,CAAC;AACjC,MAAM,MAAM,GAAG;;;;;CAKd,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,iBAAiB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\nimport \"./meshUboDeclaration\";\n\nconst name = \"pbrUboDeclaration\";\nconst shader = `layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec2 vBaseDiffuseRoughnessInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec2 vReflectionInfos;vec2 vReflectionFilteringInfo;vec3 vReflectionPosition;vec3 vReflectionSize;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 baseDiffuseRoughnessMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;mat4 reflectionMatrix;vec3 vReflectionColor;vec4 vAlbedoColor;float baseWeight;float baseDiffuseRoughness;vec4 vLightingIntensity;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionDominantDirection;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;vec4 cameraInfo;\n#define ADDITIONAL_UBO_DECLARATION\n};\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrUboDeclaration = { name, shader };\n"]}
1
+ {"version":3,"file":"pbrUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrUboDeclaration.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,mBAAmB,CAAC;AACjC,MAAM,MAAM,GAAG;;;;;CAKd,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,iBAAiB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\nimport \"./meshUboDeclaration\";\n\nconst name = \"pbrUboDeclaration\";\nconst shader = `layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec2 vBaseDiffuseRoughnessInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 baseDiffuseRoughnessMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;vec4 vAlbedoColor;float baseWeight;float baseDiffuseRoughness;vec4 vLightingIntensity;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec4 cameraInfo;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;\n#define ADDITIONAL_UBO_DECLARATION\n};\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrUboDeclaration = { name, shader };\n"]}
@@ -0,0 +1,54 @@
1
+ import "./ShadersInclude/prePassDeclaration.js";
2
+ import "./ShadersInclude/oitDeclaration.js";
3
+ import "./ShadersInclude/openpbrFragmentDeclaration.js";
4
+ import "./ShadersInclude/openpbrUboDeclaration.js";
5
+ import "./ShadersInclude/pbrFragmentExtraDeclaration.js";
6
+ import "./ShadersInclude/lightFragmentDeclaration.js";
7
+ import "./ShadersInclude/lightUboDeclaration.js";
8
+ import "./ShadersInclude/openpbrFragmentSamplersDeclaration.js";
9
+ import "./ShadersInclude/imageProcessingDeclaration.js";
10
+ import "./ShadersInclude/clipPlaneFragmentDeclaration.js";
11
+ import "./ShadersInclude/logDepthDeclaration.js";
12
+ import "./ShadersInclude/fogFragmentDeclaration.js";
13
+ import "./ShadersInclude/helperFunctions.js";
14
+ import "./ShadersInclude/subSurfaceScatteringFunctions.js";
15
+ import "./ShadersInclude/importanceSampling.js";
16
+ import "./ShadersInclude/pbrHelperFunctions.js";
17
+ import "./ShadersInclude/imageProcessingFunctions.js";
18
+ import "./ShadersInclude/shadowsFragmentFunctions.js";
19
+ import "./ShadersInclude/harmonicsFunctions.js";
20
+ import "./ShadersInclude/pbrDirectLightingSetupFunctions.js";
21
+ import "./ShadersInclude/pbrDirectLightingFalloffFunctions.js";
22
+ import "./ShadersInclude/pbrBRDFFunctions.js";
23
+ import "./ShadersInclude/hdrFilteringFunctions.js";
24
+ import "./ShadersInclude/pbrDirectLightingFunctions.js";
25
+ import "./ShadersInclude/pbrIBLFunctions.js";
26
+ import "./ShadersInclude/openpbrNormalMapFragmentMainFunctions.js";
27
+ import "./ShadersInclude/openpbrNormalMapFragmentFunctions.js";
28
+ import "./ShadersInclude/reflectionFunction.js";
29
+ import "./ShadersInclude/openpbrDielectricReflectance.js";
30
+ import "./ShadersInclude/openpbrConductorReflectance.js";
31
+ import "./ShadersInclude/openpbrBlockAmbientOcclusion.js";
32
+ import "./ShadersInclude/openpbrGeometryInfo.js";
33
+ import "./ShadersInclude/openpbrIblFunctions.js";
34
+ import "./ShadersInclude/clipPlaneFragment.js";
35
+ import "./ShadersInclude/pbrBlockNormalGeometric.js";
36
+ import "./ShadersInclude/openpbrNormalMapFragment.js";
37
+ import "./ShadersInclude/openpbrBlockNormalFinal.js";
38
+ import "./ShadersInclude/openpbrBaseLayerData.js";
39
+ import "./ShadersInclude/openpbrCoatLayerData.js";
40
+ import "./ShadersInclude/depthPrePass.js";
41
+ import "./ShadersInclude/openpbrEnvironmentLighting.js";
42
+ import "./ShadersInclude/openpbrDirectLightingInit.js";
43
+ import "./ShadersInclude/openpbrDirectLighting.js";
44
+ import "./ShadersInclude/logDepthFragment.js";
45
+ import "./ShadersInclude/fogFragment.js";
46
+ import "./ShadersInclude/pbrBlockImageProcessing.js";
47
+ import "./ShadersInclude/pbrBlockPrePass.js";
48
+ import "./ShadersInclude/oitFragment.js";
49
+ import "./ShadersInclude/pbrDebug.js";
50
+ /** @internal */
51
+ export declare const openpbrPixelShader: {
52
+ name: string;
53
+ shader: string;
54
+ };
@@ -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
+ };