@onerjs/core 8.56.3 → 9.0.0

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 (484) hide show
  1. package/Animations/animatable.core.js +36 -0
  2. package/Animations/animatable.core.js.map +1 -1
  3. package/Animations/animationGroup.pure.d.ts +61 -1
  4. package/Animations/animationGroup.pure.js +191 -2
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/index.d.ts +1 -0
  7. package/Animations/index.js +1 -0
  8. package/Animations/index.js.map +1 -1
  9. package/Animations/pure.d.ts +1 -0
  10. package/Animations/pure.js +1 -0
  11. package/Animations/pure.js.map +1 -1
  12. package/Animations/rootMotion.d.ts +560 -0
  13. package/Animations/rootMotion.js +1709 -0
  14. package/Animations/rootMotion.js.map +1 -0
  15. package/Animations/runtimeAnimation.d.ts +57 -0
  16. package/Animations/runtimeAnimation.js +127 -3
  17. package/Animations/runtimeAnimation.js.map +1 -1
  18. package/Cameras/arcRotateCamera.pure.d.ts +2 -0
  19. package/Cameras/arcRotateCamera.pure.js +2 -0
  20. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  21. package/Cameras/camera.pure.js +4 -0
  22. package/Cameras/camera.pure.js.map +1 -1
  23. package/Cameras/targetCamera.pure.d.ts +2 -0
  24. package/Cameras/targetCamera.pure.js +7 -1
  25. package/Cameras/targetCamera.pure.js.map +1 -1
  26. package/Collisions/gpuPicker.js +5 -5
  27. package/Collisions/gpuPicker.js.map +1 -1
  28. package/Engines/AbstractEngine/abstractEngine.query.pure.js +4 -2
  29. package/Engines/AbstractEngine/abstractEngine.query.pure.js.map +1 -1
  30. package/Engines/AbstractEngine/abstractEngine.query.types.d.ts +11 -2
  31. package/Engines/AbstractEngine/abstractEngine.query.types.js.map +1 -1
  32. package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js +1 -0
  33. package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js.map +1 -1
  34. package/Engines/Extensions/engine.multiRender.pure.js +63 -0
  35. package/Engines/Extensions/engine.multiRender.pure.js.map +1 -1
  36. package/Engines/Extensions/engine.multiRender.types.d.ts +13 -0
  37. package/Engines/Extensions/engine.multiRender.types.js.map +1 -1
  38. package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +2 -2
  39. package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
  40. package/Engines/Extensions/engine.prefilteredCubeTexture.types.d.ts +2 -1
  41. package/Engines/Extensions/engine.prefilteredCubeTexture.types.js.map +1 -1
  42. package/Engines/Extensions/index.d.ts +1 -0
  43. package/Engines/Extensions/index.js +1 -0
  44. package/Engines/Extensions/index.js.map +1 -1
  45. package/Engines/Extensions/pure.d.ts +1 -1
  46. package/Engines/Extensions/pure.js +1 -1
  47. package/Engines/Extensions/pure.js.map +1 -1
  48. package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +88 -39
  49. package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
  50. package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.d.ts +20 -2
  51. package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.js.map +1 -1
  52. package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +4 -0
  53. package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
  54. package/Engines/WebGPU/Extensions/engine.multiRender.types.d.ts +13 -0
  55. package/Engines/WebGPU/Extensions/engine.multiRender.types.js.map +1 -1
  56. package/Engines/WebGPU/Extensions/engine.query.pure.js +11 -3
  57. package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
  58. package/Engines/WebGPU/Extensions/index.d.ts +1 -0
  59. package/Engines/WebGPU/Extensions/index.js +1 -0
  60. package/Engines/WebGPU/Extensions/index.js.map +1 -1
  61. package/Engines/WebGPU/Extensions/pure.d.ts +1 -1
  62. package/Engines/WebGPU/Extensions/pure.js +1 -1
  63. package/Engines/WebGPU/Extensions/pure.js.map +1 -1
  64. package/Engines/WebGPU/webgpuBundleList.d.ts +2 -0
  65. package/Engines/WebGPU/webgpuBundleList.js +4 -0
  66. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  67. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -2
  68. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  69. package/Engines/WebGPU/webgpuHardwareTexture.js +3 -1
  70. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  71. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
  72. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  73. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +4 -0
  74. package/Engines/WebGPU/webgpuSnapshotRendering.js +40 -7
  75. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
  76. package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
  77. package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
  78. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  79. package/Engines/WebGPU/webgpuTextureManager.d.ts +2 -0
  80. package/Engines/WebGPU/webgpuTextureManager.js +286 -13
  81. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  82. package/Engines/abstractEngine.pure.d.ts +2 -0
  83. package/Engines/abstractEngine.pure.js +7 -3
  84. package/Engines/abstractEngine.pure.js.map +1 -1
  85. package/Engines/constants.d.ts +4 -0
  86. package/Engines/constants.js +4 -0
  87. package/Engines/constants.js.map +1 -1
  88. package/Engines/thinEngine.pure.d.ts +14 -0
  89. package/Engines/thinEngine.pure.js +48 -12
  90. package/Engines/thinEngine.pure.js.map +1 -1
  91. package/Engines/thinNativeEngine.pure.d.ts +1 -0
  92. package/Engines/thinNativeEngine.pure.js +7 -1
  93. package/Engines/thinNativeEngine.pure.js.map +1 -1
  94. package/Engines/thinWebGPUEngine.d.ts +4 -0
  95. package/Engines/thinWebGPUEngine.js +10 -1
  96. package/Engines/thinWebGPUEngine.js.map +1 -1
  97. package/Engines/webgpuEngine.pure.d.ts +5 -2
  98. package/Engines/webgpuEngine.pure.js +48 -13
  99. package/Engines/webgpuEngine.pure.js.map +1 -1
  100. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +2 -2
  101. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
  102. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.d.ts +11 -2
  103. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +1 -1
  104. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
  105. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.d.ts +9 -1
  106. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js +6 -8
  107. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js.map +1 -1
  108. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.d.ts +2 -0
  109. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js +5 -1
  110. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js.map +1 -1
  111. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.d.ts +2 -0
  112. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js +5 -1
  113. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js.map +1 -1
  114. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +9 -0
  115. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +34 -9
  116. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
  117. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +2 -0
  118. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +4 -0
  119. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
  120. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +2 -0
  121. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +4 -0
  122. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
  123. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js +19 -7
  124. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js.map +1 -1
  125. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +20 -2
  126. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +53 -10
  127. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
  128. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.d.ts +16 -1
  129. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +64 -14
  130. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
  131. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js +64 -16
  132. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js.map +1 -1
  133. package/FlowGraph/flowGraph.d.ts +4 -0
  134. package/FlowGraph/flowGraph.js +38 -7
  135. package/FlowGraph/flowGraph.js.map +1 -1
  136. package/FlowGraph/flowGraphBlock.js +3 -0
  137. package/FlowGraph/flowGraphBlock.js.map +1 -1
  138. package/FlowGraph/flowGraphConnection.d.ts +7 -0
  139. package/FlowGraph/flowGraphConnection.js +7 -0
  140. package/FlowGraph/flowGraphConnection.js.map +1 -1
  141. package/FlowGraph/flowGraphContext.d.ts +2 -1
  142. package/FlowGraph/flowGraphContext.js +4 -3
  143. package/FlowGraph/flowGraphContext.js.map +1 -1
  144. package/FlowGraph/flowGraphCoordinator.d.ts +15 -1
  145. package/FlowGraph/flowGraphCoordinator.js +47 -16
  146. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  147. package/FlowGraph/flowGraphEventBlock.d.ts +5 -0
  148. package/FlowGraph/flowGraphEventBlock.js +7 -0
  149. package/FlowGraph/flowGraphEventBlock.js.map +1 -1
  150. package/FlowGraph/flowGraphHostResolver.d.ts +2 -1
  151. package/FlowGraph/flowGraphHostResolver.js.map +1 -1
  152. package/FlowGraph/flowGraphParser.js +60 -2
  153. package/FlowGraph/flowGraphParser.js.map +1 -1
  154. package/FlowGraph/serialization.d.ts +2 -0
  155. package/FlowGraph/serialization.js +10 -22
  156. package/FlowGraph/serialization.js.map +1 -1
  157. package/FlowGraph/typeDefinitions.d.ts +8 -0
  158. package/FlowGraph/typeDefinitions.js.map +1 -1
  159. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.d.ts +5 -0
  160. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js +8 -0
  161. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js.map +1 -0
  162. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.d.ts +87 -0
  163. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js +295 -0
  164. package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js.map +1 -0
  165. package/FrameGraph/Node/Blocks/PostProcesses/pure.d.ts +1 -0
  166. package/FrameGraph/Node/Blocks/PostProcesses/pure.js +1 -0
  167. package/FrameGraph/Node/Blocks/PostProcesses/pure.js.map +1 -1
  168. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +4 -4
  169. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  170. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +5 -1
  171. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +13 -1
  172. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/allBlocks.pure.js +2 -0
  174. package/FrameGraph/Node/Blocks/allBlocks.pure.js.map +1 -1
  175. package/FrameGraph/Node/Blocks/index.d.ts +1 -0
  176. package/FrameGraph/Node/Blocks/index.js +1 -0
  177. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  178. package/FrameGraph/Node/Blocks/inputBlock.pure.js +20 -1
  179. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  180. package/FrameGraph/Node/Blocks/pure.d.ts +1 -0
  181. package/FrameGraph/Node/Blocks/pure.js +1 -0
  182. package/FrameGraph/Node/Blocks/pure.js.map +1 -1
  183. package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
  184. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +4 -2
  185. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
  186. package/FrameGraph/Node/nodeRenderGraph.js +1 -1
  187. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  188. package/FrameGraph/Tasks/Layers/selectionOutlineTask.js +1 -0
  189. package/FrameGraph/Tasks/Layers/selectionOutlineTask.js.map +1 -1
  190. package/FrameGraph/Tasks/Misc/cullObjectsTask.js +5 -1
  191. package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
  192. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +1 -0
  193. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  194. package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.d.ts +69 -0
  195. package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js +223 -0
  196. package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js.map +1 -0
  197. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +25 -3
  198. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +69 -33
  199. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  200. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -1
  201. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  202. package/FrameGraph/frameGraphObjectList.d.ts +6 -1
  203. package/FrameGraph/frameGraphObjectList.js.map +1 -1
  204. package/FrameGraph/frameGraphRenderContext.d.ts +3 -1
  205. package/FrameGraph/frameGraphRenderContext.js +5 -5
  206. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  207. package/FrameGraph/index.d.ts +1 -0
  208. package/FrameGraph/index.js +1 -0
  209. package/FrameGraph/index.js.map +1 -1
  210. package/FrameGraph/pure.d.ts +1 -0
  211. package/FrameGraph/pure.js +1 -0
  212. package/FrameGraph/pure.js.map +1 -1
  213. package/Inputs/scene.inputManager.d.ts +4 -0
  214. package/Inputs/scene.inputManager.js +50 -8
  215. package/Inputs/scene.inputManager.js.map +1 -1
  216. package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js +5 -5
  217. package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js.map +1 -1
  218. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +5 -5
  219. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  220. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +26 -1
  221. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +151 -47
  222. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  223. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +5 -5
  224. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  225. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +11 -1
  226. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  227. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +17 -2
  228. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  229. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +2 -2
  230. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  231. package/Materials/Node/nodeMaterial.pure.d.ts +4 -0
  232. package/Materials/Node/nodeMaterial.pure.js +4 -0
  233. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  234. package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
  235. package/Materials/Node/nodeMaterialBuildState.js +25 -3
  236. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  237. package/Materials/PBR/openpbrMaterial.pure.d.ts +2 -0
  238. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +2 -0
  239. package/Materials/Textures/Procedurals/proceduralTexture.pure.d.ts +13 -14
  240. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +6 -6
  241. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  242. package/Materials/Textures/baseTexture.pure.js +3 -0
  243. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  244. package/Materials/Textures/cubeTexture.pure.js +1 -1
  245. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  246. package/Materials/Textures/internalTexture.d.ts +8 -1
  247. package/Materials/Textures/internalTexture.js +9 -2
  248. package/Materials/Textures/internalTexture.js.map +1 -1
  249. package/Materials/Textures/rawTexture2DArray.functions.d.ts +3 -3
  250. package/Materials/Textures/rawTexture2DArray.functions.js.map +1 -1
  251. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  252. package/Materials/Textures/rawTexture3D.js +1 -1
  253. package/Materials/Textures/rawTexture3D.js.map +1 -1
  254. package/Materials/Textures/textureHelper.functions.d.ts +14 -0
  255. package/Materials/Textures/textureHelper.functions.js +24 -0
  256. package/Materials/Textures/textureHelper.functions.js.map +1 -1
  257. package/Materials/ditheredTileFadeMaterialPlugin.d.ts +210 -0
  258. package/Materials/ditheredTileFadeMaterialPlugin.js +509 -0
  259. package/Materials/ditheredTileFadeMaterialPlugin.js.map +1 -0
  260. package/Materials/index.d.ts +1 -0
  261. package/Materials/index.js +1 -0
  262. package/Materials/index.js.map +1 -1
  263. package/Materials/materialHelper.geometryrendering.d.ts +46 -1
  264. package/Materials/materialHelper.geometryrendering.js +105 -8
  265. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  266. package/Materials/prepass.defines.d.ts +2 -0
  267. package/Materials/prepass.defines.js +2 -0
  268. package/Materials/prepass.defines.js.map +1 -1
  269. package/Materials/pure.d.ts +1 -0
  270. package/Materials/pure.js +1 -0
  271. package/Materials/pure.js.map +1 -1
  272. package/Materials/standardMaterial.pure.d.ts +2 -0
  273. package/Materials/standardMaterial.pure.js +6 -3
  274. package/Materials/standardMaterial.pure.js.map +1 -1
  275. package/Meshes/Builders/polygonBuilder.pure.d.ts +4 -0
  276. package/Meshes/Builders/polygonBuilder.pure.js +4 -1
  277. package/Meshes/Builders/polygonBuilder.pure.js.map +1 -1
  278. package/Meshes/GaussianSplatting/gaussianSplatting.functions.d.ts +19 -0
  279. package/Meshes/GaussianSplatting/gaussianSplatting.functions.js +23 -0
  280. package/Meshes/GaussianSplatting/gaussianSplatting.functions.js.map +1 -0
  281. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +3 -14
  282. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +20 -24
  283. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  284. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +2 -0
  285. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +11 -4
  286. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  287. package/Meshes/abstractMesh.pure.d.ts +18 -0
  288. package/Meshes/abstractMesh.pure.js +22 -0
  289. package/Meshes/abstractMesh.pure.js.map +1 -1
  290. package/Meshes/index.d.ts +1 -0
  291. package/Meshes/index.js +1 -0
  292. package/Meshes/index.js.map +1 -1
  293. package/Meshes/instancedMesh.pure.d.ts +5 -0
  294. package/Meshes/instancedMesh.pure.js +12 -0
  295. package/Meshes/instancedMesh.pure.js.map +1 -1
  296. package/Meshes/mesh.pure.js +23 -8
  297. package/Meshes/mesh.pure.js.map +1 -1
  298. package/Meshes/meshBlendingTag.d.ts +47 -0
  299. package/Meshes/meshBlendingTag.js +64 -0
  300. package/Meshes/meshBlendingTag.js.map +1 -0
  301. package/Meshes/polygonMesh.js +2 -2
  302. package/Meshes/polygonMesh.js.map +1 -1
  303. package/Meshes/pure.d.ts +1 -0
  304. package/Meshes/pure.js +1 -0
  305. package/Meshes/pure.js.map +1 -1
  306. package/Misc/fileTools.pure.js +21 -0
  307. package/Misc/fileTools.pure.js.map +1 -1
  308. package/Misc/snapshotRenderingHelper.js +2 -2
  309. package/Misc/snapshotRenderingHelper.js.map +1 -1
  310. package/Misc/tools.pure.js +1 -1
  311. package/Misc/tools.pure.js.map +1 -1
  312. package/Particles/gpuParticleSystem.pure.d.ts +2 -0
  313. package/Particles/gpuParticleSystem.pure.js +89 -28
  314. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  315. package/Particles/thinParticleSystem.pure.d.ts +2 -0
  316. package/Particles/thinParticleSystem.pure.js +84 -19
  317. package/Particles/thinParticleSystem.pure.js.map +1 -1
  318. package/Particles/webgl2ParticleSystem.pure.d.ts +1 -0
  319. package/Particles/webgl2ParticleSystem.pure.js +12 -4
  320. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  321. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js +7 -0
  322. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js.map +1 -1
  323. package/PostProcesses/index.d.ts +2 -0
  324. package/PostProcesses/index.js +2 -0
  325. package/PostProcesses/index.js.map +1 -1
  326. package/PostProcesses/meshBlendingBlueNoise.d.ts +15 -0
  327. package/PostProcesses/meshBlendingBlueNoise.js +77 -0
  328. package/PostProcesses/meshBlendingBlueNoise.js.map +1 -0
  329. package/PostProcesses/meshBlendingPostProcess.d.ts +131 -0
  330. package/PostProcesses/meshBlendingPostProcess.js +315 -0
  331. package/PostProcesses/meshBlendingPostProcess.js.map +1 -0
  332. package/PostProcesses/pure.d.ts +2 -0
  333. package/PostProcesses/pure.js +2 -0
  334. package/PostProcesses/pure.js.map +1 -1
  335. package/PostProcesses/thinMeshBlendingPostProcess.d.ts +339 -0
  336. package/PostProcesses/thinMeshBlendingPostProcess.js +771 -0
  337. package/PostProcesses/thinMeshBlendingPostProcess.js.map +1 -0
  338. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +6 -6
  339. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  340. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +8 -8
  341. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  342. package/Rendering/boundingBoxRenderer.pure.js +2 -1
  343. package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
  344. package/Rendering/depthRenderer.pure.js +3 -4
  345. package/Rendering/depthRenderer.pure.js.map +1 -1
  346. package/Rendering/edgesRenderer.pure.d.ts +4 -2
  347. package/Rendering/edgesRenderer.pure.js +11 -2
  348. package/Rendering/edgesRenderer.pure.js.map +1 -1
  349. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +10 -0
  350. package/Rendering/fluidRenderer/fluidRenderingObject.js +20 -0
  351. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  352. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +9 -3
  353. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +14 -9
  354. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  355. package/Rendering/geometryBufferRenderer.pure.d.ts +38 -4
  356. package/Rendering/geometryBufferRenderer.pure.js +126 -17
  357. package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
  358. package/Rendering/objectRenderer.d.ts +7 -1
  359. package/Rendering/objectRenderer.js +45 -7
  360. package/Rendering/objectRenderer.js.map +1 -1
  361. package/Rendering/outlineRenderer.pure.js +6 -2
  362. package/Rendering/outlineRenderer.pure.js.map +1 -1
  363. package/Rendering/renderingManager.d.ts +1 -1
  364. package/Rendering/renderingManager.js +5 -4
  365. package/Rendering/renderingManager.js.map +1 -1
  366. package/Shaders/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
  367. package/Shaders/ShadersInclude/defaultFragmentAlpha.js +34 -0
  368. package/Shaders/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
  369. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +5 -1
  370. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
  371. package/Shaders/ShadersInclude/geometryRenderingFragment.d.ts +5 -0
  372. package/Shaders/ShadersInclude/geometryRenderingFragment.js +74 -0
  373. package/Shaders/ShadersInclude/geometryRenderingFragment.js.map +1 -0
  374. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +89 -0
  375. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
  376. package/Shaders/ShadersInclude/openpbrBlockPrePass.js +24 -17
  377. package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
  378. package/Shaders/ShadersInclude/pbrBlockPrePass.js +27 -20
  379. package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  380. package/Shaders/ShadersInclude/pbrDebug.js +6 -2
  381. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  382. package/Shaders/ShadersInclude/prePassDeclaration.js +95 -2
  383. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  384. package/Shaders/default.fragment.js +31 -40
  385. package/Shaders/default.fragment.js.map +1 -1
  386. package/Shaders/depthOfField.fragment.js +13 -9
  387. package/Shaders/depthOfField.fragment.js.map +1 -1
  388. package/Shaders/fluidRenderingParticleDepth.vertex.js +16 -1
  389. package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
  390. package/Shaders/fluidRenderingParticleThickness.vertex.js +16 -1
  391. package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
  392. package/Shaders/gaussianSplatting.fragment.js +63 -3
  393. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  394. package/Shaders/gaussianSplatting.vertex.js +80 -0
  395. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  396. package/Shaders/geometry.fragment.js +17 -11
  397. package/Shaders/geometry.fragment.js.map +1 -1
  398. package/Shaders/gpuRenderParticles.fragment.js +43 -1
  399. package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
  400. package/Shaders/gpuRenderParticles.vertex.js +96 -16
  401. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  402. package/Shaders/meshBlending.fragment.d.ts +5 -0
  403. package/Shaders/meshBlending.fragment.js +519 -0
  404. package/Shaders/meshBlending.fragment.js.map +1 -0
  405. package/Shaders/particles.fragment.js +43 -1
  406. package/Shaders/particles.fragment.js.map +1 -1
  407. package/Shaders/particles.vertex.js +84 -3
  408. package/Shaders/particles.vertex.js.map +1 -1
  409. package/Shaders/sprites.fragment.js +52 -2
  410. package/Shaders/sprites.fragment.js.map +1 -1
  411. package/Shaders/sprites.vertex.js +62 -1
  412. package/Shaders/sprites.vertex.js.map +1 -1
  413. package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
  414. package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js +33 -0
  415. package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
  416. package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.d.ts +6 -0
  417. package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js +76 -0
  418. package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js.map +1 -0
  419. package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
  420. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  421. package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.d.ts +5 -0
  422. package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js +18 -0
  423. package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js.map +1 -0
  424. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +1 -0
  425. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +11 -25
  426. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
  427. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +1 -0
  428. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +11 -25
  429. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  430. package/ShadersWGSL/ShadersInclude/pbrDebug.js +5 -1
  431. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
  432. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +6 -1
  433. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
  434. package/ShadersWGSL/default.fragment.js +17 -48
  435. package/ShadersWGSL/default.fragment.js.map +1 -1
  436. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +15 -2
  437. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
  438. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -2
  439. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
  440. package/ShadersWGSL/gaussianSplatting.fragment.js +63 -2
  441. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  442. package/ShadersWGSL/gaussianSplatting.vertex.js +80 -0
  443. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  444. package/ShadersWGSL/geometry.fragment.js +37 -2
  445. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  446. package/ShadersWGSL/gpuRenderParticles.fragment.js +47 -2
  447. package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -1
  448. package/ShadersWGSL/gpuRenderParticles.vertex.js +110 -7
  449. package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -1
  450. package/ShadersWGSL/meshBlending.fragment.d.ts +5 -0
  451. package/ShadersWGSL/meshBlending.fragment.js +576 -0
  452. package/ShadersWGSL/meshBlending.fragment.js.map +1 -0
  453. package/ShadersWGSL/openpbr.fragment.js +2 -1
  454. package/ShadersWGSL/openpbr.fragment.js.map +1 -1
  455. package/ShadersWGSL/particles.fragment.js +45 -1
  456. package/ShadersWGSL/particles.fragment.js.map +1 -1
  457. package/ShadersWGSL/particles.vertex.js +86 -4
  458. package/ShadersWGSL/particles.vertex.js.map +1 -1
  459. package/ShadersWGSL/pbr.fragment.js +2 -1
  460. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  461. package/ShadersWGSL/sprites.fragment.js +56 -2
  462. package/ShadersWGSL/sprites.fragment.js.map +1 -1
  463. package/ShadersWGSL/sprites.vertex.js +62 -1
  464. package/ShadersWGSL/sprites.vertex.js.map +1 -1
  465. package/Sprites/spriteManager.d.ts +13 -0
  466. package/Sprites/spriteManager.js +15 -0
  467. package/Sprites/spriteManager.js.map +1 -1
  468. package/Sprites/spriteRenderer.d.ts +24 -1
  469. package/Sprites/spriteRenderer.js +368 -50
  470. package/Sprites/spriteRenderer.js.map +1 -1
  471. package/Sprites/thinSprite.d.ts +4 -0
  472. package/Sprites/thinSprite.js +4 -0
  473. package/Sprites/thinSprite.js.map +1 -1
  474. package/States/alphaCullingState.d.ts +3 -1
  475. package/States/alphaCullingState.js +18 -3
  476. package/States/alphaCullingState.js.map +1 -1
  477. package/XR/webXRDefaultExperience.d.ts +5 -1
  478. package/XR/webXRDefaultExperience.js.map +1 -1
  479. package/XR/webXREnterExitUI.d.ts +2 -1
  480. package/XR/webXREnterExitUI.js.map +1 -1
  481. package/package.json +1 -1
  482. package/scene.pure.d.ts +23 -0
  483. package/scene.pure.js +35 -0
  484. package/scene.pure.js.map +1 -1
@@ -2,23 +2,30 @@
2
2
  import { ShaderStore } from "../../Engines/shaderStore.js";
3
3
  const name = "openpbrBlockPrePass";
4
4
  const shader = `#if SCENE_MRT_COUNT>0
5
+ #ifdef ALPHATEST
6
+ float writeGeometryInfo=1.0;
7
+ #else
5
8
  float writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;
9
+ #endif
6
10
  #ifdef PREPASS_POSITION
7
- gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);
11
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_POSITION_INDEX,vec4(vPositionW,writeGeometryInfo));
8
12
  #endif
9
13
  #ifdef PREPASS_OBJECT_ID
10
- gl_FragData[PREPASS_OBJECT_ID_INDEX]=encodeObjectId(objectId)*writeGeometryInfo;
14
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_OBJECT_ID_INDEX,encodeObjectId(objectId)*writeGeometryInfo);
15
+ #endif
16
+ #ifdef PREPASS_MESH_BLEND_TAG
17
+ meshBlendTagOutput=writeGeometryInfo>0.0 ? uvec4(uint(meshBlendTag),0u,0u,0u) : uvec4(0u);
11
18
  #endif
12
19
  #ifdef PREPASS_LOCAL_POSITION
13
- gl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);
20
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_LOCAL_POSITION_INDEX,vec4(vPosition,writeGeometryInfo));
14
21
  #endif
15
22
  #if defined(PREPASS_VELOCITY)
16
- vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
23
+ vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_INDEX,vec4(velocity,0.0,writeGeometryInfo));
17
24
  #elif defined(PREPASS_VELOCITY_LINEAR)
18
- vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
25
+ vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_LINEAR_INDEX,vec4(velocity,0.0,writeGeometryInfo));
19
26
  #endif
20
27
  #ifdef PREPASS_ALBEDO
21
- gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(base_color,writeGeometryInfo);
28
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_INDEX,vec4(base_color,writeGeometryInfo));
22
29
  #endif
23
30
  #ifdef PREPASS_ALBEDO_SQRT
24
31
  vec3 sqAlbedo=sqrt(base_color);
@@ -35,38 +42,38 @@ float scatter_mask=min(subsurface_weight+transmission_weight,1.0);
35
42
  #else
36
43
  float scatter_mask=0.0;
37
44
  #endif
38
- gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(irradiance,writeGeometryInfo*scatter_mask);
45
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_INDEX,vec4(irradiance,writeGeometryInfo*scatter_mask));
39
46
  #endif
40
47
  #if defined(PREPASS_COLOR)
41
- gl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb,finalColor.a);
48
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,vec4(finalColor.rgb,finalColor.a));
42
49
  #endif
43
50
  #ifdef PREPASS_DEPTH
44
- gl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);
51
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_DEPTH_INDEX,vec4(vViewPos.z,0.0,0.0,writeGeometryInfo));
45
52
  #endif
46
53
  #ifdef PREPASS_SCREENSPACE_DEPTH
47
- gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);
54
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_SCREENSPACE_DEPTH_INDEX,vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo));
48
55
  #endif
49
56
  #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
50
- gl_FragData[PREPASS_NORMALIZED_VIEW_DEPTH_INDEX]=vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo);
57
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMALIZED_VIEW_DEPTH_INDEX,vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo));
51
58
  #endif
52
59
  #ifdef PREPASS_NORMAL
53
60
  #ifdef PREPASS_NORMAL_WORLDSPACE
54
- gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);
61
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalW,writeGeometryInfo));
55
62
  #else
56
- gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);
63
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo));
57
64
  #endif
58
65
  #endif
59
66
  #ifdef PREPASS_WORLD_NORMAL
60
- gl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo);
67
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_WORLD_NORMAL_INDEX,vec4(normalW*0.5+0.5,writeGeometryInfo));
61
68
  #endif
62
69
  #ifdef PREPASS_ALBEDO_SQRT
63
- gl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo);
70
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_SQRT_INDEX,vec4(sqAlbedo,writeGeometryInfo));
64
71
  #endif
65
72
  #ifdef PREPASS_REFLECTIVITY
66
73
  #ifndef UNLIT
67
- gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;
74
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo);
68
75
  #else
69
- gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;
76
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo);
70
77
  #endif
71
78
  #endif
72
79
  #endif
@@ -1 +1 @@
1
- {"version":3,"file":"openpbrBlockPrePass.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/openpbrBlockPrePass.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"openpbrBlockPrePass\";\nconst shader = `#if SCENE_MRT_COUNT>0\nfloat writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;\n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_OBJECT_ID\ngl_FragData[PREPASS_OBJECT_ID_INDEX]=encodeObjectId(objectId)*writeGeometryInfo;\n#endif\n#ifdef PREPASS_LOCAL_POSITION\ngl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);\n#endif\n#if defined(PREPASS_VELOCITY)\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#elif defined(PREPASS_VELOCITY_LINEAR)\nvec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO\ngl_FragData[PREPASS_ALBEDO_INDEX]=vec4(base_color,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(base_color);\n#endif\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=total_direct_diffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=slab_diffuse_ibl;\n#endif\n#endif\n#ifdef SCATTERING\nfloat scatter_mask=min(subsurface_weight+transmission_weight,1.0);\n#else\nfloat scatter_mask=0.0;\n#endif\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(irradiance,writeGeometryInfo*scatter_mask);\n#endif\n#if defined(PREPASS_COLOR)\ngl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb,finalColor.a);\n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_SCREENSPACE_DEPTH\ngl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_NORMALIZED_VIEW_DEPTH\ngl_FragData[PREPASS_NORMALIZED_VIEW_DEPTH_INDEX]=vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);\n#else\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);\n#endif\n#endif\n#ifdef PREPASS_WORLD_NORMAL\ngl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo); \n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrBlockPrePass = { name, shader };\n"]}
1
+ {"version":3,"file":"openpbrBlockPrePass.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/openpbrBlockPrePass.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Ed,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"openpbrBlockPrePass\";\nconst shader = `#if SCENE_MRT_COUNT>0\n#ifdef ALPHATEST\nfloat writeGeometryInfo=1.0;\n#else\nfloat writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;\n#endif\n#ifdef PREPASS_POSITION\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_POSITION_INDEX,vec4(vPositionW,writeGeometryInfo));\n#endif\n#ifdef PREPASS_OBJECT_ID\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_OBJECT_ID_INDEX,encodeObjectId(objectId)*writeGeometryInfo);\n#endif\n#ifdef PREPASS_MESH_BLEND_TAG\nmeshBlendTagOutput=writeGeometryInfo>0.0 ? uvec4(uint(meshBlendTag),0u,0u,0u) : uvec4(0u);\n#endif\n#ifdef PREPASS_LOCAL_POSITION\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_LOCAL_POSITION_INDEX,vec4(vPosition,writeGeometryInfo));\n#endif\n#if defined(PREPASS_VELOCITY)\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_INDEX,vec4(velocity,0.0,writeGeometryInfo));\n#elif defined(PREPASS_VELOCITY_LINEAR)\nvec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_LINEAR_INDEX,vec4(velocity,0.0,writeGeometryInfo));\n#endif\n#ifdef PREPASS_ALBEDO\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_INDEX,vec4(base_color,writeGeometryInfo));\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(base_color);\n#endif\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=total_direct_diffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=slab_diffuse_ibl;\n#endif\n#endif\n#ifdef SCATTERING\nfloat scatter_mask=min(subsurface_weight+transmission_weight,1.0);\n#else\nfloat scatter_mask=0.0;\n#endif\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_INDEX,vec4(irradiance,writeGeometryInfo*scatter_mask));\n#endif\n#if defined(PREPASS_COLOR)\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,vec4(finalColor.rgb,finalColor.a));\n#endif\n#ifdef PREPASS_DEPTH\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_DEPTH_INDEX,vec4(vViewPos.z,0.0,0.0,writeGeometryInfo)); \n#endif\n#ifdef PREPASS_SCREENSPACE_DEPTH\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_SCREENSPACE_DEPTH_INDEX,vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo));\n#endif\n#ifdef PREPASS_NORMALIZED_VIEW_DEPTH\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMALIZED_VIEW_DEPTH_INDEX,vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo));\n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalW,writeGeometryInfo));\n#else\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo));\n#endif\n#endif\n#ifdef PREPASS_WORLD_NORMAL\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_WORLD_NORMAL_INDEX,vec4(normalW*0.5+0.5,writeGeometryInfo)); \n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_SQRT_INDEX,vec4(sqAlbedo,writeGeometryInfo)); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo);\n#else\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo);\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrBlockPrePass = { name, shader };\n"]}
@@ -2,23 +2,30 @@
2
2
  import { ShaderStore } from "../../Engines/shaderStore.js";
3
3
  const name = "pbrBlockPrePass";
4
4
  const shader = `#if SCENE_MRT_COUNT>0
5
+ #ifdef ALPHATEST
6
+ float writeGeometryInfo=1.0;
7
+ #else
5
8
  float writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;
9
+ #endif
6
10
  #ifdef PREPASS_POSITION
7
- gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);
11
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_POSITION_INDEX,vec4(vPositionW,writeGeometryInfo));
8
12
  #endif
9
13
  #ifdef PREPASS_OBJECT_ID
10
- gl_FragData[PREPASS_OBJECT_ID_INDEX]=encodeObjectId(objectId)*writeGeometryInfo;
14
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_OBJECT_ID_INDEX,encodeObjectId(objectId)*writeGeometryInfo);
15
+ #endif
16
+ #ifdef PREPASS_MESH_BLEND_TAG
17
+ meshBlendTagOutput=writeGeometryInfo>0.0 ? uvec4(uint(meshBlendTag),0u,0u,0u) : uvec4(0u);
11
18
  #endif
12
19
  #ifdef PREPASS_LOCAL_POSITION
13
- gl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);
20
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_LOCAL_POSITION_INDEX,vec4(vPosition,writeGeometryInfo));
14
21
  #endif
15
22
  #if defined(PREPASS_VELOCITY)
16
- vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
23
+ vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_INDEX,vec4(velocity,0.0,writeGeometryInfo));
17
24
  #elif defined(PREPASS_VELOCITY_LINEAR)
18
- vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
25
+ vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_LINEAR_INDEX,vec4(velocity,0.0,writeGeometryInfo));
19
26
  #endif
20
27
  #ifdef PREPASS_ALBEDO
21
- gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(surfaceAlbedo,writeGeometryInfo);
28
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_INDEX,vec4(surfaceAlbedo,writeGeometryInfo));
22
29
  #endif
23
30
  #ifdef PREPASS_ALBEDO_SQRT
24
31
  vec3 sqAlbedo=sqrt(surfaceAlbedo);
@@ -32,16 +39,16 @@ irradiance+=finalIrradiance;
32
39
  #endif
33
40
  #ifdef SS_SCATTERING
34
41
  #ifdef PREPASS_COLOR
35
- gl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb-irradiance,finalColor.a);
42
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,vec4(finalColor.rgb-irradiance,finalColor.a));
36
43
  #endif
37
44
  irradiance/=sqAlbedo;
38
45
  #else
39
46
  #ifdef PREPASS_COLOR
40
- gl_FragData[PREPASS_COLOR_INDEX]=finalColor;
47
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,finalColor);
41
48
  #endif
42
49
  float scatteringDiffusionProfile=255.;
43
50
  #endif
44
- gl_FragData[PREPASS_IRRADIANCE_LEGACY_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.);
51
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_LEGACY_INDEX,vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.));
45
52
  #else
46
53
  #ifdef PREPASS_IRRADIANCE
47
54
  vec3 irradiance=finalDiffuse;
@@ -50,39 +57,39 @@ vec3 irradiance=finalDiffuse;
50
57
  irradiance+=finalIrradiance;
51
58
  #endif
52
59
  #endif
53
- gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(irradiance,writeGeometryInfo);
60
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_INDEX,vec4(irradiance,writeGeometryInfo));
54
61
  #endif
55
62
  #if defined(PREPASS_COLOR)
56
- gl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb,finalColor.a);
63
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,vec4(finalColor.rgb,finalColor.a));
57
64
  #endif
58
65
  #endif
59
66
  #ifdef PREPASS_DEPTH
60
- gl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);
67
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_DEPTH_INDEX,vec4(vViewPos.z,0.0,0.0,writeGeometryInfo));
61
68
  #endif
62
69
  #ifdef PREPASS_SCREENSPACE_DEPTH
63
- gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);
70
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_SCREENSPACE_DEPTH_INDEX,vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo));
64
71
  #endif
65
72
  #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
66
- gl_FragData[PREPASS_NORMALIZED_VIEW_DEPTH_INDEX]=vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo);
73
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMALIZED_VIEW_DEPTH_INDEX,vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo));
67
74
  #endif
68
75
  #ifdef PREPASS_NORMAL
69
76
  #ifdef PREPASS_NORMAL_WORLDSPACE
70
- gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);
77
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalW,writeGeometryInfo));
71
78
  #else
72
- gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);
79
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo));
73
80
  #endif
74
81
  #endif
75
82
  #ifdef PREPASS_WORLD_NORMAL
76
- gl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo);
83
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_WORLD_NORMAL_INDEX,vec4(normalW*0.5+0.5,writeGeometryInfo));
77
84
  #endif
78
85
  #ifdef PREPASS_ALBEDO_SQRT
79
- gl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo);
86
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_SQRT_INDEX,vec4(sqAlbedo,writeGeometryInfo));
80
87
  #endif
81
88
  #ifdef PREPASS_REFLECTIVITY
82
89
  #ifndef UNLIT
83
- gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;
90
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo);
84
91
  #else
85
- gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;
92
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo);
86
93
  #endif
87
94
  #endif
88
95
  #endif
@@ -1 +1 @@
1
- {"version":3,"file":"pbrBlockPrePass.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrBlockPrePass.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFd,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,eAAe,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"pbrBlockPrePass\";\nconst shader = `#if SCENE_MRT_COUNT>0\nfloat writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;\n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_OBJECT_ID\ngl_FragData[PREPASS_OBJECT_ID_INDEX]=encodeObjectId(objectId)*writeGeometryInfo;\n#endif\n#ifdef PREPASS_LOCAL_POSITION\ngl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);\n#endif\n#if defined(PREPASS_VELOCITY)\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#elif defined(PREPASS_VELOCITY_LINEAR)\nvec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO\ngl_FragData[PREPASS_ALBEDO_INDEX]=vec4(surfaceAlbedo,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(surfaceAlbedo); \n#endif\n#ifdef PREPASS_IRRADIANCE_LEGACY\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\n#ifdef SS_SCATTERING\n#ifdef PREPASS_COLOR\ngl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb-irradiance,finalColor.a); \n#endif\nirradiance/=sqAlbedo;\n#else\n#ifdef PREPASS_COLOR\ngl_FragData[PREPASS_COLOR_INDEX]=finalColor; \n#endif\nfloat scatteringDiffusionProfile=255.;\n#endif\ngl_FragData[PREPASS_IRRADIANCE_LEGACY_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.); \n#else\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(irradiance,writeGeometryInfo);\n#endif\n#if defined(PREPASS_COLOR)\ngl_FragData[PREPASS_COLOR_INDEX]=vec4(finalColor.rgb,finalColor.a);\n#endif\n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_SCREENSPACE_DEPTH\ngl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_NORMALIZED_VIEW_DEPTH\ngl_FragData[PREPASS_NORMALIZED_VIEW_DEPTH_INDEX]=vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);\n#else\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);\n#endif\n#endif\n#ifdef PREPASS_WORLD_NORMAL\ngl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo); \n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrBlockPrePass = { name, shader };\n"]}
1
+ {"version":3,"file":"pbrBlockPrePass.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrBlockPrePass.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Fd,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,eAAe,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"pbrBlockPrePass\";\nconst shader = `#if SCENE_MRT_COUNT>0\n#ifdef ALPHATEST\nfloat writeGeometryInfo=1.0;\n#else\nfloat writeGeometryInfo=finalColor.a>ALPHATESTVALUE ? 1.0 : 0.0;\n#endif\n#ifdef PREPASS_POSITION\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_POSITION_INDEX,vec4(vPositionW,writeGeometryInfo));\n#endif\n#ifdef PREPASS_OBJECT_ID\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_OBJECT_ID_INDEX,encodeObjectId(objectId)*writeGeometryInfo);\n#endif\n#ifdef PREPASS_MESH_BLEND_TAG\nmeshBlendTagOutput=writeGeometryInfo>0.0 ? uvec4(uint(meshBlendTag),0u,0u,0u) : uvec4(0u);\n#endif\n#ifdef PREPASS_LOCAL_POSITION\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_LOCAL_POSITION_INDEX,vec4(vPosition,writeGeometryInfo));\n#endif\n#if defined(PREPASS_VELOCITY)\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_INDEX,vec4(velocity,0.0,writeGeometryInfo));\n#elif defined(PREPASS_VELOCITY_LINEAR)\nvec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_LINEAR_INDEX,vec4(velocity,0.0,writeGeometryInfo));\n#endif\n#ifdef PREPASS_ALBEDO\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_INDEX,vec4(surfaceAlbedo,writeGeometryInfo));\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(surfaceAlbedo); \n#endif\n#ifdef PREPASS_IRRADIANCE_LEGACY\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\n#ifdef SS_SCATTERING\n#ifdef PREPASS_COLOR\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,vec4(finalColor.rgb-irradiance,finalColor.a)); \n#endif\nirradiance/=sqAlbedo;\n#else\n#ifdef PREPASS_COLOR\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,finalColor); \n#endif\nfloat scatteringDiffusionProfile=255.;\n#endif\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_LEGACY_INDEX,vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.)); \n#else\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_INDEX,vec4(irradiance,writeGeometryInfo));\n#endif\n#if defined(PREPASS_COLOR)\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,vec4(finalColor.rgb,finalColor.a));\n#endif\n#endif\n#ifdef PREPASS_DEPTH\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_DEPTH_INDEX,vec4(vViewPos.z,0.0,0.0,writeGeometryInfo)); \n#endif\n#ifdef PREPASS_SCREENSPACE_DEPTH\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_SCREENSPACE_DEPTH_INDEX,vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo));\n#endif\n#ifdef PREPASS_NORMALIZED_VIEW_DEPTH\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMALIZED_VIEW_DEPTH_INDEX,vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo));\n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalW,writeGeometryInfo));\n#else\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo));\n#endif\n#endif\n#ifdef PREPASS_WORLD_NORMAL\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_WORLD_NORMAL_INDEX,vec4(normalW*0.5+0.5,writeGeometryInfo)); \n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_SQRT_INDEX,vec4(sqAlbedo,writeGeometryInfo)); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo);\n#else\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo);\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrBlockPrePass = { name, shader };\n"]}
@@ -177,8 +177,12 @@ gl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);
177
177
  #endif
178
178
  gl_FragColor.a=1.0;
179
179
  #ifdef PREPASS
180
- gl_FragData[0]=toLinearSpace(gl_FragColor);
181
- gl_FragData[1]=vec4(0.,0.,0.,0.);
180
+ #if !defined(PREPASS_OBJECT_ID) || PREPASS_OBJECT_ID_INDEX != 0
181
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(0,toLinearSpace(gl_FragColor));
182
+ #endif
183
+ #if !defined(PREPASS_OBJECT_ID) || PREPASS_OBJECT_ID_INDEX != 1
184
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(1,vec4(0.,0.,0.,0.));
185
+ #endif
182
186
  #endif
183
187
  #ifdef DEBUGMODE_FORCERETURN
184
188
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"pbrDebug.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrDebug.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwLd,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,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"pbrDebug\";\nconst shader = `#if DEBUGMODE>0\nif (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {\n#if DEBUGMODE==1\ngl_FragColor.rgb=vPositionW.rgb;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==2 && defined(NORMAL)\ngl_FragColor.rgb=vNormalW.rgb;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==3 && defined(BUMP) || DEBUGMODE==3 && defined(PARALLAX) || DEBUGMODE==3 && defined(ANISOTROPIC)\ngl_FragColor.rgb=TBN[0];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==4 && defined(BUMP) || DEBUGMODE==4 && defined(PARALLAX) || DEBUGMODE==4 && defined(ANISOTROPIC)\ngl_FragColor.rgb=TBN[1];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==5\ngl_FragColor.rgb=normalW;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==6 && defined(MAINUV1)\ngl_FragColor.rgb=vec3(vMainUV1,0.0);\n#elif DEBUGMODE==7 && defined(MAINUV2)\ngl_FragColor.rgb=vec3(vMainUV2,0.0);\n#elif DEBUGMODE==8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==10 && defined(CLEARCOAT)\ngl_FragColor.rgb=clearcoatOut.clearCoatNormalW;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==11 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicNormal;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==12 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicTangent;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==13 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicBitangent;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==20 && defined(ALBEDO)\ngl_FragColor.rgb=albedoTexture.rgb;\n#ifndef GAMMAALBEDO\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==21 && defined(AMBIENT)\ngl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;\n#elif DEBUGMODE==22 && defined(OPACITY)\ngl_FragColor.rgb=opacityMap.rgb;\n#elif DEBUGMODE==23 && defined(EMISSIVE)\ngl_FragColor.rgb=emissiveColorTex.rgb;\n#ifndef GAMMAEMISSIVE\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==24 && defined(LIGHTMAP)\ngl_FragColor.rgb=lightmapColor.rgb;\n#ifndef GAMMALIGHTMAP\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;\n#elif DEBUGMODE==26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);\n#elif DEBUGMODE==28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\ngl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;\n#elif DEBUGMODE==29 && defined(SHEEN) && defined(SHEEN_TEXTURE)\ngl_FragColor.rgb=sheenOut.sheenMapData.rgb;\n#elif DEBUGMODE==30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE)\ngl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;\n#elif DEBUGMODE==31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE)\ngl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;\n#elif DEBUGMODE==32 && defined(BUMP)\ngl_FragColor.rgb=texture2D(bumpSampler,vBumpUV).rgb;\n#elif DEBUGMODE==40 && defined(SS_REFRACTION)\ngl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==41 && defined(REFLECTION)\ngl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;\n#ifndef GAMMAREFLECTION\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==42 && defined(CLEARCOAT) && defined(REFLECTION)\ngl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==50\ngl_FragColor.rgb=diffuseBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==51 && defined(SPECULARTERM)\ngl_FragColor.rgb=specularBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==52 && defined(CLEARCOAT)\ngl_FragColor.rgb=clearCoatBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==53 && defined(SHEEN)\ngl_FragColor.rgb=sheenBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==54 && defined(REFLECTION)\ngl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;\n#ifndef GAMMAREFLECTION\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==60\ngl_FragColor.rgb=surfaceAlbedo.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==61\ngl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==62 && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=vec3(reflectivityOut.metallic);\n#elif DEBUGMODE==71 && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.metallicF0;\n#elif DEBUGMODE==63\ngl_FragColor.rgb=vec3(roughness);\n#elif DEBUGMODE==64\ngl_FragColor.rgb=vec3(alphaG);\n#elif DEBUGMODE==65\ngl_FragColor.rgb=vec3(NdotV);\n#elif DEBUGMODE==66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\ngl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==67 && defined(CLEARCOAT)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);\n#elif DEBUGMODE==68 && defined(CLEARCOAT)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);\n#elif DEBUGMODE==69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY)\ngl_FragColor.rgb=subSurfaceOut.transmittance;\n#elif DEBUGMODE==70 && defined(SUBSURFACE) && defined(SS_REFRACTION)\ngl_FragColor.rgb=subSurfaceOut.refractionTransmittance;\n#elif DEBUGMODE==72\ngl_FragColor.rgb=vec3(microSurface);\n#elif DEBUGMODE==73\ngl_FragColor.rgb=vAlbedoColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==74 && !defined(METALLICWORKFLOW)\ngl_FragColor.rgb=vReflectivityColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==75\ngl_FragColor.rgb=vEmissiveColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==80 && defined(RADIANCEOCCLUSION)\ngl_FragColor.rgb=vec3(seo);\n#elif DEBUGMODE==81 && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\ngl_FragColor.rgb=vec3(eho);\n#elif DEBUGMODE==82 && defined(MS_BRDF_ENERGY_CONSERVATION)\ngl_FragColor.rgb=vec3(energyConservationFactor);\n#elif DEBUGMODE==83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\ngl_FragColor.rgb=baseSpecularEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\ngl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==85 && defined(SHEEN) && defined(REFLECTION)\ngl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==86 && defined(ALPHABLEND)\ngl_FragColor.rgb=vec3(luminanceOverAlpha);\n#elif DEBUGMODE==87\ngl_FragColor.rgb=vec3(alpha);\n#elif DEBUGMODE==88 && defined(ALBEDO)\ngl_FragColor.rgb=vec3(albedoTexture.a);\n#elif DEBUGMODE==89\ngl_FragColor.rgb=aoOut.ambientOcclusionColor.rgb;\n#else\nfloat stripeWidth=30.;float stripePos=floor(gl_FragCoord.x/stripeWidth);float whichColor=mod(stripePos,2.);vec3 color1=vec3(.6,.2,.2);vec3 color2=vec3(.3,.1,.1);gl_FragColor.rgb=mix(color1,color2,whichColor);\n#endif\ngl_FragColor.rgb*=vDebugMode.y;\n#ifdef DEBUGMODE_NORMALIZE\ngl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;\n#endif\n#ifdef DEBUGMODE_GAMMA\ngl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);\n#endif\ngl_FragColor.a=1.0;\n#ifdef PREPASS\ngl_FragData[0]=toLinearSpace(gl_FragColor); \ngl_FragData[1]=vec4(0.,0.,0.,0.); \n#endif\n#ifdef DEBUGMODE_FORCERETURN\nreturn;\n#endif\n}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrDebug = { name, shader };\n"]}
1
+ {"version":3,"file":"pbrDebug.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrDebug.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Ld,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,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"pbrDebug\";\nconst shader = `#if DEBUGMODE>0\nif (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {\n#if DEBUGMODE==1\ngl_FragColor.rgb=vPositionW.rgb;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==2 && defined(NORMAL)\ngl_FragColor.rgb=vNormalW.rgb;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==3 && defined(BUMP) || DEBUGMODE==3 && defined(PARALLAX) || DEBUGMODE==3 && defined(ANISOTROPIC)\ngl_FragColor.rgb=TBN[0];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==4 && defined(BUMP) || DEBUGMODE==4 && defined(PARALLAX) || DEBUGMODE==4 && defined(ANISOTROPIC)\ngl_FragColor.rgb=TBN[1];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==5\ngl_FragColor.rgb=normalW;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==6 && defined(MAINUV1)\ngl_FragColor.rgb=vec3(vMainUV1,0.0);\n#elif DEBUGMODE==7 && defined(MAINUV2)\ngl_FragColor.rgb=vec3(vMainUV2,0.0);\n#elif DEBUGMODE==8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==10 && defined(CLEARCOAT)\ngl_FragColor.rgb=clearcoatOut.clearCoatNormalW;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==11 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicNormal;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==12 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicTangent;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==13 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicBitangent;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==20 && defined(ALBEDO)\ngl_FragColor.rgb=albedoTexture.rgb;\n#ifndef GAMMAALBEDO\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==21 && defined(AMBIENT)\ngl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;\n#elif DEBUGMODE==22 && defined(OPACITY)\ngl_FragColor.rgb=opacityMap.rgb;\n#elif DEBUGMODE==23 && defined(EMISSIVE)\ngl_FragColor.rgb=emissiveColorTex.rgb;\n#ifndef GAMMAEMISSIVE\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==24 && defined(LIGHTMAP)\ngl_FragColor.rgb=lightmapColor.rgb;\n#ifndef GAMMALIGHTMAP\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;\n#elif DEBUGMODE==26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);\n#elif DEBUGMODE==28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\ngl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;\n#elif DEBUGMODE==29 && defined(SHEEN) && defined(SHEEN_TEXTURE)\ngl_FragColor.rgb=sheenOut.sheenMapData.rgb;\n#elif DEBUGMODE==30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE)\ngl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;\n#elif DEBUGMODE==31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE)\ngl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;\n#elif DEBUGMODE==32 && defined(BUMP)\ngl_FragColor.rgb=texture2D(bumpSampler,vBumpUV).rgb;\n#elif DEBUGMODE==40 && defined(SS_REFRACTION)\ngl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==41 && defined(REFLECTION)\ngl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;\n#ifndef GAMMAREFLECTION\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==42 && defined(CLEARCOAT) && defined(REFLECTION)\ngl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==50\ngl_FragColor.rgb=diffuseBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==51 && defined(SPECULARTERM)\ngl_FragColor.rgb=specularBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==52 && defined(CLEARCOAT)\ngl_FragColor.rgb=clearCoatBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==53 && defined(SHEEN)\ngl_FragColor.rgb=sheenBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==54 && defined(REFLECTION)\ngl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;\n#ifndef GAMMAREFLECTION\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==60\ngl_FragColor.rgb=surfaceAlbedo.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==61\ngl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==62 && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=vec3(reflectivityOut.metallic);\n#elif DEBUGMODE==71 && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.metallicF0;\n#elif DEBUGMODE==63\ngl_FragColor.rgb=vec3(roughness);\n#elif DEBUGMODE==64\ngl_FragColor.rgb=vec3(alphaG);\n#elif DEBUGMODE==65\ngl_FragColor.rgb=vec3(NdotV);\n#elif DEBUGMODE==66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\ngl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==67 && defined(CLEARCOAT)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);\n#elif DEBUGMODE==68 && defined(CLEARCOAT)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);\n#elif DEBUGMODE==69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY)\ngl_FragColor.rgb=subSurfaceOut.transmittance;\n#elif DEBUGMODE==70 && defined(SUBSURFACE) && defined(SS_REFRACTION)\ngl_FragColor.rgb=subSurfaceOut.refractionTransmittance;\n#elif DEBUGMODE==72\ngl_FragColor.rgb=vec3(microSurface);\n#elif DEBUGMODE==73\ngl_FragColor.rgb=vAlbedoColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==74 && !defined(METALLICWORKFLOW)\ngl_FragColor.rgb=vReflectivityColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==75\ngl_FragColor.rgb=vEmissiveColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==80 && defined(RADIANCEOCCLUSION)\ngl_FragColor.rgb=vec3(seo);\n#elif DEBUGMODE==81 && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\ngl_FragColor.rgb=vec3(eho);\n#elif DEBUGMODE==82 && defined(MS_BRDF_ENERGY_CONSERVATION)\ngl_FragColor.rgb=vec3(energyConservationFactor);\n#elif DEBUGMODE==83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\ngl_FragColor.rgb=baseSpecularEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\ngl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==85 && defined(SHEEN) && defined(REFLECTION)\ngl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==86 && defined(ALPHABLEND)\ngl_FragColor.rgb=vec3(luminanceOverAlpha);\n#elif DEBUGMODE==87\ngl_FragColor.rgb=vec3(alpha);\n#elif DEBUGMODE==88 && defined(ALBEDO)\ngl_FragColor.rgb=vec3(albedoTexture.a);\n#elif DEBUGMODE==89\ngl_FragColor.rgb=aoOut.ambientOcclusionColor.rgb;\n#else\nfloat stripeWidth=30.;float stripePos=floor(gl_FragCoord.x/stripeWidth);float whichColor=mod(stripePos,2.);vec3 color1=vec3(.6,.2,.2);vec3 color2=vec3(.3,.1,.1);gl_FragColor.rgb=mix(color1,color2,whichColor);\n#endif\ngl_FragColor.rgb*=vDebugMode.y;\n#ifdef DEBUGMODE_NORMALIZE\ngl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;\n#endif\n#ifdef DEBUGMODE_GAMMA\ngl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);\n#endif\ngl_FragColor.a=1.0;\n#ifdef PREPASS\n#if !defined(PREPASS_OBJECT_ID) || PREPASS_OBJECT_ID_INDEX != 0\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(0,toLinearSpace(gl_FragColor)); \n#endif\n#if !defined(PREPASS_OBJECT_ID) || PREPASS_OBJECT_ID_INDEX != 1\nWRITE_GEOMETRY_FRAGMENT_OUTPUT(1,vec4(0.,0.,0.,0.)); \n#endif\n#endif\n#ifdef DEBUGMODE_FORCERETURN\nreturn;\n#endif\n}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const pbrDebug = { name, shader };\n"]}
@@ -4,7 +4,96 @@ import "./objectIdFunctions.js";
4
4
  const name = "prePassDeclaration";
5
5
  const shader = `#ifdef PREPASS
6
6
  #extension GL_EXT_draw_buffers : require
7
- layout(location=0) out highp vec4 glFragData[{X}];highp vec4 gl_FragColor;
7
+ #ifdef PREPASS_MESH_BLEND_TAG
8
+ #if {X}>0
9
+ #if PREPASS_MESH_BLEND_TAG_INDEX==0
10
+ layout(location=0) out highp uvec4 meshBlendTagOutput;
11
+ #else
12
+ layout(location=0) out highp vec4 glFragData0;
13
+ #endif
14
+ #endif
15
+ #if {X}>1
16
+ #if PREPASS_MESH_BLEND_TAG_INDEX==1
17
+ layout(location=1) out highp uvec4 meshBlendTagOutput;
18
+ #else
19
+ layout(location=1) out highp vec4 glFragData1;
20
+ #endif
21
+ #endif
22
+ #if {X}>2
23
+ #if PREPASS_MESH_BLEND_TAG_INDEX==2
24
+ layout(location=2) out highp uvec4 meshBlendTagOutput;
25
+ #else
26
+ layout(location=2) out highp vec4 glFragData2;
27
+ #endif
28
+ #endif
29
+ #if {X}>3
30
+ #if PREPASS_MESH_BLEND_TAG_INDEX==3
31
+ layout(location=3) out highp uvec4 meshBlendTagOutput;
32
+ #else
33
+ layout(location=3) out highp vec4 glFragData3;
34
+ #endif
35
+ #endif
36
+ #if {X}>4
37
+ #if PREPASS_MESH_BLEND_TAG_INDEX==4
38
+ layout(location=4) out highp uvec4 meshBlendTagOutput;
39
+ #else
40
+ layout(location=4) out highp vec4 glFragData4;
41
+ #endif
42
+ #endif
43
+ #if {X}>5
44
+ #if PREPASS_MESH_BLEND_TAG_INDEX==5
45
+ layout(location=5) out highp uvec4 meshBlendTagOutput;
46
+ #else
47
+ layout(location=5) out highp vec4 glFragData5;
48
+ #endif
49
+ #endif
50
+ #if {X}>6
51
+ #if PREPASS_MESH_BLEND_TAG_INDEX==6
52
+ layout(location=6) out highp uvec4 meshBlendTagOutput;
53
+ #else
54
+ layout(location=6) out highp vec4 glFragData6;
55
+ #endif
56
+ #endif
57
+ #if {X}>7
58
+ #if PREPASS_MESH_BLEND_TAG_INDEX==7
59
+ layout(location=7) out highp uvec4 meshBlendTagOutput;
60
+ #else
61
+ layout(location=7) out highp vec4 glFragData7;
62
+ #endif
63
+ #endif
64
+ void writeGeometryFragmentOutput(highp int index,highp vec4 value) {
65
+ #if {X}>0 && PREPASS_MESH_BLEND_TAG_INDEX != 0
66
+ if (index==0) { glFragData0=value; }
67
+ #endif
68
+ #if {X}>1 && PREPASS_MESH_BLEND_TAG_INDEX != 1
69
+ if (index==1) { glFragData1=value; }
70
+ #endif
71
+ #if {X}>2 && PREPASS_MESH_BLEND_TAG_INDEX != 2
72
+ if (index==2) { glFragData2=value; }
73
+ #endif
74
+ #if {X}>3 && PREPASS_MESH_BLEND_TAG_INDEX != 3
75
+ if (index==3) { glFragData3=value; }
76
+ #endif
77
+ #if {X}>4 && PREPASS_MESH_BLEND_TAG_INDEX != 4
78
+ if (index==4) { glFragData4=value; }
79
+ #endif
80
+ #if {X}>5 && PREPASS_MESH_BLEND_TAG_INDEX != 5
81
+ if (index==5) { glFragData5=value; }
82
+ #endif
83
+ #if {X}>6 && PREPASS_MESH_BLEND_TAG_INDEX != 6
84
+ if (index==6) { glFragData6=value; }
85
+ #endif
86
+ #if {X}>7 && PREPASS_MESH_BLEND_TAG_INDEX != 7
87
+ if (index==7) { glFragData7=value; }
88
+ #endif
89
+ }
90
+ #define WRITE_GEOMETRY_FRAGMENT_OUTPUT(INDEX,VALUE) writeGeometryFragmentOutput(INDEX,VALUE)
91
+ #else
92
+ layout(location=0) out highp vec4 glFragData[{X}];
93
+ #define WRITE_GEOMETRY_FRAGMENT_OUTPUT(INDEX,VALUE) gl_FragData[INDEX]=VALUE
94
+ #endif
95
+ highp vec4 gl_FragColor;
96
+ #ifndef PREPASS_CUSTOM_VARYINGS
8
97
  #ifdef PREPASS_LOCAL_POSITION
9
98
  varying highp vec3 vPosition;
10
99
  #endif
@@ -14,13 +103,17 @@ varying highp vec3 vViewPos;
14
103
  #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
15
104
  varying highp float vNormViewDepth;
16
105
  #endif
17
- #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
106
+ #if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(PREPASS_VELOCITY_ZERO)
18
107
  varying highp vec4 vCurrentPosition;varying highp vec4 vPreviousPosition;
19
108
  #endif
109
+ #endif
20
110
  #ifdef PREPASS_OBJECT_ID
21
111
  uniform highp float objectId;
22
112
  #include<objectIdFunctions>
23
113
  #endif
114
+ #ifdef PREPASS_MESH_BLEND_TAG
115
+ uniform highp int meshBlendTag;
116
+ #endif
24
117
  #endif
25
118
  `;
26
119
  // Sideeffect
@@ -1 +1 @@
1
- {"version":3,"file":"prePassDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/prePassDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,qBAAqB,CAAC;AAC7B,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;CAoBd,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\";\nimport \"./objectIdFunctions\";\nconst name = \"prePassDeclaration\";\nconst shader = `#ifdef PREPASS\n#extension GL_EXT_draw_buffers : require\nlayout(location=0) out highp vec4 glFragData[{X}];highp vec4 gl_FragColor;\n#ifdef PREPASS_LOCAL_POSITION\nvarying highp vec3 vPosition;\n#endif\n#ifdef PREPASS_DEPTH\nvarying highp vec3 vViewPos;\n#endif\n#ifdef PREPASS_NORMALIZED_VIEW_DEPTH\nvarying highp float vNormViewDepth;\n#endif\n#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nvarying highp vec4 vCurrentPosition;varying highp vec4 vPreviousPosition;\n#endif\n#ifdef PREPASS_OBJECT_ID\nuniform highp float objectId;\n#include<objectIdFunctions>\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const prePassDeclaration = { name, shader };\n"]}
1
+ {"version":3,"file":"prePassDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/prePassDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,qBAAqB,CAAC;AAC7B,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiHd,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\";\nimport \"./objectIdFunctions\";\nconst name = \"prePassDeclaration\";\nconst shader = `#ifdef PREPASS\n#extension GL_EXT_draw_buffers : require\n#ifdef PREPASS_MESH_BLEND_TAG\n#if {X}>0\n#if PREPASS_MESH_BLEND_TAG_INDEX==0\nlayout(location=0) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=0) out highp vec4 glFragData0;\n#endif\n#endif\n#if {X}>1\n#if PREPASS_MESH_BLEND_TAG_INDEX==1\nlayout(location=1) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=1) out highp vec4 glFragData1;\n#endif\n#endif\n#if {X}>2\n#if PREPASS_MESH_BLEND_TAG_INDEX==2\nlayout(location=2) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=2) out highp vec4 glFragData2;\n#endif\n#endif\n#if {X}>3\n#if PREPASS_MESH_BLEND_TAG_INDEX==3\nlayout(location=3) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=3) out highp vec4 glFragData3;\n#endif\n#endif\n#if {X}>4\n#if PREPASS_MESH_BLEND_TAG_INDEX==4\nlayout(location=4) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=4) out highp vec4 glFragData4;\n#endif\n#endif\n#if {X}>5\n#if PREPASS_MESH_BLEND_TAG_INDEX==5\nlayout(location=5) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=5) out highp vec4 glFragData5;\n#endif\n#endif\n#if {X}>6\n#if PREPASS_MESH_BLEND_TAG_INDEX==6\nlayout(location=6) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=6) out highp vec4 glFragData6;\n#endif\n#endif\n#if {X}>7\n#if PREPASS_MESH_BLEND_TAG_INDEX==7\nlayout(location=7) out highp uvec4 meshBlendTagOutput;\n#else\nlayout(location=7) out highp vec4 glFragData7;\n#endif\n#endif\nvoid writeGeometryFragmentOutput(highp int index,highp vec4 value) {\n#if {X}>0 && PREPASS_MESH_BLEND_TAG_INDEX != 0\nif (index==0) { glFragData0=value; }\n#endif\n#if {X}>1 && PREPASS_MESH_BLEND_TAG_INDEX != 1\nif (index==1) { glFragData1=value; }\n#endif\n#if {X}>2 && PREPASS_MESH_BLEND_TAG_INDEX != 2\nif (index==2) { glFragData2=value; }\n#endif\n#if {X}>3 && PREPASS_MESH_BLEND_TAG_INDEX != 3\nif (index==3) { glFragData3=value; }\n#endif\n#if {X}>4 && PREPASS_MESH_BLEND_TAG_INDEX != 4\nif (index==4) { glFragData4=value; }\n#endif\n#if {X}>5 && PREPASS_MESH_BLEND_TAG_INDEX != 5\nif (index==5) { glFragData5=value; }\n#endif\n#if {X}>6 && PREPASS_MESH_BLEND_TAG_INDEX != 6\nif (index==6) { glFragData6=value; }\n#endif\n#if {X}>7 && PREPASS_MESH_BLEND_TAG_INDEX != 7\nif (index==7) { glFragData7=value; }\n#endif\n}\n#define WRITE_GEOMETRY_FRAGMENT_OUTPUT(INDEX,VALUE) writeGeometryFragmentOutput(INDEX,VALUE)\n#else\nlayout(location=0) out highp vec4 glFragData[{X}];\n#define WRITE_GEOMETRY_FRAGMENT_OUTPUT(INDEX,VALUE) gl_FragData[INDEX]=VALUE\n#endif\nhighp vec4 gl_FragColor;\n#ifndef PREPASS_CUSTOM_VARYINGS\n#ifdef PREPASS_LOCAL_POSITION\nvarying highp vec3 vPosition;\n#endif\n#ifdef PREPASS_DEPTH\nvarying highp vec3 vViewPos;\n#endif\n#ifdef PREPASS_NORMALIZED_VIEW_DEPTH\nvarying highp float vNormViewDepth;\n#endif\n#if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(PREPASS_VELOCITY_ZERO)\nvarying highp vec4 vCurrentPosition;varying highp vec4 vPreviousPosition;\n#endif\n#endif\n#ifdef PREPASS_OBJECT_ID\nuniform highp float objectId;\n#include<objectIdFunctions>\n#endif\n#ifdef PREPASS_MESH_BLEND_TAG\nuniform highp int meshBlendTag;\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const prePassDeclaration = { name, shader };\n"]}
@@ -30,6 +30,7 @@ import { fogFragmentDeclaration } from "./ShadersInclude/fogFragmentDeclaration.
30
30
  import { clipPlaneFragment } from "./ShadersInclude/clipPlaneFragment.js";
31
31
  import { bumpFragment } from "./ShadersInclude/bumpFragment.js";
32
32
  import { decalFragment } from "./ShadersInclude/decalFragment.js";
33
+ import { defaultFragmentAlpha } from "./ShadersInclude/defaultFragmentAlpha.js";
33
34
  import { depthPrePass } from "./ShadersInclude/depthPrePass.js";
34
35
  import { lightFragment } from "./ShadersInclude/lightFragment.js";
35
36
  import { logDepthFragment } from "./ShadersInclude/logDepthFragment.js";
@@ -132,6 +133,9 @@ baseColor.rgb*=vDiffuseInfos.y;
132
133
  vec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);
133
134
  #include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)
134
135
  #endif
136
+ #ifdef DEPTHPREPASS
137
+ #include<defaultFragmentAlpha>
138
+ #endif
135
139
  #include<depthPrePass>
136
140
  #if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
137
141
  baseColor.rgb*=vColor.rgb;
@@ -240,28 +244,8 @@ reflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflect
240
244
  #ifdef REFRACTIONFRESNEL
241
245
  float refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);refractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;
242
246
  #endif
243
- #ifdef OPACITY
244
- vec4 opacityMap=TEXRD(opacitySampler,vOpacityUV+uvOffset);
245
- #ifdef OPACITYRGB
246
- opacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;
247
- #else
248
- alpha*=opacityMap.a*vOpacityInfos.y;
249
- #endif
250
- #endif
251
- #if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
252
- alpha*=vColor.a;
253
- #endif
254
- #ifdef OPACITYFRESNEL
255
- float opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);alpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;
256
- #endif
257
- #ifdef ALPHATEST
258
- #ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS
259
- if (alpha<alphaCutOff)
260
- discard;
261
- #endif
262
- #ifndef ALPHABLEND
263
- alpha=1.0;
264
- #endif
247
+ #ifndef DEPTHPREPASS
248
+ #include<defaultFragmentAlpha>
265
249
  #endif
266
250
  vec3 emissiveColor=vEmissiveColor;
267
251
  #ifdef EMISSIVE
@@ -325,57 +309,64 @@ color.rgb*=color.a;
325
309
  #define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR
326
310
  #ifdef PREPASS
327
311
  #if SCENE_MRT_COUNT>0
312
+ #ifdef ALPHATEST
313
+ float writeGeometryInfo=1.0;
314
+ #else
328
315
  float writeGeometryInfo=color.a>0.4 ? 1.0 : 0.0;
316
+ #endif
329
317
  #ifdef PREPASS_COLOR
330
- gl_FragData[PREPASS_COLOR_INDEX]=color;
318
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_COLOR_INDEX,color);
331
319
  #endif
332
320
  #ifdef PREPASS_POSITION
333
- gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);
321
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_POSITION_INDEX,vec4(vPositionW,writeGeometryInfo));
334
322
  #endif
335
323
  #ifdef PREPASS_OBJECT_ID
336
- gl_FragData[PREPASS_OBJECT_ID_INDEX]=encodeObjectId(objectId)*writeGeometryInfo;
324
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_OBJECT_ID_INDEX,encodeObjectId(objectId)*writeGeometryInfo);
325
+ #endif
326
+ #ifdef PREPASS_MESH_BLEND_TAG
327
+ meshBlendTagOutput=writeGeometryInfo>0.0 ? uvec4(uint(meshBlendTag),0u,0u,0u) : uvec4(0u);
337
328
  #endif
338
329
  #ifdef PREPASS_LOCAL_POSITION
339
- gl_FragData[PREPASS_LOCAL_POSITION_INDEX]=vec4(vPosition,writeGeometryInfo);
330
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_LOCAL_POSITION_INDEX,vec4(vPosition,writeGeometryInfo));
340
331
  #endif
341
332
  #if defined(PREPASS_VELOCITY)
342
- vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
333
+ vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_INDEX,vec4(velocity,0.0,writeGeometryInfo));
343
334
  #elif defined(PREPASS_VELOCITY_LINEAR)
344
- vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX]=vec4(velocity,0.0,writeGeometryInfo);
335
+ vec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w)-(vCurrentPosition.xy/vCurrentPosition.w));WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_VELOCITY_LINEAR_INDEX,vec4(velocity,0.0,writeGeometryInfo));
345
336
  #endif
346
337
  #ifdef PREPASS_IRRADIANCE
347
- gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo);
338
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_IRRADIANCE_INDEX,vec4(0.0,0.0,0.0,writeGeometryInfo));
348
339
  #endif
349
340
  #ifdef PREPASS_DEPTH
350
- gl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);
341
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_DEPTH_INDEX,vec4(vViewPos.z,0.0,0.0,writeGeometryInfo));
351
342
  #endif
352
343
  #ifdef PREPASS_SCREENSPACE_DEPTH
353
- gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX]=vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo);
344
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_SCREENSPACE_DEPTH_INDEX,vec4(gl_FragCoord.z,0.0,0.0,writeGeometryInfo));
354
345
  #endif
355
346
  #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
356
- gl_FragData[PREPASS_NORMALIZED_VIEW_DEPTH_INDEX]=vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo);
347
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMALIZED_VIEW_DEPTH_INDEX,vec4(vNormViewDepth,0.0,0.0,writeGeometryInfo));
357
348
  #endif
358
349
  #ifdef PREPASS_NORMAL
359
350
  #ifdef PREPASS_NORMAL_WORLDSPACE
360
- gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo);
351
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalW,writeGeometryInfo));
361
352
  #else
362
- gl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);
353
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_NORMAL_INDEX,vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo));
363
354
  #endif
364
355
  #endif
365
356
  #ifdef PREPASS_WORLD_NORMAL
366
- gl_FragData[PREPASS_WORLD_NORMAL_INDEX]=vec4(normalW*0.5+0.5,writeGeometryInfo);
357
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_WORLD_NORMAL_INDEX,vec4(normalW*0.5+0.5,writeGeometryInfo));
367
358
  #endif
368
359
  #ifdef PREPASS_ALBEDO
369
- gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(baseColor.rgb,writeGeometryInfo);
360
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_INDEX,vec4(baseColor.rgb,writeGeometryInfo));
370
361
  #endif
371
362
  #ifdef PREPASS_ALBEDO_SQRT
372
- gl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqrt(baseColor.rgb),writeGeometryInfo);
363
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_ALBEDO_SQRT_INDEX,vec4(sqrt(baseColor.rgb),writeGeometryInfo));
373
364
  #endif
374
365
  #ifdef PREPASS_REFLECTIVITY
375
366
  #if defined(SPECULAR)
376
- gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo;
367
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4(toLinearSpace(specularMapColor))*writeGeometryInfo);
377
368
  #else
378
- gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;
369
+ WRITE_GEOMETRY_FRAGMENT_OUTPUT(PREPASS_REFLECTIVITY_INDEX,vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo);
379
370
  #endif
380
371
  #endif
381
372
  #endif
@@ -394,7 +385,7 @@ if (fragDepth==nearestDepth) {frontColor.rgb+=color.rgb*color.a*alphaMultiplier;
394
385
  if (!ShaderStore.ShadersStore[name]) {
395
386
  ShaderStore.ShadersStore[name] = shader;
396
387
  }
397
- const includes = [decalFragmentDeclaration, defaultFragmentDeclaration, sceneUboDeclaration, meshUboDeclaration, defaultUboDeclaration, objectIdFunctions, prePassDeclaration, oitDeclaration, mainUVVaryingDeclaration, helperFunctions, lightFragmentDeclaration, lightUboDeclaration, ltcHelperFunctions, clusteredLightingFunctions, lightsFragmentFunctions, shadowsFragmentFunctions, samplerFragmentDeclaration, fresnelFunction, reflectionFunction, imageProcessingDeclaration, imageProcessingFunctions, textureRepetitionFunctions, bumpFragmentMainFunctions, bumpFragmentFunctions, clipPlaneFragmentDeclaration, logDepthDeclaration, fogFragmentDeclaration, clipPlaneFragment, bumpFragment, decalFragment, depthPrePass, lightFragment, logDepthFragment, fogFragment, oitFragment];
388
+ const includes = [decalFragmentDeclaration, defaultFragmentDeclaration, sceneUboDeclaration, meshUboDeclaration, defaultUboDeclaration, objectIdFunctions, prePassDeclaration, oitDeclaration, mainUVVaryingDeclaration, helperFunctions, lightFragmentDeclaration, lightUboDeclaration, ltcHelperFunctions, clusteredLightingFunctions, lightsFragmentFunctions, shadowsFragmentFunctions, samplerFragmentDeclaration, fresnelFunction, reflectionFunction, imageProcessingDeclaration, imageProcessingFunctions, textureRepetitionFunctions, bumpFragmentMainFunctions, bumpFragmentFunctions, clipPlaneFragmentDeclaration, logDepthDeclaration, fogFragmentDeclaration, clipPlaneFragment, bumpFragment, decalFragment, defaultFragmentAlpha, depthPrePass, lightFragment, logDepthFragment, fogFragment, oitFragment];
398
389
  for (const inc of includes) {
399
390
  if (!ShaderStore.IncludesShadersStore[inc.name]) {
400
391
  ShaderStore.IncludesShadersStore[inc.name] = inc.shader;