@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,52 @@
1
+ import "./ShadersInclude/prePassDeclaration.js";
2
+ import "./ShadersInclude/oitDeclaration.js";
3
+ import "./ShadersInclude/openpbrUboDeclaration.js";
4
+ import "./ShadersInclude/pbrFragmentExtraDeclaration.js";
5
+ import "./ShadersInclude/lightUboDeclaration.js";
6
+ import "./ShadersInclude/openpbrFragmentSamplersDeclaration.js";
7
+ import "./ShadersInclude/imageProcessingDeclaration.js";
8
+ import "./ShadersInclude/clipPlaneFragmentDeclaration.js";
9
+ import "./ShadersInclude/logDepthDeclaration.js";
10
+ import "./ShadersInclude/fogFragmentDeclaration.js";
11
+ import "./ShadersInclude/helperFunctions.js";
12
+ import "./ShadersInclude/subSurfaceScatteringFunctions.js";
13
+ import "./ShadersInclude/importanceSampling.js";
14
+ import "./ShadersInclude/pbrHelperFunctions.js";
15
+ import "./ShadersInclude/imageProcessingFunctions.js";
16
+ import "./ShadersInclude/shadowsFragmentFunctions.js";
17
+ import "./ShadersInclude/harmonicsFunctions.js";
18
+ import "./ShadersInclude/pbrDirectLightingSetupFunctions.js";
19
+ import "./ShadersInclude/pbrDirectLightingFalloffFunctions.js";
20
+ import "./ShadersInclude/pbrBRDFFunctions.js";
21
+ import "./ShadersInclude/hdrFilteringFunctions.js";
22
+ import "./ShadersInclude/pbrDirectLightingFunctions.js";
23
+ import "./ShadersInclude/pbrIBLFunctions.js";
24
+ import "./ShadersInclude/openpbrNormalMapFragmentMainFunctions.js";
25
+ import "./ShadersInclude/openpbrNormalMapFragmentFunctions.js";
26
+ import "./ShadersInclude/reflectionFunction.js";
27
+ import "./ShadersInclude/openpbrDielectricReflectance.js";
28
+ import "./ShadersInclude/openpbrConductorReflectance.js";
29
+ import "./ShadersInclude/openpbrBlockAmbientOcclusion.js";
30
+ import "./ShadersInclude/openpbrGeometryInfo.js";
31
+ import "./ShadersInclude/openpbrIblFunctions.js";
32
+ import "./ShadersInclude/clipPlaneFragment.js";
33
+ import "./ShadersInclude/pbrBlockNormalGeometric.js";
34
+ import "./ShadersInclude/openpbrNormalMapFragment.js";
35
+ import "./ShadersInclude/openpbrBlockNormalFinal.js";
36
+ import "./ShadersInclude/openpbrBaseLayerData.js";
37
+ import "./ShadersInclude/openpbrCoatLayerData.js";
38
+ import "./ShadersInclude/depthPrePass.js";
39
+ import "./ShadersInclude/openpbrEnvironmentLighting.js";
40
+ import "./ShadersInclude/openpbrDirectLightingInit.js";
41
+ import "./ShadersInclude/openpbrDirectLighting.js";
42
+ import "./ShadersInclude/logDepthFragment.js";
43
+ import "./ShadersInclude/fogFragment.js";
44
+ import "./ShadersInclude/pbrBlockImageProcessing.js";
45
+ import "./ShadersInclude/pbrBlockPrePass.js";
46
+ import "./ShadersInclude/oitFragment.js";
47
+ import "./ShadersInclude/pbrDebug.js";
48
+ /** @internal */
49
+ export declare const openpbrPixelShaderWGSL: {
50
+ name: string;
51
+ shader: string;
52
+ };
@@ -0,0 +1,193 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../Engines/shaderStore.js";
3
+ import "./ShadersInclude/prePassDeclaration.js";
4
+ import "./ShadersInclude/oitDeclaration.js";
5
+ import "./ShadersInclude/openpbrUboDeclaration.js";
6
+ import "./ShadersInclude/pbrFragmentExtraDeclaration.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
+ const name = "openpbrPixelShader";
51
+ const shader = `#define OPENPBR_FRAGMENT_SHADER
52
+ #define CUSTOM_FRAGMENT_BEGIN
53
+ #include<prePassDeclaration>[SCENE_MRT_COUNT]
54
+ #include<oitDeclaration>
55
+ #ifndef FROMLINEARSPACE
56
+ #define FROMLINEARSPACE
57
+ #endif
58
+ #include<openpbrUboDeclaration>
59
+ #include<pbrFragmentExtraDeclaration>
60
+ #include<lightUboDeclaration>[0..maxSimultaneousLights]
61
+ #include<openpbrFragmentSamplersDeclaration>
62
+ #include<imageProcessingDeclaration>
63
+ #include<clipPlaneFragmentDeclaration>
64
+ #include<logDepthDeclaration>
65
+ #include<fogFragmentDeclaration>
66
+ #include<helperFunctions>
67
+ #include<subSurfaceScatteringFunctions>
68
+ #include<importanceSampling>
69
+ #include<pbrHelperFunctions>
70
+ #include<imageProcessingFunctions>
71
+ #include<shadowsFragmentFunctions>
72
+ #include<harmonicsFunctions>
73
+ #include<pbrDirectLightingSetupFunctions>
74
+ #include<pbrDirectLightingFalloffFunctions>
75
+ #include<pbrBRDFFunctions>
76
+ #include<hdrFilteringFunctions>
77
+ #include<pbrDirectLightingFunctions>
78
+ #include<pbrIBLFunctions>
79
+ #include<openpbrNormalMapFragmentMainFunctions>
80
+ #include<openpbrNormalMapFragmentFunctions>
81
+ #ifdef REFLECTION
82
+ #include<reflectionFunction>
83
+ #endif
84
+ #define CUSTOM_FRAGMENT_DEFINITIONS
85
+ #include<openpbrDielectricReflectance>
86
+ #include<openpbrConductorReflectance>
87
+ #include<openpbrBlockAmbientOcclusion>
88
+ #include<openpbrGeometryInfo>
89
+ #include<openpbrIblFunctions>
90
+ fn layer(slab_bottom: vec3f,slab_top: vec3f,lerp_factor: f32,bottom_multiplier: vec3f,top_multiplier: vec3f)->vec3f {return mix(slab_bottom*bottom_multiplier,slab_top*top_multiplier,lerp_factor);}
91
+ @fragment
92
+ fn main(input: FragmentInputs)->FragmentOutputs {
93
+ #define CUSTOM_FRAGMENT_MAIN_BEGIN
94
+ #include<clipPlaneFragment>
95
+ #include<pbrBlockNormalGeometric>
96
+ var coatNormalW: vec3f=normalW;
97
+ #include<openpbrNormalMapFragment>
98
+ #include<openpbrBlockNormalFinal>
99
+ #include<openpbrBaseLayerData>
100
+ #include<openpbrCoatLayerData>
101
+ var subsurface_weight: f32=0.0f;var transmission_weight: f32=0.0f;var fuzz_weight: f32=0.0f;
102
+ #define CUSTOM_FRAGMENT_UPDATE_ALPHA
103
+ #include<depthPrePass>
104
+ #define CUSTOM_FRAGMENT_BEFORE_LIGHTS
105
+ var aoOut: ambientOcclusionOutParams;
106
+ #ifdef AMBIENT_OCCLUSION
107
+ var ambientOcclusionFromTexture: vec3f=textureSample(ambientOcclusionSampler,ambientOcclusionSamplerSampler,fragmentInputs.vAmbientOcclusionUV+uvOffset).rgb;
108
+ #endif
109
+ aoOut=ambientOcclusionBlock(
110
+ #ifdef AMBIENT_OCCLUSION
111
+ ambientOcclusionFromTexture,
112
+ uniforms.vAmbientOcclusionInfos
113
+ #endif
114
+ );
115
+ #ifdef ANISOTROPIC_COAT
116
+ let coatGeoInfo: geometryInfoAnisoOutParams=geometryInfoAniso(
117
+ coatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW
118
+ ,vec3f(geometry_coat_tangent.x,geometry_coat_tangent.y,coat_roughness_anisotropy),TBN
119
+ );
120
+ #else
121
+ let coatGeoInfo: geometryInfoOutParams=geometryInfo(
122
+ coatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW
123
+ );
124
+ #endif
125
+ specular_roughness=mix(specular_roughness,pow(min(1.0f,pow(specular_roughness,4.0f)+2.0f*pow(coat_roughness,4.0f)),0.25f),coat_weight);
126
+ #ifdef ANISOTROPIC_BASE
127
+ let baseGeoInfo: geometryInfoAnisoOutParams=geometryInfoAniso(
128
+ normalW,viewDirectionW.xyz,specular_roughness,geometricNormalW
129
+ ,vec3f(geometry_tangent.x,geometry_tangent.y,specular_roughness_anisotropy),TBN
130
+ );
131
+ #else
132
+ let baseGeoInfo: geometryInfoOutParams=geometryInfo(
133
+ normalW,viewDirectionW.xyz,specular_roughness,geometricNormalW
134
+ );
135
+ #endif
136
+ let coatReflectance: ReflectanceParams=dielectricReflectance(
137
+ coat_ior
138
+ ,1.0f
139
+ ,vec3f(1.0f)
140
+ ,coat_weight
141
+ );let baseDielectricReflectance: ReflectanceParams=dielectricReflectance(
142
+ specular_ior
143
+ ,mix(1.0f,coat_ior,coat_weight)
144
+ ,specular_color
145
+ ,specular_weight
146
+ );let baseConductorReflectance: ReflectanceParams=conductorReflectance(base_color,specular_color,specular_weight);var material_surface_ibl: vec3f=vec3f(0.f,0.f,0.f);
147
+ #include<openpbrEnvironmentLighting>
148
+ var material_surface_direct: vec3f=vec3f(0.f,0.f,0.f);
149
+ #if defined(LIGHT0)
150
+ var aggShadow: f32=0.f;var numLights: f32=0.f;
151
+ #include<openpbrDirectLightingInit>[0..maxSimultaneousLights]
152
+ #include<openpbrDirectLighting>[0..maxSimultaneousLights]
153
+ #endif
154
+ var material_surface_emission: vec3f=uniforms.vEmissionColor;
155
+ #ifdef EMISSION_COLOR
156
+ let emissionColorTex: vec3f=textureSample(emissionColorSampler,emissionColorSamplerSampler,uniforms.vEmissionColorUV+uvOffset).rgb;
157
+ #ifdef EMISSION_COLOR_GAMMA
158
+ material_surface_emission*=toLinearSpace(emissionColorTex.rgb);
159
+ #else
160
+ material_surface_emission*=emissionColorTex.rgb;
161
+ #endif
162
+ material_surface_emission*= uniforms.vEmissionColorInfos.y;
163
+ #endif
164
+ material_surface_emission*=uniforms.vLightingIntensity.y;
165
+ #define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION
166
+ var finalColor: vec4f=vec4f(material_surface_ibl+material_surface_direct+material_surface_emission,alpha);
167
+ #define CUSTOM_FRAGMENT_BEFORE_FOG
168
+ finalColor=max(finalColor,vec4f(0.0));
169
+ #include<logDepthFragment>
170
+ #include<fogFragment>(color,finalColor)
171
+ #include<pbrBlockImageProcessing>
172
+ #define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
173
+ #ifdef PREPASS
174
+ #include<pbrBlockPrePass>
175
+ #endif
176
+ #if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)
177
+ fragmentOutputs.color=finalColor;
178
+ #endif
179
+ #include<oitFragment>
180
+ #if ORDER_INDEPENDENT_TRANSPARENCY
181
+ if (fragDepth==nearestDepth) {fragmentOutputs.frontColor=vec4f(fragmentOutputs.frontColor.rgb+finalColor.rgb*finalColor.a*alphaMultiplier,1.0-alphaMultiplier*(1.0-finalColor.a));} else {fragmentOutputs.backColor+=finalColor;}
182
+ #endif
183
+ #include<pbrDebug>
184
+ #define CUSTOM_FRAGMENT_MAIN_END
185
+ }
186
+ `;
187
+ // Sideeffect
188
+ if (!ShaderStore.ShadersStoreWGSL[name]) {
189
+ ShaderStore.ShadersStoreWGSL[name] = shader;
190
+ }
191
+ /** @internal */
192
+ export const openpbrPixelShaderWGSL = { name, shader };
193
+ //# sourceMappingURL=openpbr.fragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbr.fragment.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/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,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuId,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/prePassDeclaration\";\nimport \"./ShadersInclude/oitDeclaration\";\nimport \"./ShadersInclude/openpbrUboDeclaration\";\nimport \"./ShadersInclude/pbrFragmentExtraDeclaration\";\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_BEGIN\n#include<prePassDeclaration>[SCENE_MRT_COUNT]\n#include<oitDeclaration>\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE\n#endif\n#include<openpbrUboDeclaration>\n#include<pbrFragmentExtraDeclaration>\n#include<lightUboDeclaration>[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>\nfn layer(slab_bottom: vec3f,slab_top: vec3f,lerp_factor: f32,bottom_multiplier: vec3f,top_multiplier: vec3f)->vec3f {return mix(slab_bottom*bottom_multiplier,slab_top*top_multiplier,lerp_factor);}\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\n#include<pbrBlockNormalGeometric>\nvar coatNormalW: vec3f=normalW;\n#include<openpbrNormalMapFragment>\n#include<openpbrBlockNormalFinal>\n#include<openpbrBaseLayerData>\n#include<openpbrCoatLayerData>\nvar subsurface_weight: f32=0.0f;var transmission_weight: f32=0.0f;var fuzz_weight: f32=0.0f;\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\n#include<depthPrePass>\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\nvar aoOut: ambientOcclusionOutParams;\n#ifdef AMBIENT_OCCLUSION\nvar ambientOcclusionFromTexture: vec3f=textureSample(ambientOcclusionSampler,ambientOcclusionSamplerSampler,fragmentInputs.vAmbientOcclusionUV+uvOffset).rgb;\n#endif\naoOut=ambientOcclusionBlock(\n#ifdef AMBIENT_OCCLUSION\nambientOcclusionFromTexture,\nuniforms.vAmbientOcclusionInfos\n#endif\n);\n#ifdef ANISOTROPIC_COAT\nlet coatGeoInfo: geometryInfoAnisoOutParams=geometryInfoAniso(\ncoatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW\n,vec3f(geometry_coat_tangent.x,geometry_coat_tangent.y,coat_roughness_anisotropy),TBN\n);\n#else\nlet coatGeoInfo: geometryInfoOutParams=geometryInfo(\ncoatNormalW,viewDirectionW.xyz,coat_roughness,geometricNormalW\n);\n#endif\nspecular_roughness=mix(specular_roughness,pow(min(1.0f,pow(specular_roughness,4.0f)+2.0f*pow(coat_roughness,4.0f)),0.25f),coat_weight);\n#ifdef ANISOTROPIC_BASE\nlet baseGeoInfo: geometryInfoAnisoOutParams=geometryInfoAniso(\nnormalW,viewDirectionW.xyz,specular_roughness,geometricNormalW\n,vec3f(geometry_tangent.x,geometry_tangent.y,specular_roughness_anisotropy),TBN\n);\n#else\nlet baseGeoInfo: geometryInfoOutParams=geometryInfo(\nnormalW,viewDirectionW.xyz,specular_roughness,geometricNormalW\n);\n#endif\nlet coatReflectance: ReflectanceParams=dielectricReflectance(\ncoat_ior \n,1.0f \n,vec3f(1.0f)\n,coat_weight\n);let baseDielectricReflectance: ReflectanceParams=dielectricReflectance(\nspecular_ior \n,mix(1.0f,coat_ior,coat_weight) \n,specular_color\n,specular_weight\n);let baseConductorReflectance: ReflectanceParams=conductorReflectance(base_color,specular_color,specular_weight);var material_surface_ibl: vec3f=vec3f(0.f,0.f,0.f);\n#include<openpbrEnvironmentLighting>\nvar material_surface_direct: vec3f=vec3f(0.f,0.f,0.f);\n#if defined(LIGHT0)\nvar aggShadow: f32=0.f;var numLights: f32=0.f;\n#include<openpbrDirectLightingInit>[0..maxSimultaneousLights]\n#include<openpbrDirectLighting>[0..maxSimultaneousLights]\n#endif\nvar material_surface_emission: vec3f=uniforms.vEmissionColor;\n#ifdef EMISSION_COLOR\nlet emissionColorTex: vec3f=textureSample(emissionColorSampler,emissionColorSamplerSampler,uniforms.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*= uniforms.vEmissionColorInfos.y;\n#endif\nmaterial_surface_emission*=uniforms.vLightingIntensity.y;\n#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\nvar finalColor: vec4f=vec4f(material_surface_ibl+material_surface_direct+material_surface_emission,alpha);\n#define CUSTOM_FRAGMENT_BEFORE_FOG\nfinalColor=max(finalColor,vec4f(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(ORDER_INDEPENDENT_TRANSPARENCY)\nfragmentOutputs.color=finalColor;\n#endif\n#include<oitFragment>\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {fragmentOutputs.frontColor=vec4f(fragmentOutputs.frontColor.rgb+finalColor.rgb*finalColor.a*alphaMultiplier,1.0-alphaMultiplier*(1.0-finalColor.a));} else {fragmentOutputs.backColor+=finalColor;}\n#endif\n#include<pbrDebug>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nif (!ShaderStore.ShadersStoreWGSL[name]) {\n ShaderStore.ShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrPixelShaderWGSL = { name, shader };\n"]}
@@ -0,0 +1,37 @@
1
+ import "./ShadersInclude/openpbrUboDeclaration.js";
2
+ import "./ShadersInclude/uvAttributeDeclaration.js";
3
+ import "./ShadersInclude/mainUVVaryingDeclaration.js";
4
+ import "./ShadersInclude/helperFunctions.js";
5
+ import "./ShadersInclude/pbrBRDFFunctions.js";
6
+ import "./ShadersInclude/bonesDeclaration.js";
7
+ import "./ShadersInclude/bakedVertexAnimationDeclaration.js";
8
+ import "./ShadersInclude/instancesDeclaration.js";
9
+ import "./ShadersInclude/prePassVertexDeclaration.js";
10
+ import "./ShadersInclude/samplerVertexDeclaration.js";
11
+ import "./ShadersInclude/harmonicsFunctions.js";
12
+ import "./ShadersInclude/openpbrNormalMapVertexDeclaration.js";
13
+ import "./ShadersInclude/clipPlaneVertexDeclaration.js";
14
+ import "./ShadersInclude/fogVertexDeclaration.js";
15
+ import "./ShadersInclude/lightVxUboDeclaration.js";
16
+ import "./ShadersInclude/morphTargetsVertexGlobalDeclaration.js";
17
+ import "./ShadersInclude/morphTargetsVertexDeclaration.js";
18
+ import "./ShadersInclude/logDepthDeclaration.js";
19
+ import "./ShadersInclude/morphTargetsVertexGlobal.js";
20
+ import "./ShadersInclude/morphTargetsVertex.js";
21
+ import "./ShadersInclude/instancesVertex.js";
22
+ import "./ShadersInclude/bonesVertex.js";
23
+ import "./ShadersInclude/bakedVertexAnimation.js";
24
+ import "./ShadersInclude/prePassVertex.js";
25
+ import "./ShadersInclude/uvVariableDeclaration.js";
26
+ import "./ShadersInclude/samplerVertexImplementation.js";
27
+ import "./ShadersInclude/openpbrNormalMapVertex.js";
28
+ import "./ShadersInclude/clipPlaneVertex.js";
29
+ import "./ShadersInclude/fogVertex.js";
30
+ import "./ShadersInclude/shadowsVertex.js";
31
+ import "./ShadersInclude/vertexColorMixing.js";
32
+ import "./ShadersInclude/logDepthVertex.js";
33
+ /** @internal */
34
+ export declare const openpbrVertexShaderWGSL: {
35
+ name: string;
36
+ shader: string;
37
+ };
@@ -0,0 +1,227 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../Engines/shaderStore.js";
3
+ import "./ShadersInclude/openpbrUboDeclaration.js";
4
+ import "./ShadersInclude/uvAttributeDeclaration.js";
5
+ import "./ShadersInclude/mainUVVaryingDeclaration.js";
6
+ import "./ShadersInclude/helperFunctions.js";
7
+ import "./ShadersInclude/pbrBRDFFunctions.js";
8
+ import "./ShadersInclude/bonesDeclaration.js";
9
+ import "./ShadersInclude/bakedVertexAnimationDeclaration.js";
10
+ import "./ShadersInclude/instancesDeclaration.js";
11
+ import "./ShadersInclude/prePassVertexDeclaration.js";
12
+ import "./ShadersInclude/samplerVertexDeclaration.js";
13
+ import "./ShadersInclude/harmonicsFunctions.js";
14
+ import "./ShadersInclude/openpbrNormalMapVertexDeclaration.js";
15
+ import "./ShadersInclude/clipPlaneVertexDeclaration.js";
16
+ import "./ShadersInclude/fogVertexDeclaration.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
+ const name = "openpbrVertexShader";
36
+ const shader = `#define OPENPBR_VERTEX_SHADER
37
+ #include<openpbrUboDeclaration>
38
+ #define CUSTOM_VERTEX_BEGIN
39
+ attribute position: vec3f;
40
+ #ifdef NORMAL
41
+ attribute normal: vec3f;
42
+ #endif
43
+ #ifdef TANGENT
44
+ attribute tangent: vec4f;
45
+ #endif
46
+ #ifdef UV1
47
+ attribute uv: vec2f;
48
+ #endif
49
+ #include<uvAttributeDeclaration>[2..7]
50
+ #include<mainUVVaryingDeclaration>[1..7]
51
+ #ifdef VERTEXCOLOR
52
+ attribute color: vec4f;
53
+ #endif
54
+ #include<helperFunctions>
55
+ #include<pbrBRDFFunctions>
56
+ #include<bonesDeclaration>
57
+ #include<bakedVertexAnimationDeclaration>
58
+ #include<instancesDeclaration>
59
+ #include<prePassVertexDeclaration>
60
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,Albedo)
61
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight)
62
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness)
63
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness)
64
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight)
65
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor)
66
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness)
67
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy)
68
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight)
69
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor)
70
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness)
71
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy)
72
+ #include<samplerVertexDeclaration>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening)
73
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal)
74
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent)
75
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal)
76
+ #include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity)
77
+ #include<samplerVertexDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor)
78
+ #include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion)
79
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
80
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
81
+ varying vPositionW: vec3f;
82
+ #if DEBUGMODE>0
83
+ varying vClipSpacePosition: vec4f;
84
+ #endif
85
+ #ifdef NORMAL
86
+ varying vNormalW: vec3f;
87
+ #if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
88
+ varying vEnvironmentIrradiance: vec3f;
89
+ #include<harmonicsFunctions>
90
+ #endif
91
+ #endif
92
+ #if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
93
+ varying vColor: vec4f;
94
+ #endif
95
+ #include<openpbrNormalMapVertexDeclaration>
96
+ #include<clipPlaneVertexDeclaration>
97
+ #include<fogVertexDeclaration>
98
+ #include<lightVxUboDeclaration>[0..maxSimultaneousLights]
99
+ #include<morphTargetsVertexGlobalDeclaration>
100
+ #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
101
+ #ifdef REFLECTIONMAP_SKYBOX
102
+ varying vPositionUVW: vec3f;
103
+ #endif
104
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
105
+ varying vDirectionW: vec3f;
106
+ #endif
107
+ #include<logDepthDeclaration>
108
+ #define CUSTOM_VERTEX_DEFINITIONS
109
+ @vertex
110
+ fn main(input : VertexInputs)->FragmentInputs {
111
+ #define CUSTOM_VERTEX_MAIN_BEGIN
112
+ var positionUpdated: vec3f=vertexInputs.position;
113
+ #ifdef NORMAL
114
+ var normalUpdated: vec3f=vertexInputs.normal;
115
+ #endif
116
+ #ifdef TANGENT
117
+ var tangentUpdated: vec4f=vertexInputs.tangent;
118
+ #endif
119
+ #ifdef UV1
120
+ var uvUpdated: vec2f=vertexInputs.uv;
121
+ #endif
122
+ #ifdef UV2
123
+ var uv2Updated: vec2f=vertexInputs.uv2;
124
+ #endif
125
+ #ifdef VERTEXCOLOR
126
+ var colorUpdated: vec4f=vertexInputs.color;
127
+ #endif
128
+ #include<morphTargetsVertexGlobal>
129
+ #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
130
+ #ifdef REFLECTIONMAP_SKYBOX
131
+ vertexOutputs.vPositionUVW=positionUpdated;
132
+ #endif
133
+ #define CUSTOM_VERTEX_UPDATE_POSITION
134
+ #define CUSTOM_VERTEX_UPDATE_NORMAL
135
+ #include<instancesVertex>
136
+ #if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
137
+ vertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld*vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*vec4f(positionUpdated,1.0);
138
+ #endif
139
+ #include<bonesVertex>
140
+ #include<bakedVertexAnimation>
141
+ var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPositionW= worldPos.xyz;
142
+ #ifdef PREPASS
143
+ #include<prePassVertex>
144
+ #endif
145
+ #ifdef NORMAL
146
+ var normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
147
+ #if defined(INSTANCES) && defined(THIN_INSTANCES)
148
+ vertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);
149
+ #else
150
+ #ifdef NONUNIFORMSCALING
151
+ normalWorld=transposeMat3(inverseMat3(normalWorld));
152
+ #endif
153
+ vertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);
154
+ #endif
155
+ #if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
156
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
157
+ var viewDirectionW: vec3f=normalize(scene.vEyePosition.xyz-vertexOutputs.vPositionW);var NdotV: f32=max(dot(vertexOutputs.vNormalW,viewDirectionW),0.0);var roughNormal: vec3f=mix(vertexOutputs.vNormalW,viewDirectionW,(0.5*(1.0-NdotV))*uniforms.vBaseDiffuseRoughness);var reflectionVector: vec3f= (uniforms.reflectionMatrix* vec4f(roughNormal,0)).xyz;
158
+ #else
159
+ var reflectionVector: vec3f= (uniforms.reflectionMatrix* vec4f(vertexOutputs.vNormalW,0)).xyz;
160
+ #endif
161
+ #ifdef REFLECTIONMAP_OPPOSITEZ
162
+ reflectionVector.z*=-1.0;
163
+ #endif
164
+ vertexOutputs.vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);
165
+ #endif
166
+ #endif
167
+ #define CUSTOM_VERTEX_UPDATE_WORLDPOS
168
+ #ifdef MULTIVIEW
169
+ if (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}
170
+ #else
171
+ vertexOutputs.position=scene.viewProjection*worldPos;
172
+ #endif
173
+ #if DEBUGMODE>0
174
+ vertexOutputs.vClipSpacePosition=vertexOutputs.position;
175
+ #endif
176
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
177
+ vertexOutputs.vDirectionW=normalize((finalWorld*vec4f(positionUpdated,0.0)).xyz);
178
+ #endif
179
+ #ifndef UV1
180
+ var uvUpdated: vec2f= vec2f(0.,0.);
181
+ #endif
182
+ #ifdef MAINUV1
183
+ vertexOutputs.vMainUV1=uvUpdated;
184
+ #endif
185
+ #ifndef UV2
186
+ var uv2Updated: vec2f= vec2f(0.,0.);
187
+ #endif
188
+ #ifdef MAINUV2
189
+ vertexOutputs.vMainUV2=uv2Updated;
190
+ #endif
191
+ #include<uvVariableDeclaration>[3..7]
192
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_MATRIXNAME_,baseColor,_INFONAME_,BaseColorInfos.x)
193
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight,_MATRIXNAME_,baseWeight,_INFONAME_,BaseWeightInfos.x)
194
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness,_MATRIXNAME_,baseDiffuseRoughness,_INFONAME_,BaseDiffuseRoughnessInfos.x)
195
+ #include<samplerVertexImplementation>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness,_MATRIXNAME_,baseMetalness,_INFONAME_,BaseMetalnessInfos.x)
196
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight,_MATRIXNAME_,specularWeight,_INFONAME_,SpecularWeightInfos.x)
197
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor,_MATRIXNAME_,specularColor,_INFONAME_,SpecularColorInfos.x)
198
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness,_MATRIXNAME_,specularRoughness,_INFONAME_,SpecularRoughnessInfos.x)
199
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy,_MATRIXNAME_,specularRoughnessAnisotropy,_INFONAME_,SpecularRoughnessAnisotropyInfos.x)
200
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight,_MATRIXNAME_,coatWeight,_INFONAME_,CoatWeightInfos.x)
201
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_COLOR,_VARYNAME_,CoatColor,_MATRIXNAME_,coatColor,_INFONAME_,CoatColorInfos.x)
202
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_MATRIXNAME_,coatRoughness,_INFONAME_,CoatRoughnessInfos.x)
203
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy,_MATRIXNAME_,coatRoughnessAnisotropy,_INFONAME_,CoatRoughnessAnisotropyInfos.x)
204
+ #include<samplerVertexImplementation>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening,_MATRIXNAME_,coatDarkening,_INFONAME_,CoatDarkeningInfos.x)
205
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_MATRIXNAME_,geometryNormal,_INFONAME_,GeometryNormalInfos.x)
206
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent,_MATRIXNAME_,geometryTangent,_INFONAME_,GeometryTangentInfos.x)
207
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_MATRIXNAME_,geometryCoatNormal,_INFONAME_,GeometryCoatNormalInfos.x)
208
+ #include<samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_MATRIXNAME_,geometryOpacity,_INFONAME_,GeometryOpacityInfos.x)
209
+ #include<samplerVertexImplementation>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_MATRIXNAME_,emissionColor,_INFONAME_,EmissionColorInfos.x)
210
+ #include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_MATRIXNAME_,ambientOcclusion,_INFONAME_,AmbientOcclusionInfos.x)
211
+ #include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
212
+ #include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
213
+ #include<openpbrNormalMapVertex>
214
+ #include<clipPlaneVertex>
215
+ #include<fogVertex>
216
+ #include<shadowsVertex>[0..maxSimultaneousLights]
217
+ #include<vertexColorMixing>
218
+ #include<logDepthVertex>
219
+ #define CUSTOM_VERTEX_MAIN_END
220
+ }`;
221
+ // Sideeffect
222
+ if (!ShaderStore.ShadersStoreWGSL[name]) {
223
+ ShaderStore.ShadersStoreWGSL[name] = shader;
224
+ }
225
+ /** @internal */
226
+ export const openpbrVertexShaderWGSL = { name, shader };
227
+ //# sourceMappingURL=openpbr.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbr.vertex.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/openpbr.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwLb,CAAC;AACH,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\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/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#include<openpbrUboDeclaration>\n#define CUSTOM_VERTEX_BEGIN\nattribute position: vec3f;\n#ifdef NORMAL\nattribute normal: vec3f;\n#endif\n#ifdef TANGENT\nattribute tangent: vec4f;\n#endif\n#ifdef UV1\nattribute uv: vec2f;\n#endif\n#include<uvAttributeDeclaration>[2..7]\n#include<mainUVVaryingDeclaration>[1..7]\n#ifdef VERTEXCOLOR\nattribute color: vec4f;\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_,Albedo)\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 vPositionW: vec3f;\n#if DEBUGMODE>0\nvarying vClipSpacePosition: vec4f;\n#endif\n#ifdef NORMAL\nvarying vNormalW: vec3f;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vEnvironmentIrradiance: vec3f;\n#include<harmonicsFunctions>\n#endif\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vColor: vec4f;\n#endif\n#include<openpbrNormalMapVertexDeclaration>\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<lightVxUboDeclaration>[0..maxSimultaneousLights]\n#include<morphTargetsVertexGlobalDeclaration>\n#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vPositionUVW: vec3f;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vDirectionW: vec3f;\n#endif\n#include<logDepthDeclaration>\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar positionUpdated: vec3f=vertexInputs.position;\n#ifdef NORMAL\nvar normalUpdated: vec3f=vertexInputs.normal;\n#endif\n#ifdef TANGENT\nvar tangentUpdated: vec4f=vertexInputs.tangent;\n#endif\n#ifdef UV1\nvar uvUpdated: vec2f=vertexInputs.uv;\n#endif\n#ifdef UV2\nvar uv2Updated: vec2f=vertexInputs.uv2;\n#endif\n#ifdef VERTEXCOLOR\nvar colorUpdated: vec4f=vertexInputs.color;\n#endif\n#include<morphTargetsVertexGlobal>\n#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvertexOutputs.vPositionUVW=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)\nvertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld*vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*vec4f(positionUpdated,1.0);\n#endif\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvar worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPositionW= worldPos.xyz;\n#ifdef PREPASS\n#include<prePassVertex>\n#endif\n#ifdef NORMAL\nvar normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvertexOutputs.vNormalW=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\nvar viewDirectionW: vec3f=normalize(scene.vEyePosition.xyz-vertexOutputs.vPositionW);var NdotV: f32=max(dot(vertexOutputs.vNormalW,viewDirectionW),0.0);var roughNormal: vec3f=mix(vertexOutputs.vNormalW,viewDirectionW,(0.5*(1.0-NdotV))*uniforms.vBaseDiffuseRoughness);var reflectionVector: vec3f= (uniforms.reflectionMatrix* vec4f(roughNormal,0)).xyz;\n#else\nvar reflectionVector: vec3f= (uniforms.reflectionMatrix* vec4f(vertexOutputs.vNormalW,0)).xyz;\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\nvertexOutputs.vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\n#endif\n#endif\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}\n#else\nvertexOutputs.position=scene.viewProjection*worldPos;\n#endif\n#if DEBUGMODE>0\nvertexOutputs.vClipSpacePosition=vertexOutputs.position;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvertexOutputs.vDirectionW=normalize((finalWorld*vec4f(positionUpdated,0.0)).xyz);\n#endif\n#ifndef UV1\nvar uvUpdated: vec2f= vec2f(0.,0.);\n#endif\n#ifdef MAINUV1\nvertexOutputs.vMainUV1=uvUpdated;\n#endif\n#ifndef UV2\nvar uv2Updated: vec2f= vec2f(0.,0.);\n#endif\n#ifdef MAINUV2\nvertexOutputs.vMainUV2=uv2Updated;\n#endif\n#include<uvVariableDeclaration>[3..7]\n#include<samplerVertexImplementation>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_MATRIXNAME_,baseColor,_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,_VARYNAME_,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_TANGENT,_VARYINGNAME_,GeometryTangent,_MATRIXNAME_,geometryTangent,_INFONAME_,GeometryTangentInfos.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_,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#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nif (!ShaderStore.ShadersStoreWGSL[name]) {\n ShaderStore.ShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrVertexShaderWGSL = { name, shader };\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/core",
3
- "version": "8.28.1",
3
+ "version": "8.28.3",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "types": "index.d.ts",
package/scene.d.ts CHANGED
@@ -90,6 +90,13 @@ export interface SceneOptions {
90
90
  useClonedMeshMap?: boolean;
91
91
  /** Defines if the creation of the scene should impact the engine (Eg. UtilityLayer's scene) */
92
92
  virtual?: boolean;
93
+ /**
94
+ * @experimental
95
+ * FloatingOriginMode helps avoid floating point imprecision of rendering large worlds by
96
+ * 1. Forcing the engine to use doublePrecision mode
97
+ * 2. Offsetting uniform values before passing to shader so that camera is centered at origin and world is offset by camera position
98
+ */
99
+ floatingOriginMode?: boolean;
93
100
  }
94
101
  /**
95
102
  * Define how the scene should favor performance over ease of use
@@ -1581,6 +1588,20 @@ export declare class Scene implements IAnimatable, IClipPlanesHolder, IAssetCont
1581
1588
  * @param ubo the ubo to set for the scene
1582
1589
  */
1583
1590
  setSceneUniformBuffer(ubo: UniformBuffer): void;
1591
+ private _floatingOriginMode;
1592
+ /**
1593
+ * @experimental
1594
+ * When true, enables floatingOriginMode which helps avoid floating point imprecision when using huge coordinate system by
1595
+ * 1. Forcing the engine to use doublePrecision mode
1596
+ * 2. Offsetting uniform values before passing to shader so that camera is centered at origin and world is offset by camera position
1597
+ */
1598
+ get floatingOriginMode(): boolean;
1599
+ private _floatingOriginOffsetDefault;
1600
+ /**
1601
+ * @experimental
1602
+ * When floatingOriginMode is enabled, offset is equal to the active camera position. If no active camera or floatingOriginMode is disabled, offset is 0.
1603
+ */
1604
+ get floatingOriginOffset(): Vector3;
1584
1605
  /**
1585
1606
  * Gets an unique (relatively to the current scene) Id
1586
1607
  * @returns an unique number for the scene