@fps-games/editor-deployment 0.2.3-beta.10

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 (533) hide show
  1. package/bin/fps-editor-agent.mjs +5 -0
  2. package/bin/fps-editor-prepare.mjs +5 -0
  3. package/bin/fps-editor-project.mjs +18 -0
  4. package/bin/fps-editor-server.mjs +2 -0
  5. package/licenses/THIRD_PARTY_NOTICES.txt +7 -0
  6. package/manifest.json +2688 -0
  7. package/npm-shrinkwrap.json +21 -0
  8. package/package.json +44 -0
  9. package/public/assets/abstractAudioBus-BRAC2GY2.js +1 -0
  10. package/public/assets/animation-C6iNAO1g.js +1 -0
  11. package/public/assets/animation-C6iNAO1g.js.br +0 -0
  12. package/public/assets/animation-C6iNAO1g.js.gz +0 -0
  13. package/public/assets/animationGroup-C74XVFRE.js +1 -0
  14. package/public/assets/animationGroup-C74XVFRE.js.br +0 -0
  15. package/public/assets/animationGroup-C74XVFRE.js.gz +0 -0
  16. package/public/assets/arcRotateCamera-CIQYNBBJ.js +1 -0
  17. package/public/assets/arcRotateCamera-CIQYNBBJ.js.br +0 -0
  18. package/public/assets/arcRotateCamera-CIQYNBBJ.js.gz +0 -0
  19. package/public/assets/babylon-core-PuGyjHMj.js +13882 -0
  20. package/public/assets/babylon-core-PuGyjHMj.js.br +0 -0
  21. package/public/assets/babylon-core-PuGyjHMj.js.gz +0 -0
  22. package/public/assets/babylon-core-S0gBQJVe.js +1 -0
  23. package/public/assets/babylon-core-S0gBQJVe.js.br +0 -0
  24. package/public/assets/babylon-core-S0gBQJVe.js.gz +0 -0
  25. package/public/assets/basisTextureLoader-BdapVvhf.js +1 -0
  26. package/public/assets/basisTextureLoader-BdapVvhf.js.br +0 -0
  27. package/public/assets/basisTextureLoader-BdapVvhf.js.gz +0 -0
  28. package/public/assets/bumpVertex-DMhnr4dz.js +173 -0
  29. package/public/assets/bumpVertex-DMhnr4dz.js.br +0 -0
  30. package/public/assets/bumpVertex-DMhnr4dz.js.gz +0 -0
  31. package/public/assets/bumpVertex-DpGOKCkn.js +177 -0
  32. package/public/assets/bumpVertex-DpGOKCkn.js.br +0 -0
  33. package/public/assets/bumpVertex-DpGOKCkn.js.gz +0 -0
  34. package/public/assets/chromaticAberration.fragment-BgX-2zxS.js +7 -0
  35. package/public/assets/chromaticAberration.fragment-BgX-2zxS.js.br +0 -0
  36. package/public/assets/chromaticAberration.fragment-BgX-2zxS.js.gz +0 -0
  37. package/public/assets/chromaticAberration.fragment-D7t6Txg4.js +6 -0
  38. package/public/assets/chromaticAberration.fragment-D7t6Txg4.js.br +0 -0
  39. package/public/assets/chromaticAberration.fragment-D7t6Txg4.js.gz +0 -0
  40. package/public/assets/circleOfConfusion.fragment-D1RtHaPm.js +17 -0
  41. package/public/assets/circleOfConfusion.fragment-D1RtHaPm.js.br +0 -0
  42. package/public/assets/circleOfConfusion.fragment-D1RtHaPm.js.gz +0 -0
  43. package/public/assets/circleOfConfusion.fragment-D8geMRma.js +17 -0
  44. package/public/assets/circleOfConfusion.fragment-D8geMRma.js.br +0 -0
  45. package/public/assets/circleOfConfusion.fragment-D8geMRma.js.gz +0 -0
  46. package/public/assets/clipPlaneFragment-Bgl3Usc4.js +46 -0
  47. package/public/assets/clipPlaneFragment-Bgl3Usc4.js.br +0 -0
  48. package/public/assets/clipPlaneFragment-Bgl3Usc4.js.gz +0 -0
  49. package/public/assets/clipPlaneVertex-BxK9aoI2.js +177 -0
  50. package/public/assets/clipPlaneVertex-BxK9aoI2.js.br +0 -0
  51. package/public/assets/clipPlaneVertex-BxK9aoI2.js.gz +0 -0
  52. package/public/assets/color.fragment-BUdIBar6.js +20 -0
  53. package/public/assets/color.fragment-BUdIBar6.js.br +0 -0
  54. package/public/assets/color.fragment-BUdIBar6.js.gz +0 -0
  55. package/public/assets/color.fragment-CDn4ZgkT.js +21 -0
  56. package/public/assets/color.fragment-CDn4ZgkT.js.br +0 -0
  57. package/public/assets/color.fragment-CDn4ZgkT.js.gz +0 -0
  58. package/public/assets/color.vertex-CaMOSKlC.js +39 -0
  59. package/public/assets/color.vertex-CaMOSKlC.js.br +5 -0
  60. package/public/assets/color.vertex-CaMOSKlC.js.gz +0 -0
  61. package/public/assets/color.vertex-dgbB6mhK.js +32 -0
  62. package/public/assets/color.vertex-dgbB6mhK.js.br +0 -0
  63. package/public/assets/color.vertex-dgbB6mhK.js.gz +0 -0
  64. package/public/assets/dds-3J0FZYX1.js +1 -0
  65. package/public/assets/dds-3J0FZYX1.js.br +0 -0
  66. package/public/assets/dds-3J0FZYX1.js.gz +0 -0
  67. package/public/assets/ddsTextureLoader-s5HptTVZ.js +1 -0
  68. package/public/assets/ddsTextureLoader-s5HptTVZ.js.br +0 -0
  69. package/public/assets/ddsTextureLoader-s5HptTVZ.js.gz +0 -0
  70. package/public/assets/default.fragment-C4xg7O-P.js +526 -0
  71. package/public/assets/default.fragment-C4xg7O-P.js.br +0 -0
  72. package/public/assets/default.fragment-C4xg7O-P.js.gz +0 -0
  73. package/public/assets/default.fragment-C4zjkcFb.js +468 -0
  74. package/public/assets/default.fragment-C4zjkcFb.js.br +0 -0
  75. package/public/assets/default.fragment-C4zjkcFb.js.gz +0 -0
  76. package/public/assets/default.vertex-A8wQopNr.js +193 -0
  77. package/public/assets/default.vertex-A8wQopNr.js.br +0 -0
  78. package/public/assets/default.vertex-A8wQopNr.js.gz +0 -0
  79. package/public/assets/default.vertex-YrvIUn4x.js +181 -0
  80. package/public/assets/default.vertex-YrvIUn4x.js.br +0 -0
  81. package/public/assets/default.vertex-YrvIUn4x.js.gz +0 -0
  82. package/public/assets/defaultUboDeclaration-C8GCosBM.js +5 -0
  83. package/public/assets/defaultUboDeclaration-C8GCosBM.js.br +0 -0
  84. package/public/assets/defaultUboDeclaration-C8GCosBM.js.gz +0 -0
  85. package/public/assets/defaultUboDeclaration-D26o_DDO.js +7 -0
  86. package/public/assets/defaultUboDeclaration-D26o_DDO.js.br +0 -0
  87. package/public/assets/defaultUboDeclaration-D26o_DDO.js.gz +0 -0
  88. package/public/assets/depth.fragment-Bn8G24s-.js +40 -0
  89. package/public/assets/depth.fragment-Bn8G24s-.js.br +4 -0
  90. package/public/assets/depth.fragment-Bn8G24s-.js.gz +0 -0
  91. package/public/assets/depth.vertex-B2lrdlJh.js +57 -0
  92. package/public/assets/depth.vertex-B2lrdlJh.js.br +0 -0
  93. package/public/assets/depth.vertex-B2lrdlJh.js.gz +0 -0
  94. package/public/assets/depthBoxBlur.fragment-BtTv8wid.js +5 -0
  95. package/public/assets/depthBoxBlur.fragment-BtTv8wid.js.br +0 -0
  96. package/public/assets/depthBoxBlur.fragment-BtTv8wid.js.gz +0 -0
  97. package/public/assets/depthBoxBlur.fragment-DViDG6Vb.js +6 -0
  98. package/public/assets/depthBoxBlur.fragment-DViDG6Vb.js.br +0 -0
  99. package/public/assets/depthBoxBlur.fragment-DViDG6Vb.js.gz +0 -0
  100. package/public/assets/depthOfFieldMerge.fragment-DCspcdWZ.js +26 -0
  101. package/public/assets/depthOfFieldMerge.fragment-DCspcdWZ.js.br +0 -0
  102. package/public/assets/depthOfFieldMerge.fragment-DCspcdWZ.js.gz +0 -0
  103. package/public/assets/depthOfFieldMerge.fragment-Ds-g4Ln8.js +21 -0
  104. package/public/assets/depthOfFieldMerge.fragment-Ds-g4Ln8.js.br +0 -0
  105. package/public/assets/depthOfFieldMerge.fragment-Ds-g4Ln8.js.gz +0 -0
  106. package/public/assets/dynamicTexture-Cuby-VOT.js +1329 -0
  107. package/public/assets/dynamicTexture-Cuby-VOT.js.br +0 -0
  108. package/public/assets/dynamicTexture-Cuby-VOT.js.gz +0 -0
  109. package/public/assets/easing-DbzzrXOl.js +1 -0
  110. package/public/assets/easing-DbzzrXOl.js.br +0 -0
  111. package/public/assets/easing-DbzzrXOl.js.gz +0 -0
  112. package/public/assets/editor-core-plugin-host-c2002442.js +1 -0
  113. package/public/assets/editor-core-plugin-host-c2002442.js.br +0 -0
  114. package/public/assets/editor-core-plugin-host-c2002442.js.gz +0 -0
  115. package/public/assets/exrTextureLoader-D39k4eK_.js +1 -0
  116. package/public/assets/exrTextureLoader-D39k4eK_.js.br +0 -0
  117. package/public/assets/exrTextureLoader-D39k4eK_.js.gz +0 -0
  118. package/public/assets/flowGraphArrayIndexBlock-C8nTWR8h.js +1 -0
  119. package/public/assets/flowGraphArrayIndexBlock-C8nTWR8h.js.br +0 -0
  120. package/public/assets/flowGraphArrayIndexBlock-C8nTWR8h.js.gz +0 -0
  121. package/public/assets/flowGraphBezierCurveEasingBlock-Izh7s0Zh.js +1 -0
  122. package/public/assets/flowGraphBezierCurveEasingBlock-Izh7s0Zh.js.br +0 -0
  123. package/public/assets/flowGraphBezierCurveEasingBlock-Izh7s0Zh.js.gz +0 -0
  124. package/public/assets/flowGraphBinaryOperationBlock-BRfalQP5.js +1 -0
  125. package/public/assets/flowGraphBinaryOperationBlock-BRfalQP5.js.br +0 -0
  126. package/public/assets/flowGraphBinaryOperationBlock-BRfalQP5.js.gz +0 -0
  127. package/public/assets/flowGraphBranchBlock-CV_leJX3.js +1 -0
  128. package/public/assets/flowGraphBranchBlock-CV_leJX3.js.br +0 -0
  129. package/public/assets/flowGraphBranchBlock-CV_leJX3.js.gz +0 -0
  130. package/public/assets/flowGraphCachedOperationBlock-BysRM-Ha.js +1 -0
  131. package/public/assets/flowGraphCachedOperationBlock-BysRM-Ha.js.br +2 -0
  132. package/public/assets/flowGraphCachedOperationBlock-BysRM-Ha.js.gz +0 -0
  133. package/public/assets/flowGraphCancelDelayBlock-BK6tDTGy.js +1 -0
  134. package/public/assets/flowGraphCancelDelayBlock-BK6tDTGy.js.br +0 -0
  135. package/public/assets/flowGraphCancelDelayBlock-BK6tDTGy.js.gz +0 -0
  136. package/public/assets/flowGraphCodeExecutionBlock-CQABvaP8.js +1 -0
  137. package/public/assets/flowGraphCodeExecutionBlock-CQABvaP8.js.br +0 -0
  138. package/public/assets/flowGraphCodeExecutionBlock-CQABvaP8.js.gz +0 -0
  139. package/public/assets/flowGraphConditionalDataBlock-D7OU_UOM.js +1 -0
  140. package/public/assets/flowGraphConditionalDataBlock-D7OU_UOM.js.br +0 -0
  141. package/public/assets/flowGraphConditionalDataBlock-D7OU_UOM.js.gz +0 -0
  142. package/public/assets/flowGraphConsoleLogBlock-BBxVDGOV.js +1 -0
  143. package/public/assets/flowGraphConsoleLogBlock-BBxVDGOV.js.br +0 -0
  144. package/public/assets/flowGraphConsoleLogBlock-BBxVDGOV.js.gz +0 -0
  145. package/public/assets/flowGraphConstantBlock-Cn3ZMGR0.js +1 -0
  146. package/public/assets/flowGraphConstantBlock-Cn3ZMGR0.js.br +0 -0
  147. package/public/assets/flowGraphConstantBlock-Cn3ZMGR0.js.gz +0 -0
  148. package/public/assets/flowGraphContextBlock-BS3b2XbE.js +1 -0
  149. package/public/assets/flowGraphContextBlock-BS3b2XbE.js.br +0 -0
  150. package/public/assets/flowGraphContextBlock-BS3b2XbE.js.gz +0 -0
  151. package/public/assets/flowGraphCounterBlock-xdcRCw4l.js +1 -0
  152. package/public/assets/flowGraphCounterBlock-xdcRCw4l.js.br +0 -0
  153. package/public/assets/flowGraphCounterBlock-xdcRCw4l.js.gz +0 -0
  154. package/public/assets/flowGraphDataSwitchBlock-dY8TSZtd.js +1 -0
  155. package/public/assets/flowGraphDataSwitchBlock-dY8TSZtd.js.br +0 -0
  156. package/public/assets/flowGraphDataSwitchBlock-dY8TSZtd.js.gz +0 -0
  157. package/public/assets/flowGraphDebounceBlock-Q_f2x-ID.js +1 -0
  158. package/public/assets/flowGraphDebounceBlock-Q_f2x-ID.js.br +0 -0
  159. package/public/assets/flowGraphDebounceBlock-Q_f2x-ID.js.gz +0 -0
  160. package/public/assets/flowGraphDoNBlock-COo31G00.js +1 -0
  161. package/public/assets/flowGraphDoNBlock-COo31G00.js.br +0 -0
  162. package/public/assets/flowGraphDoNBlock-COo31G00.js.gz +0 -0
  163. package/public/assets/flowGraphEasingBlock-jGW-fKIB.js +1 -0
  164. package/public/assets/flowGraphEasingBlock-jGW-fKIB.js.br +0 -0
  165. package/public/assets/flowGraphEasingBlock-jGW-fKIB.js.gz +0 -0
  166. package/public/assets/flowGraphFlipFlopBlock-B8znf-3o.js +1 -0
  167. package/public/assets/flowGraphFlipFlopBlock-B8znf-3o.js.br +0 -0
  168. package/public/assets/flowGraphFlipFlopBlock-B8znf-3o.js.gz +0 -0
  169. package/public/assets/flowGraphForLoopBlock-UxZSh8US.js +1 -0
  170. package/public/assets/flowGraphForLoopBlock-UxZSh8US.js.br +0 -0
  171. package/public/assets/flowGraphForLoopBlock-UxZSh8US.js.gz +0 -0
  172. package/public/assets/flowGraphFunctionReferenceBlock-c3ZQWBhk.js +1 -0
  173. package/public/assets/flowGraphFunctionReferenceBlock-c3ZQWBhk.js.br +0 -0
  174. package/public/assets/flowGraphFunctionReferenceBlock-c3ZQWBhk.js.gz +0 -0
  175. package/public/assets/flowGraphGetAssetBlock-B3zYUZmJ.js +1 -0
  176. package/public/assets/flowGraphGetAssetBlock-B3zYUZmJ.js.br +0 -0
  177. package/public/assets/flowGraphGetAssetBlock-B3zYUZmJ.js.gz +0 -0
  178. package/public/assets/flowGraphGetPropertyBlock-D--vcmMS.js +1 -0
  179. package/public/assets/flowGraphGetPropertyBlock-D--vcmMS.js.br +0 -0
  180. package/public/assets/flowGraphGetPropertyBlock-D--vcmMS.js.gz +0 -0
  181. package/public/assets/flowGraphGetVariableBlock-BkCEyiL6.js +1 -0
  182. package/public/assets/flowGraphGetVariableBlock-BkCEyiL6.js.br +0 -0
  183. package/public/assets/flowGraphGetVariableBlock-BkCEyiL6.js.gz +0 -0
  184. package/public/assets/flowGraphIndexOfBlock-C4ipR7YB.js +1 -0
  185. package/public/assets/flowGraphIndexOfBlock-C4ipR7YB.js.br +0 -0
  186. package/public/assets/flowGraphIndexOfBlock-C4ipR7YB.js.gz +0 -0
  187. package/public/assets/flowGraphInterpolationBlock-DuRc3LX7.js +1 -0
  188. package/public/assets/flowGraphInterpolationBlock-DuRc3LX7.js.br +0 -0
  189. package/public/assets/flowGraphInterpolationBlock-DuRc3LX7.js.gz +0 -0
  190. package/public/assets/flowGraphJsonPointerParserBlock-urEWktqi.js +1 -0
  191. package/public/assets/flowGraphJsonPointerParserBlock-urEWktqi.js.br +0 -0
  192. package/public/assets/flowGraphJsonPointerParserBlock-urEWktqi.js.gz +0 -0
  193. package/public/assets/flowGraphMathBlocks-CGTCQVqz.js +1 -0
  194. package/public/assets/flowGraphMathBlocks-CGTCQVqz.js.br +0 -0
  195. package/public/assets/flowGraphMathBlocks-CGTCQVqz.js.gz +0 -0
  196. package/public/assets/flowGraphMathCombineExtractBlocks-DDHGbRPt.js +1 -0
  197. package/public/assets/flowGraphMathCombineExtractBlocks-DDHGbRPt.js.br +0 -0
  198. package/public/assets/flowGraphMathCombineExtractBlocks-DDHGbRPt.js.gz +0 -0
  199. package/public/assets/flowGraphMatrixMathBlocks-Bwp1BysB.js +1 -0
  200. package/public/assets/flowGraphMatrixMathBlocks-Bwp1BysB.js.br +0 -0
  201. package/public/assets/flowGraphMatrixMathBlocks-Bwp1BysB.js.gz +0 -0
  202. package/public/assets/flowGraphMeshPickEventBlock-2wkqhQCG.js +1 -0
  203. package/public/assets/flowGraphMeshPickEventBlock-2wkqhQCG.js.br +0 -0
  204. package/public/assets/flowGraphMeshPickEventBlock-2wkqhQCG.js.gz +0 -0
  205. package/public/assets/flowGraphMultiGateBlock-BuKmvqC8.js +1 -0
  206. package/public/assets/flowGraphMultiGateBlock-BuKmvqC8.js.br +0 -0
  207. package/public/assets/flowGraphMultiGateBlock-BuKmvqC8.js.gz +0 -0
  208. package/public/assets/flowGraphPauseAnimationBlock-T_-VP-t5.js +1 -0
  209. package/public/assets/flowGraphPauseAnimationBlock-T_-VP-t5.js.br +0 -0
  210. package/public/assets/flowGraphPauseAnimationBlock-T_-VP-t5.js.gz +0 -0
  211. package/public/assets/flowGraphPlayAnimationBlock-DDVrE__n.js +1 -0
  212. package/public/assets/flowGraphPlayAnimationBlock-DDVrE__n.js.br +0 -0
  213. package/public/assets/flowGraphPlayAnimationBlock-DDVrE__n.js.gz +0 -0
  214. package/public/assets/flowGraphPointerOutEventBlock-Cx15Sf5R.js +1 -0
  215. package/public/assets/flowGraphPointerOutEventBlock-Cx15Sf5R.js.br +0 -0
  216. package/public/assets/flowGraphPointerOutEventBlock-Cx15Sf5R.js.gz +0 -0
  217. package/public/assets/flowGraphPointerOverEventBlock-DzzHa-dN.js +1 -0
  218. package/public/assets/flowGraphPointerOverEventBlock-DzzHa-dN.js.br +0 -0
  219. package/public/assets/flowGraphPointerOverEventBlock-DzzHa-dN.js.gz +0 -0
  220. package/public/assets/flowGraphReceiveCustomEventBlock-DKfLODu3.js +1 -0
  221. package/public/assets/flowGraphReceiveCustomEventBlock-DKfLODu3.js.br +0 -0
  222. package/public/assets/flowGraphReceiveCustomEventBlock-DKfLODu3.js.gz +0 -0
  223. package/public/assets/flowGraphSceneReadyEventBlock-ClJu3s64.js +1 -0
  224. package/public/assets/flowGraphSceneReadyEventBlock-ClJu3s64.js.br +0 -0
  225. package/public/assets/flowGraphSceneReadyEventBlock-ClJu3s64.js.gz +0 -0
  226. package/public/assets/flowGraphSceneTickEventBlock-3ZNr4eqw.js +1 -0
  227. package/public/assets/flowGraphSceneTickEventBlock-3ZNr4eqw.js.br +0 -0
  228. package/public/assets/flowGraphSceneTickEventBlock-3ZNr4eqw.js.gz +0 -0
  229. package/public/assets/flowGraphSendCustomEventBlock-CdKQeuma.js +1 -0
  230. package/public/assets/flowGraphSendCustomEventBlock-CdKQeuma.js.br +0 -0
  231. package/public/assets/flowGraphSendCustomEventBlock-CdKQeuma.js.gz +0 -0
  232. package/public/assets/flowGraphSequenceBlock-D0-_bFV3.js +1 -0
  233. package/public/assets/flowGraphSequenceBlock-D0-_bFV3.js.br +0 -0
  234. package/public/assets/flowGraphSequenceBlock-D0-_bFV3.js.gz +0 -0
  235. package/public/assets/flowGraphSetDelayBlock-B8946WOc.js +1 -0
  236. package/public/assets/flowGraphSetDelayBlock-B8946WOc.js.br +0 -0
  237. package/public/assets/flowGraphSetDelayBlock-B8946WOc.js.gz +0 -0
  238. package/public/assets/flowGraphSetPropertyBlock-Cx0IyW-a.js +1 -0
  239. package/public/assets/flowGraphSetPropertyBlock-Cx0IyW-a.js.br +0 -0
  240. package/public/assets/flowGraphSetPropertyBlock-Cx0IyW-a.js.gz +0 -0
  241. package/public/assets/flowGraphSetVariableBlock-0dns_CH6.js +1 -0
  242. package/public/assets/flowGraphSetVariableBlock-0dns_CH6.js.br +0 -0
  243. package/public/assets/flowGraphSetVariableBlock-0dns_CH6.js.gz +0 -0
  244. package/public/assets/flowGraphStopAnimationBlock-z4ou311H.js +1 -0
  245. package/public/assets/flowGraphStopAnimationBlock-z4ou311H.js.br +0 -0
  246. package/public/assets/flowGraphStopAnimationBlock-z4ou311H.js.gz +0 -0
  247. package/public/assets/flowGraphSwitchBlock-E7meS39u.js +1 -0
  248. package/public/assets/flowGraphSwitchBlock-E7meS39u.js.br +0 -0
  249. package/public/assets/flowGraphSwitchBlock-E7meS39u.js.gz +0 -0
  250. package/public/assets/flowGraphThrottleBlock-CldHJDs6.js +1 -0
  251. package/public/assets/flowGraphThrottleBlock-CldHJDs6.js.br +0 -0
  252. package/public/assets/flowGraphThrottleBlock-CldHJDs6.js.gz +0 -0
  253. package/public/assets/flowGraphTransformCoordinatesSystemBlock-pYdpcwK7.js +1 -0
  254. package/public/assets/flowGraphTransformCoordinatesSystemBlock-pYdpcwK7.js.br +0 -0
  255. package/public/assets/flowGraphTransformCoordinatesSystemBlock-pYdpcwK7.js.gz +0 -0
  256. package/public/assets/flowGraphTypeToTypeBlocks-CYfvLPJ-.js +1 -0
  257. package/public/assets/flowGraphTypeToTypeBlocks-CYfvLPJ-.js.br +0 -0
  258. package/public/assets/flowGraphTypeToTypeBlocks-CYfvLPJ-.js.gz +0 -0
  259. package/public/assets/flowGraphUnaryOperationBlock-s-kJ99D8.js +1 -0
  260. package/public/assets/flowGraphUnaryOperationBlock-s-kJ99D8.js.br +0 -0
  261. package/public/assets/flowGraphUnaryOperationBlock-s-kJ99D8.js.gz +0 -0
  262. package/public/assets/flowGraphVectorMathBlocks-D7iofIoY.js +1 -0
  263. package/public/assets/flowGraphVectorMathBlocks-D7iofIoY.js.br +0 -0
  264. package/public/assets/flowGraphVectorMathBlocks-D7iofIoY.js.gz +0 -0
  265. package/public/assets/flowGraphWaitAllBlock-CAW7HgUP.js +1 -0
  266. package/public/assets/flowGraphWaitAllBlock-CAW7HgUP.js.br +0 -0
  267. package/public/assets/flowGraphWaitAllBlock-CAW7HgUP.js.gz +0 -0
  268. package/public/assets/flowGraphWhileLoopBlock-DRP9_Zd1.js +1 -0
  269. package/public/assets/flowGraphWhileLoopBlock-DRP9_Zd1.js.br +0 -0
  270. package/public/assets/flowGraphWhileLoopBlock-DRP9_Zd1.js.gz +0 -0
  271. package/public/assets/fogFragmentDeclaration-CzUy86ul.js +22 -0
  272. package/public/assets/fogFragmentDeclaration-CzUy86ul.js.br +0 -0
  273. package/public/assets/fogFragmentDeclaration-CzUy86ul.js.gz +0 -0
  274. package/public/assets/fogFragmentDeclaration-kfcrkpgB.js +23 -0
  275. package/public/assets/fogFragmentDeclaration-kfcrkpgB.js.br +0 -0
  276. package/public/assets/fogFragmentDeclaration-kfcrkpgB.js.gz +0 -0
  277. package/public/assets/glowBlurPostProcess.fragment-CS_rTtUL.js +7 -0
  278. package/public/assets/glowBlurPostProcess.fragment-CS_rTtUL.js.br +0 -0
  279. package/public/assets/glowBlurPostProcess.fragment-CS_rTtUL.js.gz +0 -0
  280. package/public/assets/glowBlurPostProcess.fragment-G_xfSiIr.js +7 -0
  281. package/public/assets/glowBlurPostProcess.fragment-G_xfSiIr.js.br +0 -0
  282. package/public/assets/glowBlurPostProcess.fragment-G_xfSiIr.js.gz +0 -0
  283. package/public/assets/glowMapGeneration.fragment-DwJ3bpr6.js +63 -0
  284. package/public/assets/glowMapGeneration.fragment-DwJ3bpr6.js.br +0 -0
  285. package/public/assets/glowMapGeneration.fragment-DwJ3bpr6.js.gz +0 -0
  286. package/public/assets/glowMapGeneration.fragment-mDEHNZRi.js +63 -0
  287. package/public/assets/glowMapGeneration.fragment-mDEHNZRi.js.br +0 -0
  288. package/public/assets/glowMapGeneration.fragment-mDEHNZRi.js.gz +0 -0
  289. package/public/assets/glowMapGeneration.vertex-BACa9-r4.js +75 -0
  290. package/public/assets/glowMapGeneration.vertex-BACa9-r4.js.br +0 -0
  291. package/public/assets/glowMapGeneration.vertex-BACa9-r4.js.gz +0 -0
  292. package/public/assets/glowMapGeneration.vertex-mAWUJxSB.js +75 -0
  293. package/public/assets/glowMapGeneration.vertex-mAWUJxSB.js.br +3 -0
  294. package/public/assets/glowMapGeneration.vertex-mAWUJxSB.js.gz +0 -0
  295. package/public/assets/glowMapMerge.fragment-0Im35OVD.js +23 -0
  296. package/public/assets/glowMapMerge.fragment-0Im35OVD.js.br +0 -0
  297. package/public/assets/glowMapMerge.fragment-0Im35OVD.js.gz +0 -0
  298. package/public/assets/glowMapMerge.fragment-BXHfrWgL.js +25 -0
  299. package/public/assets/glowMapMerge.fragment-BXHfrWgL.js.br +0 -0
  300. package/public/assets/glowMapMerge.fragment-BXHfrWgL.js.gz +0 -0
  301. package/public/assets/glowMapMerge.vertex-8A2ntYoS.js +7 -0
  302. package/public/assets/glowMapMerge.vertex-8A2ntYoS.js.br +0 -0
  303. package/public/assets/glowMapMerge.vertex-8A2ntYoS.js.gz +0 -0
  304. package/public/assets/glowMapMerge.vertex-Cnm-5WLT.js +8 -0
  305. package/public/assets/glowMapMerge.vertex-Cnm-5WLT.js.br +0 -0
  306. package/public/assets/glowMapMerge.vertex-Cnm-5WLT.js.gz +0 -0
  307. package/public/assets/grain.fragment-BMGi-Hgp.js +6 -0
  308. package/public/assets/grain.fragment-BMGi-Hgp.js.br +0 -0
  309. package/public/assets/grain.fragment-BMGi-Hgp.js.gz +0 -0
  310. package/public/assets/grain.fragment-CH9zg05c.js +5 -0
  311. package/public/assets/grain.fragment-CH9zg05c.js.br +0 -0
  312. package/public/assets/grain.fragment-CH9zg05c.js.gz +0 -0
  313. package/public/assets/harmonicsFunctions-BQTTvws3.js +192 -0
  314. package/public/assets/harmonicsFunctions-BQTTvws3.js.br +0 -0
  315. package/public/assets/harmonicsFunctions-BQTTvws3.js.gz +0 -0
  316. package/public/assets/harmonicsFunctions-DtIiYWL1.js +189 -0
  317. package/public/assets/harmonicsFunctions-DtIiYWL1.js.br +0 -0
  318. package/public/assets/harmonicsFunctions-DtIiYWL1.js.gz +0 -0
  319. package/public/assets/hdrTextureLoader-Dqvpv0kr.js +2 -0
  320. package/public/assets/hdrTextureLoader-Dqvpv0kr.js.br +0 -0
  321. package/public/assets/hdrTextureLoader-Dqvpv0kr.js.gz +0 -0
  322. package/public/assets/iesTextureLoader-B8AoKSG2.js +2 -0
  323. package/public/assets/iesTextureLoader-B8AoKSG2.js.br +0 -0
  324. package/public/assets/iesTextureLoader-B8AoKSG2.js.gz +0 -0
  325. package/public/assets/index-CiIoJ8v1.js +4 -0
  326. package/public/assets/index-CiIoJ8v1.js.br +0 -0
  327. package/public/assets/index-CiIoJ8v1.js.gz +0 -0
  328. package/public/assets/index-Dhf9rSmv.js +1 -0
  329. package/public/assets/index-Dhf9rSmv.js.br +0 -0
  330. package/public/assets/index-Dhf9rSmv.js.gz +0 -0
  331. package/public/assets/instancesDeclaration-B2a0VuuR.js +23 -0
  332. package/public/assets/instancesDeclaration-B2a0VuuR.js.br +0 -0
  333. package/public/assets/instancesDeclaration-B2a0VuuR.js.gz +0 -0
  334. package/public/assets/ktxTextureLoader-DTr7AKqG.js +1 -0
  335. package/public/assets/ktxTextureLoader-DTr7AKqG.js.br +0 -0
  336. package/public/assets/ktxTextureLoader-DTr7AKqG.js.gz +0 -0
  337. package/public/assets/lazy-Cj-01uhW.js +2 -0
  338. package/public/assets/lazy-Cj-01uhW.js.br +0 -0
  339. package/public/assets/lazy-Cj-01uhW.js.gz +0 -0
  340. package/public/assets/lod.fragment-BuvQbBhE.js +3 -0
  341. package/public/assets/lod.fragment-BuvQbBhE.js.br +0 -0
  342. package/public/assets/lod.fragment-BuvQbBhE.js.gz +0 -0
  343. package/public/assets/lod.fragment-Cp0eqGjl.js +3 -0
  344. package/public/assets/lod.fragment-Cp0eqGjl.js.br +3 -0
  345. package/public/assets/lod.fragment-Cp0eqGjl.js.gz +0 -0
  346. package/public/assets/lodCube.fragment-CI1eTppS.js +22 -0
  347. package/public/assets/lodCube.fragment-CI1eTppS.js.br +2 -0
  348. package/public/assets/lodCube.fragment-CI1eTppS.js.gz +0 -0
  349. package/public/assets/lodCube.fragment-yDzV1teg.js +22 -0
  350. package/public/assets/lodCube.fragment-yDzV1teg.js.br +0 -0
  351. package/public/assets/lodCube.fragment-yDzV1teg.js.gz +0 -0
  352. package/public/assets/logDepthDeclaration-CeLLOhuK.js +4 -0
  353. package/public/assets/logDepthDeclaration-XDsVKoT0.js +4 -0
  354. package/public/assets/logDepthFragment-BPP-rBiT.js +4 -0
  355. package/public/assets/logDepthFragment-BPP-rBiT.js.br +0 -0
  356. package/public/assets/logDepthFragment-BPP-rBiT.js.gz +0 -0
  357. package/public/assets/logDepthFragment-CDaMyvfH.js +4 -0
  358. package/public/assets/logDepthVertex-CkFa6uAf.js +4 -0
  359. package/public/assets/logDepthVertex-CkFa6uAf.js.br +0 -0
  360. package/public/assets/logDepthVertex-CkFa6uAf.js.gz +0 -0
  361. package/public/assets/logDepthVertex-H6E8NLz1.js +4 -0
  362. package/public/assets/logDepthVertex-H6E8NLz1.js.br +1 -0
  363. package/public/assets/logDepthVertex-H6E8NLz1.js.gz +0 -0
  364. package/public/assets/mainUVVaryingDeclaration-DdwP8xi_.js +4 -0
  365. package/public/assets/mainUVVaryingDeclaration-OBB3LR8s.js +4 -0
  366. package/public/assets/mesh.vertexData.functions-BXkNVxNr.js +1 -0
  367. package/public/assets/mesh.vertexData.functions-BXkNVxNr.js.br +0 -0
  368. package/public/assets/mesh.vertexData.functions-BXkNVxNr.js.gz +0 -0
  369. package/public/assets/meshUboDeclaration-Cr5YhBB1.js +13 -0
  370. package/public/assets/meshUboDeclaration-Cr5YhBB1.js.br +0 -0
  371. package/public/assets/meshUboDeclaration-Cr5YhBB1.js.gz +0 -0
  372. package/public/assets/meshUboDeclaration-Uj1CsoJP.js +13 -0
  373. package/public/assets/meshUboDeclaration-Uj1CsoJP.js.br +0 -0
  374. package/public/assets/meshUboDeclaration-Uj1CsoJP.js.gz +0 -0
  375. package/public/assets/morphTargetsVertex-B9xWvV_u.js +100 -0
  376. package/public/assets/morphTargetsVertex-B9xWvV_u.js.br +0 -0
  377. package/public/assets/morphTargetsVertex-B9xWvV_u.js.gz +0 -0
  378. package/public/assets/oitFinalSimpleBlend.fragment-4NtZHGOG.js +3 -0
  379. package/public/assets/oitFinalSimpleBlend.fragment-4NtZHGOG.js.br +0 -0
  380. package/public/assets/oitFinalSimpleBlend.fragment-4NtZHGOG.js.gz +0 -0
  381. package/public/assets/oitFinalSimpleBlend.fragment-D8T6jyS0.js +2 -0
  382. package/public/assets/oitFinalSimpleBlend.fragment-D8T6jyS0.js.br +3 -0
  383. package/public/assets/oitFinalSimpleBlend.fragment-D8T6jyS0.js.gz +0 -0
  384. package/public/assets/oitFragment-CK8Y-Z-q.js +1202 -0
  385. package/public/assets/oitFragment-CK8Y-Z-q.js.br +0 -0
  386. package/public/assets/oitFragment-CK8Y-Z-q.js.gz +0 -0
  387. package/public/assets/oitFragment-ZUHesxAg.js +1077 -0
  388. package/public/assets/oitFragment-ZUHesxAg.js.br +0 -0
  389. package/public/assets/oitFragment-ZUHesxAg.js.gz +0 -0
  390. package/public/assets/openpbrMaterial-Dc7VVRl6.js +2 -0
  391. package/public/assets/openpbrMaterial-Dc7VVRl6.js.br +0 -0
  392. package/public/assets/openpbrMaterial-Dc7VVRl6.js.gz +0 -0
  393. package/public/assets/outline.fragment-BK0vgcx7.js +21 -0
  394. package/public/assets/outline.fragment-BK0vgcx7.js.br +0 -0
  395. package/public/assets/outline.fragment-BK0vgcx7.js.gz +0 -0
  396. package/public/assets/outline.fragment-DQK2JikO.js +18 -0
  397. package/public/assets/outline.fragment-DQK2JikO.js.br +0 -0
  398. package/public/assets/outline.fragment-DQK2JikO.js.gz +0 -0
  399. package/public/assets/outline.vertex-CHR7GZYH.js +47 -0
  400. package/public/assets/outline.vertex-CHR7GZYH.js.br +0 -0
  401. package/public/assets/outline.vertex-CHR7GZYH.js.gz +0 -0
  402. package/public/assets/outline.vertex-CKcILDiL.js +47 -0
  403. package/public/assets/outline.vertex-CKcILDiL.js.br +0 -0
  404. package/public/assets/outline.vertex-CKcILDiL.js.gz +0 -0
  405. package/public/assets/passCube.fragment-Ch6aeybh.js +23 -0
  406. package/public/assets/passCube.fragment-Ch6aeybh.js.br +0 -0
  407. package/public/assets/passCube.fragment-Ch6aeybh.js.gz +0 -0
  408. package/public/assets/passCube.fragment-wvJ8mb6_.js +23 -0
  409. package/public/assets/passCube.fragment-wvJ8mb6_.js.br +0 -0
  410. package/public/assets/passCube.fragment-wvJ8mb6_.js.gz +0 -0
  411. package/public/assets/pbr.fragment-Bo4XM7Ct.js +3277 -0
  412. package/public/assets/pbr.fragment-Bo4XM7Ct.js.br +0 -0
  413. package/public/assets/pbr.fragment-Bo4XM7Ct.js.gz +0 -0
  414. package/public/assets/pbr.fragment-T2xKI2J0.js +3327 -0
  415. package/public/assets/pbr.fragment-T2xKI2J0.js.br +0 -0
  416. package/public/assets/pbr.fragment-T2xKI2J0.js.gz +0 -0
  417. package/public/assets/pbr.vertex-BezAbBHx.js +357 -0
  418. package/public/assets/pbr.vertex-BezAbBHx.js.br +0 -0
  419. package/public/assets/pbr.vertex-BezAbBHx.js.gz +0 -0
  420. package/public/assets/pbr.vertex-w2ZWBdHy.js +227 -0
  421. package/public/assets/pbr.vertex-w2ZWBdHy.js.br +0 -0
  422. package/public/assets/pbr.vertex-w2ZWBdHy.js.gz +0 -0
  423. package/public/assets/playable-sdk-zAYuBOLj.js +8 -0
  424. package/public/assets/playable-sdk-zAYuBOLj.js.br +0 -0
  425. package/public/assets/playable-sdk-zAYuBOLj.js.gz +0 -0
  426. package/public/assets/playable-standard-project-Brbyn9c4.js +5140 -0
  427. package/public/assets/playable-standard-project-Brbyn9c4.js.br +0 -0
  428. package/public/assets/playable-standard-project-Brbyn9c4.js.gz +0 -0
  429. package/public/assets/rgbdDecode.fragment-BQ16CsAv.js +5 -0
  430. package/public/assets/rgbdDecode.fragment-BQ16CsAv.js.br +4 -0
  431. package/public/assets/rgbdDecode.fragment-BQ16CsAv.js.gz +0 -0
  432. package/public/assets/rgbdDecode.fragment-D_2CJy2O.js +5 -0
  433. package/public/assets/rgbdDecode.fragment-D_2CJy2O.js.br +0 -0
  434. package/public/assets/rgbdDecode.fragment-D_2CJy2O.js.gz +0 -0
  435. package/public/assets/rgbdEncode.fragment-CmDv6yEZ.js +5 -0
  436. package/public/assets/rgbdEncode.fragment-CmDv6yEZ.js.br +3 -0
  437. package/public/assets/rgbdEncode.fragment-CmDv6yEZ.js.gz +0 -0
  438. package/public/assets/rgbdEncode.fragment-QRg2h8KC.js +5 -0
  439. package/public/assets/rgbdEncode.fragment-QRg2h8KC.js.br +1 -0
  440. package/public/assets/rgbdEncode.fragment-QRg2h8KC.js.gz +0 -0
  441. package/public/assets/sceneLoader-CDreObGG.js +1 -0
  442. package/public/assets/sceneLoader-CDreObGG.js.br +0 -0
  443. package/public/assets/sceneLoader-CDreObGG.js.gz +0 -0
  444. package/public/assets/screenSpaceCurvature.fragment-BWdr_4iW.js +15 -0
  445. package/public/assets/screenSpaceCurvature.fragment-BWdr_4iW.js.br +0 -0
  446. package/public/assets/screenSpaceCurvature.fragment-BWdr_4iW.js.gz +0 -0
  447. package/public/assets/selection.fragment-CVXAuXcC.js +35 -0
  448. package/public/assets/selection.fragment-CVXAuXcC.js.br +0 -0
  449. package/public/assets/selection.fragment-CVXAuXcC.js.gz +0 -0
  450. package/public/assets/selection.fragment-DobH4NRw.js +35 -0
  451. package/public/assets/selection.fragment-DobH4NRw.js.br +0 -0
  452. package/public/assets/selection.fragment-DobH4NRw.js.gz +0 -0
  453. package/public/assets/selection.vertex-BUBv8X1j.js +74 -0
  454. package/public/assets/selection.vertex-BUBv8X1j.js.br +0 -0
  455. package/public/assets/selection.vertex-BUBv8X1j.js.gz +0 -0
  456. package/public/assets/selection.vertex-DlADXBtf.js +73 -0
  457. package/public/assets/selection.vertex-DlADXBtf.js.br +0 -0
  458. package/public/assets/selection.vertex-DlADXBtf.js.gz +0 -0
  459. package/public/assets/selectionOutline.fragment-CWpNrg8m.js +47 -0
  460. package/public/assets/selectionOutline.fragment-CWpNrg8m.js.br +0 -0
  461. package/public/assets/selectionOutline.fragment-CWpNrg8m.js.gz +0 -0
  462. package/public/assets/selectionOutline.fragment-DoKuUf2L.js +48 -0
  463. package/public/assets/selectionOutline.fragment-DoKuUf2L.js.br +0 -0
  464. package/public/assets/selectionOutline.fragment-DoKuUf2L.js.gz +0 -0
  465. package/public/assets/shadowMap.fragment-BEwhnKOg.js +78 -0
  466. package/public/assets/shadowMap.fragment-BEwhnKOg.js.br +0 -0
  467. package/public/assets/shadowMap.fragment-BEwhnKOg.js.gz +0 -0
  468. package/public/assets/shadowMap.fragment-CVar4C4N.js +79 -0
  469. package/public/assets/shadowMap.fragment-CVar4C4N.js.br +0 -0
  470. package/public/assets/shadowMap.fragment-CVar4C4N.js.gz +0 -0
  471. package/public/assets/shadowMap.vertex-ImOoSjTb.js +109 -0
  472. package/public/assets/shadowMap.vertex-ImOoSjTb.js.br +0 -0
  473. package/public/assets/shadowMap.vertex-ImOoSjTb.js.gz +0 -0
  474. package/public/assets/shadowMap.vertex-Q2d15P5z.js +119 -0
  475. package/public/assets/shadowMap.vertex-Q2d15P5z.js.br +0 -0
  476. package/public/assets/shadowMap.vertex-Q2d15P5z.js.gz +0 -0
  477. package/public/assets/shadowMapFragmentSoftTransparentShadow-BmxybqRD.js +4 -0
  478. package/public/assets/shadowMapFragmentSoftTransparentShadow-BmxybqRD.js.br +0 -0
  479. package/public/assets/shadowMapFragmentSoftTransparentShadow-BmxybqRD.js.gz +0 -0
  480. package/public/assets/shadowMapFragmentSoftTransparentShadow-D6ZvWsNy.js +4 -0
  481. package/public/assets/shadowMapFragmentSoftTransparentShadow-D6ZvWsNy.js.br +0 -0
  482. package/public/assets/shadowMapFragmentSoftTransparentShadow-D6ZvWsNy.js.gz +0 -0
  483. package/public/assets/sharpen.fragment-CI40r28S.js +8 -0
  484. package/public/assets/sharpen.fragment-CI40r28S.js.br +0 -0
  485. package/public/assets/sharpen.fragment-CI40r28S.js.gz +0 -0
  486. package/public/assets/textureMerger.fragment-BGsvQGn5.js +84 -0
  487. package/public/assets/textureMerger.fragment-BGsvQGn5.js.br +0 -0
  488. package/public/assets/textureMerger.fragment-BGsvQGn5.js.gz +0 -0
  489. package/public/assets/textureMerger.fragment-Q7yPwkGt.js +76 -0
  490. package/public/assets/textureMerger.fragment-Q7yPwkGt.js.br +0 -0
  491. package/public/assets/textureMerger.fragment-Q7yPwkGt.js.gz +0 -0
  492. package/public/assets/tgaTextureLoader-D7Pjisvo.js +1 -0
  493. package/public/assets/tgaTextureLoader-D7Pjisvo.js.br +0 -0
  494. package/public/assets/tgaTextureLoader-D7Pjisvo.js.gz +0 -0
  495. package/public/assets/vertexColorMixing-CwuEx4gP.js +20 -0
  496. package/public/assets/vertexColorMixing-CwuEx4gP.js.br +0 -0
  497. package/public/assets/vertexColorMixing-CwuEx4gP.js.gz +0 -0
  498. package/public/assets/vertexColorMixing-DRlcGbEu.js +24 -0
  499. package/public/assets/vertexColorMixing-DRlcGbEu.js.br +2 -0
  500. package/public/assets/vertexColorMixing-DRlcGbEu.js.gz +0 -0
  501. package/public/assets/volumetricLightingBlendVolume.fragment-0VKaEyya.js +12 -0
  502. package/public/assets/volumetricLightingBlendVolume.fragment-0VKaEyya.js.br +0 -0
  503. package/public/assets/volumetricLightingBlendVolume.fragment-0VKaEyya.js.gz +0 -0
  504. package/public/assets/volumetricLightingBlendVolume.fragment-BZLjMggm.js +11 -0
  505. package/public/assets/volumetricLightingBlendVolume.fragment-BZLjMggm.js.br +0 -0
  506. package/public/assets/volumetricLightingBlendVolume.fragment-BZLjMggm.js.gz +0 -0
  507. package/public/assets/volumetricLightingRenderVolume.fragment-6GAsdyvE.js +15 -0
  508. package/public/assets/volumetricLightingRenderVolume.fragment-6GAsdyvE.js.br +0 -0
  509. package/public/assets/volumetricLightingRenderVolume.fragment-6GAsdyvE.js.gz +0 -0
  510. package/public/assets/volumetricLightingRenderVolume.fragment-Da_DpfG1.js +13 -0
  511. package/public/assets/volumetricLightingRenderVolume.fragment-Da_DpfG1.js.br +0 -0
  512. package/public/assets/volumetricLightingRenderVolume.fragment-Da_DpfG1.js.gz +0 -0
  513. package/public/assets/volumetricLightingRenderVolume.vertex-BdVFX-tC.js +4 -0
  514. package/public/assets/volumetricLightingRenderVolume.vertex-BdVFX-tC.js.br +0 -0
  515. package/public/assets/volumetricLightingRenderVolume.vertex-BdVFX-tC.js.gz +0 -0
  516. package/public/assets/volumetricLightingRenderVolume.vertex-DO-VIhJn.js +5 -0
  517. package/public/assets/volumetricLightingRenderVolume.vertex-DO-VIhJn.js.br +0 -0
  518. package/public/assets/volumetricLightingRenderVolume.vertex-DO-VIhJn.js.gz +0 -0
  519. package/public/assets/webAudioBus-BkMWEG1L.js +1 -0
  520. package/public/assets/webAudioBus-BkMWEG1L.js.br +0 -0
  521. package/public/assets/webAudioBus-BkMWEG1L.js.gz +0 -0
  522. package/public/assets/webAudioMainBus-DYcQXAkm.js +1 -0
  523. package/public/assets/webAudioMainBus-DYcQXAkm.js.br +0 -0
  524. package/public/assets/webAudioMainBus-DYcQXAkm.js.gz +0 -0
  525. package/public/assets/workerPool-H9Ji3mCo.js +1 -0
  526. package/public/assets/workerPool-H9Ji3mCo.js.br +2 -0
  527. package/public/assets/workerPool-H9Ji3mCo.js.gz +0 -0
  528. package/public/index.html +21 -0
  529. package/public/index.html.br +0 -0
  530. package/public/index.html.gz +0 -0
  531. package/runtime/editor-control-plane.mjs +5 -0
  532. package/runtime/runtime-debug-authoring-bridge.mjs +1 -0
  533. package/worker/editor-service-worker.mjs +27 -0
@@ -0,0 +1,1202 @@
1
+ import{fr as e}from"./dynamicTexture-Cuby-VOT.js";const d="clusteredLightingFunctions",T=`struct ClusteredLight {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;vec4 vLightDirection;vec4 vLightFalloff;};
2
+ #define inline
3
+ ClusteredLight getClusteredLight(sampler2D lightDataTexture,int index) {return ClusteredLight(
4
+ texelFetch(lightDataTexture,ivec2(0,index),0),
5
+ texelFetch(lightDataTexture,ivec2(1,index),0),
6
+ texelFetch(lightDataTexture,ivec2(2,index),0),
7
+ texelFetch(lightDataTexture,ivec2(3,index),0),
8
+ texelFetch(lightDataTexture,ivec2(4,index),0)
9
+ );}
10
+ int getClusteredSliceIndex(vec2 sliceData,float viewDepth) {return int(log(viewDepth)*sliceData.x+sliceData.y);}
11
+ `;e.IncludesShadersStore[d]||(e.IncludesShadersStore[d]=T);const t="reflectionFunction",g=`vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
12
+ {float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0); }
13
+ vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
14
+ {float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(1.0-s,t,0); }
15
+ vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
16
+ {vec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);vec3 r=normalize(reflect(cameraToVertex,worldNormal));r=vec3(reflectionMatrix*vec4(r,0));float lon=atan(r.z,r.x);float lat=acos(r.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0);}
17
+ vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)
18
+ {vec3 viewDir=normalize(vec3(view*worldPos));vec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));vec3 r=reflect(viewDir,viewNormal);r=vec3(reflectionMatrix*vec4(r,0));r.z=r.z-1.0;float m=2.0*length(r);return vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);}
19
+ vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
20
+ {vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));}
21
+ vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
22
+ {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0));
23
+ #ifdef INVERTCUBICMAP
24
+ coords.y*=-1.0;
25
+ #endif
26
+ return coords;}
27
+ vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)
28
+ {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0));
29
+ #ifdef INVERTCUBICMAP
30
+ coords.y*=-1.0;
31
+ #endif
32
+ return coords;}
33
+ vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)
34
+ {return vec3(reflectionMatrix*(view*worldPos));}
35
+ vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)
36
+ {return vec3(reflectionMatrix*vec4(positionW,1.));}
37
+ #ifdef REFLECTION
38
+ vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)
39
+ {
40
+ #ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
41
+ vec3 direction=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
42
+ #endif
43
+ #ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
44
+ vec3 direction=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
45
+ #endif
46
+ #ifdef REFLECTIONMAP_EQUIRECTANGULAR
47
+ return computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
48
+ #endif
49
+ #ifdef REFLECTIONMAP_SPHERICAL
50
+ return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);
51
+ #endif
52
+ #ifdef REFLECTIONMAP_PLANAR
53
+ return computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
54
+ #endif
55
+ #ifdef REFLECTIONMAP_CUBIC
56
+ #ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
57
+ return computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);
58
+ #else
59
+ return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
60
+ #endif
61
+ #endif
62
+ #ifdef REFLECTIONMAP_PROJECTION
63
+ return computeProjectionCoords(worldPos,view,reflectionMatrix);
64
+ #endif
65
+ #ifdef REFLECTIONMAP_SKYBOX
66
+ return computeSkyBoxCoords(vPositionUVW,reflectionMatrix);
67
+ #endif
68
+ #ifdef REFLECTIONMAP_EXPLICIT
69
+ return vec3(0,0,0);
70
+ #endif
71
+ }
72
+ #endif
73
+ `;e.IncludesShadersStore[t]||(e.IncludesShadersStore[t]=g);const I={name:t,shader:g},G=Object.freeze(Object.defineProperty({__proto__:null,reflectionFunction:I},Symbol.toStringTag,{value:"Module"})),i="lightFragmentDeclaration",w=`#ifdef LIGHT{X}
74
+ uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
75
+ #ifdef SPECULARTERM
76
+ uniform vec4 vLightSpecular{X};
77
+ #else
78
+ vec4 vLightSpecular{X}=vec4(0.);
79
+ #endif
80
+ #ifdef SHADOW{X}
81
+ #ifdef SHADOWCSM{X}
82
+ uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];uniform float cascadeBlendFactor{X};varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
83
+ #if defined(SHADOWPCSS{X})
84
+ uniform highp sampler2DArrayShadow shadowTexture{X};uniform highp sampler2DArray depthTexture{X};uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float penumbraDarkness{X};
85
+ #elif defined(SHADOWPCF{X})
86
+ uniform highp sampler2DArrayShadow shadowTexture{X};
87
+ #else
88
+ uniform highp sampler2DArray shadowTexture{X};
89
+ #endif
90
+ #ifdef SHADOWCSMDEBUG{X}
91
+ const vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]
92
+ (
93
+ vec3 ( 1.5,0.0,0.0 ),
94
+ vec3 ( 0.0,1.5,0.0 ),
95
+ vec3 ( 0.0,0.0,5.5 ),
96
+ vec3 ( 1.5,0.0,5.5 ),
97
+ vec3 ( 1.5,1.5,0.0 ),
98
+ vec3 ( 1.0,1.0,1.0 ),
99
+ vec3 ( 0.0,1.0,5.5 ),
100
+ vec3 ( 0.5,3.5,0.75 )
101
+ );vec3 shadowDebug{X};
102
+ #endif
103
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
104
+ int index{X}=-1;
105
+ #else
106
+ int index{X}=SHADOWCSMNUM_CASCADES{X}-1;
107
+ #endif
108
+ float diff{X}=0.;
109
+ #elif defined(SHADOWCUBE{X})
110
+ uniform samplerCube shadowTexture{X};
111
+ #else
112
+ varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};
113
+ #if defined(SHADOWPCSS{X})
114
+ uniform highp sampler2DShadow shadowTexture{X};uniform highp sampler2D depthTexture{X};
115
+ #elif defined(SHADOWPCF{X})
116
+ uniform highp sampler2DShadow shadowTexture{X};
117
+ #else
118
+ uniform sampler2D shadowTexture{X};
119
+ #endif
120
+ uniform mat4 lightMatrix{X};
121
+ #endif
122
+ uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
123
+ #endif
124
+ #ifdef SPOTLIGHT{X}
125
+ uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
126
+ #elif defined(POINTLIGHT{X})
127
+ uniform vec4 vLightFalloff{X};
128
+ #elif defined(HEMILIGHT{X})
129
+ uniform vec3 vLightGround{X};
130
+ #endif
131
+ #ifdef AREALIGHT{X}
132
+ uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
133
+ #ifdef RECTAREALIGHTEMISSIONTEXTURE{X}
134
+ uniform sampler2D rectAreaLightEmissionTexture{X};
135
+ #endif
136
+ #endif
137
+ #ifdef IESLIGHTTEXTURE{X}
138
+ uniform sampler2D iesLightTexture{X};
139
+ #endif
140
+ #ifdef PROJECTEDLIGHTTEXTURE{X}
141
+ uniform mat4 textureProjectionMatrix{X};uniform sampler2D projectionLightTexture{X};
142
+ #endif
143
+ #ifdef CLUSTLIGHT{X}
144
+ uniform vec2 vSliceData{X};uniform vec2 vSliceRanges{X}[CLUSTLIGHT_SLICES];uniform sampler2D lightDataTexture{X};uniform highp sampler2D tileMaskTexture{X};
145
+ #endif
146
+ #endif
147
+ `;e.IncludesShadersStore[i]||(e.IncludesShadersStore[i]=w);const A={name:i,shader:w},B=Object.freeze(Object.defineProperty({__proto__:null,lightFragmentDeclaration:A},Symbol.toStringTag,{value:"Module"})),o="lightUboDeclaration",D=`#ifdef LIGHT{X}
148
+ uniform Light{X}
149
+ {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;
150
+ #ifdef SPOTLIGHT{X}
151
+ vec4 vLightDirection;vec4 vLightFalloff;
152
+ #elif defined(POINTLIGHT{X})
153
+ vec4 vLightFalloff;
154
+ #elif defined(HEMILIGHT{X})
155
+ vec3 vLightGround;
156
+ #elif defined(CLUSTLIGHT{X})
157
+ vec2 vSliceData;vec2 vSliceRanges[CLUSTLIGHT_SLICES];
158
+ #endif
159
+ #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
160
+ vec4 vLightWidth;vec4 vLightHeight;
161
+ #endif
162
+ vec4 shadowsInfo;vec2 depthValues;} light{X};
163
+ #ifdef IESLIGHTTEXTURE{X}
164
+ uniform sampler2D iesLightTexture{X};
165
+ #endif
166
+ #ifdef RECTAREALIGHTEMISSIONTEXTURE{X}
167
+ uniform sampler2D rectAreaLightEmissionTexture{X};
168
+ #endif
169
+ #ifdef PROJECTEDLIGHTTEXTURE{X}
170
+ uniform mat4 textureProjectionMatrix{X};uniform sampler2D projectionLightTexture{X};
171
+ #endif
172
+ #ifdef CLUSTLIGHT{X}
173
+ uniform sampler2D lightDataTexture{X};uniform highp sampler2D tileMaskTexture{X};
174
+ #endif
175
+ #ifdef SHADOW{X}
176
+ #ifdef SHADOWCSM{X}
177
+ uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];uniform float cascadeBlendFactor{X};varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
178
+ #if defined(SHADOWPCSS{X})
179
+ uniform highp sampler2DArrayShadow shadowTexture{X};uniform highp sampler2DArray depthTexture{X};uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float penumbraDarkness{X};
180
+ #elif defined(SHADOWPCF{X})
181
+ uniform highp sampler2DArrayShadow shadowTexture{X};
182
+ #else
183
+ uniform highp sampler2DArray shadowTexture{X};
184
+ #endif
185
+ #ifdef SHADOWCSMDEBUG{X}
186
+ const vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]
187
+ (
188
+ vec3 ( 1.5,0.0,0.0 ),
189
+ vec3 ( 0.0,1.5,0.0 ),
190
+ vec3 ( 0.0,0.0,5.5 ),
191
+ vec3 ( 1.5,0.0,5.5 ),
192
+ vec3 ( 1.5,1.5,0.0 ),
193
+ vec3 ( 1.0,1.0,1.0 ),
194
+ vec3 ( 0.0,1.0,5.5 ),
195
+ vec3 ( 0.5,3.5,0.75 )
196
+ );vec3 shadowDebug{X};
197
+ #endif
198
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
199
+ int index{X}=-1;
200
+ #else
201
+ int index{X}=SHADOWCSMNUM_CASCADES{X}-1;
202
+ #endif
203
+ float diff{X}=0.;
204
+ #elif defined(SHADOWCUBE{X})
205
+ uniform samplerCube shadowTexture{X};
206
+ #else
207
+ varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};
208
+ #if defined(SHADOWPCSS{X})
209
+ uniform highp sampler2DShadow shadowTexture{X};uniform highp sampler2D depthTexture{X};
210
+ #elif defined(SHADOWPCF{X})
211
+ uniform highp sampler2DShadow shadowTexture{X};
212
+ #else
213
+ uniform sampler2D shadowTexture{X};
214
+ #endif
215
+ uniform mat4 lightMatrix{X};
216
+ #endif
217
+ #endif
218
+ #endif
219
+ `;e.IncludesShadersStore[o]||(e.IncludesShadersStore[o]=D);const P={name:o,shader:D},Y=Object.freeze(Object.defineProperty({__proto__:null,lightUboDeclaration:P},Symbol.toStringTag,{value:"Module"})),f="ltcHelperFunctions",F=`vec2 LTCUv( const in vec3 N,const in vec3 V,const in float roughness ) {const float LUTSIZE=64.0;const float LUTSCALE=( LUTSIZE-1.0 )/LUTSIZE;const float LUTBIAS=0.5/LUTSIZE;float dotNV=saturate( dot( N,V ) );vec2 uv=vec2( roughness,sqrt( 1.0-dotNV ) );uv=uv*LUTSCALE+LUTBIAS;return uv;}
220
+ float LTCClippedSphereFormFactor( const in vec3 f ) {float l=length( f );return max( ( l*l+f.z )/( l+1.0 ),0.0 );}
221
+ vec3 LTCEdgeVectorFormFactor( const in vec3 v1,const in vec3 v2 ) {float x=dot( v1,v2 );float y=abs( x );float a=0.8543985+( 0.4965155+0.0145206*y )*y;float b=3.4175940+( 4.1616724+y )*y;float v=a/b;float thetaSintheta=0.0;if( x>0.0 )
222
+ {thetaSintheta=v;}
223
+ else
224
+ {thetaSintheta=0.5*inversesqrt( max( 1.0-x*x,1e-7 ) )-v;}
225
+ return cross( v1,v2 )*thetaSintheta;}
226
+ vec3 LTCEvaluate( const in vec3 N,const in vec3 V,const in vec3 P,const in mat3 mInv,const in vec3 rectCoords[ 4 ] ) {vec3 v1=rectCoords[ 1 ]-rectCoords[ 0 ];vec3 v2=rectCoords[ 3 ]-rectCoords[ 0 ];vec3 lightNormal=cross( v1,v2 );if( dot( lightNormal,P-rectCoords[ 0 ] )<0.0 ) return vec3( 0.0 );vec3 T1,T2;T1=normalize( V-N*dot( V,N ) );T2=- cross( N,T1 );
227
+ mat3 mat=mInv*transposeMat3( mat3( T1,T2,N ) );vec3 coords[ 4 ];coords[ 0 ]=mat*( rectCoords[ 0 ]-P );coords[ 1 ]=mat*( rectCoords[ 1 ]-P );coords[ 2 ]=mat*( rectCoords[ 2 ]-P );coords[ 3 ]=mat*( rectCoords[ 3 ]-P );coords[ 0 ]=normalize( coords[ 0 ] );coords[ 1 ]=normalize( coords[ 1 ] );coords[ 2 ]=normalize( coords[ 2 ] );coords[ 3 ]=normalize( coords[ 3 ] );vec3 vectorFormFactor=vec3( 0.0 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 0 ],coords[ 1 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 1 ],coords[ 2 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 2 ],coords[ 3 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 3 ],coords[ 0 ] );float result=LTCClippedSphereFormFactor( vectorFormFactor );return vec3( result );}
228
+ vec3 FetchDiffuseFilteredTexture(sampler2D texLightFiltered,vec3 p1_,vec3 p2_,vec3 p3_,vec3 p4_)
229
+ {vec3 V1=p2_-p1_;vec3 V2=p4_-p1_;vec3 planeOrtho=(cross(V1,V2));float planeAreaSquared=dot(planeOrtho,planeOrtho);float planeDistxPlaneArea=dot(planeOrtho,p1_);vec3 P=planeDistxPlaneArea*planeOrtho/planeAreaSquared-p1_;float dot_V1_V2=dot(V1,V2);float inv_dot_V1_V1=1.0/dot(V1,V1);vec3 V2_=V2-V1*dot_V1_V2*inv_dot_V1_V1;vec2 Puv;Puv.y=dot(V2_,P)/dot(V2_,V2_);Puv.x=dot(V1,P)*inv_dot_V1_V1-dot_V1_V2*inv_dot_V1_V1*Puv.y ;float d=abs(planeDistxPlaneArea)/pow(planeAreaSquared,0.75);float sampleLOD=log(2048.0*d)/log(3.0);vec2 sampleUV=vec2(0.125,0.125)+(vec2(0.75)*Puv);sampleUV.x=1.0-sampleUV.x;return texture2DLodEXT(texLightFiltered,sampleUV,sampleLOD).rgb;}
230
+ vec3 LTCEvaluateWithEmission( const in vec3 N,const in vec3 V,const in vec3 P,const in mat3 mInv,const in vec3 rectCoords[ 4 ],const in sampler2D texFilteredMap ) {vec3 v1=rectCoords[ 1 ]-rectCoords[ 0 ];vec3 v2=rectCoords[ 3 ]-rectCoords[ 0 ];vec3 lightNormal=cross( v1,v2 );if( dot( lightNormal,P-rectCoords[ 0 ] )<0.0 ) return vec3( 0.0 );vec3 T1,T2;T1=normalize( V-N*dot( V,N ) );T2=- cross( N,T1 );
231
+ mat3 mat=mInv*transposeMat3( mat3( T1,T2,N ) );vec3 coords[ 4 ];coords[ 0 ]=mat*( rectCoords[ 0 ]-P );coords[ 1 ]=mat*( rectCoords[ 1 ]-P );coords[ 2 ]=mat*( rectCoords[ 2 ]-P );coords[ 3 ]=mat*( rectCoords[ 3 ]-P );vec3 textureLight=FetchDiffuseFilteredTexture(texFilteredMap,coords[0],coords[1],coords[2],coords[3]);coords[ 0 ]=normalize( coords[ 0 ] );coords[ 1 ]=normalize( coords[ 1 ] );coords[ 2 ]=normalize( coords[ 2 ] );coords[ 3 ]=normalize( coords[ 3 ] );vec3 vectorFormFactor=vec3( 0.0 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 0 ],coords[ 1 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 1 ],coords[ 2 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 2 ],coords[ 3 ] );vectorFormFactor+=LTCEdgeVectorFormFactor( coords[ 3 ],coords[ 0 ] );float result=LTCClippedSphereFormFactor( vectorFormFactor );return vec3( result )*textureLight;}
232
+ struct areaLightData
233
+ {vec3 Diffuse;vec3 Specular;vec4 Fresnel;};
234
+ #define inline
235
+ areaLightData computeAreaLightSpecularDiffuseFresnel(const in sampler2D ltc1,const in sampler2D ltc2,const in vec3 viewDir,const in vec3 normal,const in vec3 position,const in vec3 lightPos,const in vec3 halfWidth,const in vec3 halfHeight,const in float roughness)
236
+ {areaLightData result;vec3 rectCoords[ 4 ];rectCoords[ 0 ]=lightPos+halfWidth-halfHeight;
237
+ rectCoords[ 1 ]=lightPos-halfWidth-halfHeight;rectCoords[ 2 ]=lightPos-halfWidth+halfHeight;rectCoords[ 3 ]=lightPos+halfWidth+halfHeight;
238
+ #ifdef SPECULARTERM
239
+ vec2 uv=LTCUv( normal,viewDir,roughness );vec4 t1=texture2D( ltc1,uv );vec4 t2=texture2D( ltc2,uv );mat3 mInv=mat3(
240
+ vec3( t1.x,0,t1.y ),
241
+ vec3( 0,1, 0 ),
242
+ vec3( t1.z,0,t1.w )
243
+ );result.Specular=LTCEvaluate( normal,viewDir,position,mInv,rectCoords );result.Fresnel=t2;
244
+ #endif
245
+ result.Diffuse=LTCEvaluate( normal,viewDir,position,mat3( 1.0 ),rectCoords );return result;}
246
+ #define inline
247
+ areaLightData computeAreaLightSpecularDiffuseFresnelWithEmission(const in sampler2D ltc1,const in sampler2D ltc2,const in sampler2D texFilteredMap,const in vec3 viewDir,const in vec3 normal,const in vec3 position,const in vec3 lightPos,const in vec3 halfWidth,const in vec3 halfHeight,const in float roughness)
248
+ {areaLightData result;vec3 rectCoords[ 4 ];rectCoords[ 0 ]=lightPos+halfWidth-halfHeight;
249
+ rectCoords[ 1 ]=lightPos-halfWidth-halfHeight;rectCoords[ 2 ]=lightPos-halfWidth+halfHeight;rectCoords[ 3 ]=lightPos+halfWidth+halfHeight;
250
+ #ifdef SPECULARTERM
251
+ vec2 uv=LTCUv( normal,viewDir,roughness );vec4 t1=texture2D( ltc1,uv );vec4 t2=texture2D( ltc2,uv );mat3 mInv=mat3(
252
+ vec3( t1.x,0,t1.y ),
253
+ vec3( 0,1, 0 ),
254
+ vec3( t1.z,0,t1.w )
255
+ );result.Specular=LTCEvaluateWithEmission( normal,viewDir,position,mInv,rectCoords,texFilteredMap );result.Fresnel=t2;
256
+ #endif
257
+ result.Diffuse=LTCEvaluateWithEmission( normal,viewDir,position,mat3( 1.0 ),rectCoords,texFilteredMap );return result;}`;e.IncludesShadersStore[f]||(e.IncludesShadersStore[f]=F);const a="shadowsFragmentFunctions",L=`#ifdef SHADOWS
258
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
259
+ #define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)
260
+ #else
261
+ #define TEXTUREFUNC(s,c,b) texture2D(s,c,b)
262
+ #endif
263
+ #ifndef SHADOWFLOAT
264
+ float unpack(vec4 color)
265
+ {const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}
266
+ #endif
267
+ float computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff)
268
+ {float mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}
269
+ #define inline
270
+ float computeShadowCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues)
271
+ {vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
272
+ #ifndef SHADOWFLOAT
273
+ float shadow=unpack(textureCube(shadowSampler,directionToLight));
274
+ #else
275
+ float shadow=textureCube(shadowSampler,directionToLight).x;
276
+ #endif
277
+ return depth>shadow ? darkness : 1.0;}
278
+ #define inline
279
+ float computeShadowWithPoissonSamplingCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues)
280
+ {vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;float visibility=1.;vec3 poissonDisk[4];poissonDisk[0]=vec3(-1.0,1.0,-1.0);poissonDisk[1]=vec3(1.0,-1.0,-1.0);poissonDisk[2]=vec3(-1.0,-1.0,-1.0);poissonDisk[3]=vec3(1.0,-1.0,1.0);
281
+ #ifndef SHADOWFLOAT
282
+ if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth) visibility-=0.25;if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth) visibility-=0.25;if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth) visibility-=0.25;if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth) visibility-=0.25;
283
+ #else
284
+ if (textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth) visibility-=0.25;if (textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth) visibility-=0.25;if (textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth) visibility-=0.25;if (textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth) visibility-=0.25;
285
+ #endif
286
+ return min(1.0,visibility+darkness);}
287
+ #define inline
288
+ float computeShadowWithESMCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,float depthScale,vec2 depthValues)
289
+ {vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);float shadowPixelDepth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
290
+ #ifndef SHADOWFLOAT
291
+ float shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));
292
+ #else
293
+ float shadowMapSample=textureCube(shadowSampler,directionToLight).x;
294
+ #endif
295
+ float esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return esm;}
296
+ #define inline
297
+ float computeShadowWithCloseESMCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,float depthScale,vec2 depthValues)
298
+ {vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);float shadowPixelDepth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
299
+ #ifndef SHADOWFLOAT
300
+ float shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));
301
+ #else
302
+ float shadowMapSample=textureCube(shadowSampler,directionToLight).x;
303
+ #endif
304
+ float esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return esm;}
305
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
306
+ #define inline
307
+ float computeShadowCSM(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray shadowSampler,float darkness,float frustumEdgeFalloff)
308
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);vec3 uvLayer=vec3(uv.x,uv.y,layer);float shadowPixelDepth=clamp(depthMetric,0.,1.0);
309
+ #ifndef SHADOWFLOAT
310
+ float shadow=unpack(texture2D(shadowSampler,uvLayer));
311
+ #else
312
+ float shadow=texture2D(shadowSampler,uvLayer).x;
313
+ #endif
314
+ return shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;}
315
+ #endif
316
+ #define inline
317
+ float computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff)
318
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
319
+ {return 1.0;}
320
+ else
321
+ {float shadowPixelDepth=clamp(depthMetric,0.,1.0);
322
+ #ifndef SHADOWFLOAT
323
+ float shadow=unpack(TEXTUREFUNC(shadowSampler,uv,0.));
324
+ #else
325
+ float shadow=TEXTUREFUNC(shadowSampler,uv,0.).x;
326
+ #endif
327
+ return shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;}}
328
+ #define inline
329
+ float computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff)
330
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
331
+ {return 1.0;}
332
+ else
333
+ {float shadowPixelDepth=clamp(depthMetric,0.,1.0);float visibility=1.;vec2 poissonDisk[4];poissonDisk[0]=vec2(-0.94201624,-0.39906216);poissonDisk[1]=vec2(0.94558609,-0.76890725);poissonDisk[2]=vec2(-0.094184101,-0.92938870);poissonDisk[3]=vec2(0.34495938,0.29387760);
334
+ #ifndef SHADOWFLOAT
335
+ if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;if (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth) visibility-=0.25;
336
+ #else
337
+ if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;if (TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth) visibility-=0.25;
338
+ #endif
339
+ return computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);}}
340
+ #define inline
341
+ float computeShadowWithESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)
342
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
343
+ {return 1.0;}
344
+ else
345
+ {float shadowPixelDepth=clamp(depthMetric,0.,1.0);
346
+ #ifndef SHADOWFLOAT
347
+ float shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));
348
+ #else
349
+ float shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;
350
+ #endif
351
+ float esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
352
+ #define inline
353
+ float computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)
354
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
355
+ {return 1.0;}
356
+ else
357
+ {float shadowPixelDepth=clamp(depthMetric,0.,1.0);
358
+ #ifndef SHADOWFLOAT
359
+ float shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));
360
+ #else
361
+ float shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;
362
+ #endif
363
+ float esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
364
+ #ifdef IS_NDC_HALF_ZRANGE
365
+ #define ZINCLIP clipSpace.z
366
+ #else
367
+ #define ZINCLIP uvDepth.z
368
+ #endif
369
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
370
+ #define SMALLEST_ABOVE_ZERO 1.1754943508e-38
371
+ #define GREATEST_LESS_THAN_ONE 0.99999994
372
+ #define DISABLE_UNIFORMITY_ANALYSIS
373
+ #define inline
374
+ float computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff)
375
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));
376
+ #ifdef USE_REVERSE_DEPTHBUFFER
377
+ uvDepth.z=clamp(ZINCLIP,SMALLEST_ABOVE_ZERO,1.);
378
+ #else
379
+ uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);
380
+ #endif
381
+ vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);float shadow=texture2D(shadowSampler,uvDepthLayer);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
382
+ #define inline
383
+ float computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
384
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));
385
+ #ifdef USE_REVERSE_DEPTHBUFFER
386
+ uvDepth.z=clamp(ZINCLIP,SMALLEST_ABOVE_ZERO,1.);
387
+ #else
388
+ uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);
389
+ #endif
390
+ vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;
391
+ uv+=0.5;
392
+ vec2 st=fract(uv);
393
+ vec2 base_uv=floor(uv)-0.5;
394
+ base_uv*=shadowMapSizeAndInverse.y;
395
+ vec2 uvw0=3.-2.*st;vec2 uvw1=1.+2.*st;vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
396
+ #define inline
397
+ float computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
398
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));
399
+ #ifdef USE_REVERSE_DEPTHBUFFER
400
+ uvDepth.z=clamp(ZINCLIP,SMALLEST_ABOVE_ZERO,1.);
401
+ #else
402
+ uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);
403
+ #endif
404
+ vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;
405
+ uv+=0.5;
406
+ vec2 st=fract(uv);
407
+ vec2 base_uv=floor(uv)-0.5;
408
+ base_uv*=shadowMapSizeAndInverse.y;
409
+ vec2 uvw0=4.-3.*st;vec2 uvw1=vec2(7.);vec2 uvw2=1.+3.*st;vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));shadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));shadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));shadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));shadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));shadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
410
+ #define inline
411
+ float computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff)
412
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;if (depthMetric<0.0 || depthMetric>1.0 || uvDepth.x<0. || uvDepth.x>1.0 || uvDepth.y<0. || uvDepth.y>1.0) {return 1.0;} else {float shadow=TEXTUREFUNC(shadowSampler,uvDepth,0.);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
413
+ #define inline
414
+ float computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
415
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;if (depthMetric<0.0 || depthMetric>1.0 || uvDepth.x<0. || uvDepth.x>1.0 || uvDepth.y<0. || uvDepth.y>1.0) {return 1.0;} else {vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;
416
+ uv+=0.5;
417
+ vec2 st=fract(uv);
418
+ vec2 base_uv=floor(uv)-0.5;
419
+ base_uv*=shadowMapSizeAndInverse.y;
420
+ vec2 uvw0=3.-2.*st;vec2 uvw1=1.+2.*st;vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);shadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);shadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);shadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
421
+ #define inline
422
+ float computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)
423
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;if (depthMetric<0.0 || depthMetric>1.0 || uvDepth.x<0. || uvDepth.x>1.0 || uvDepth.y<0. || uvDepth.y>1.0) {return 1.0;} else {vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;
424
+ uv+=0.5;
425
+ vec2 st=fract(uv);
426
+ vec2 base_uv=floor(uv)-0.5;
427
+ base_uv*=shadowMapSizeAndInverse.y;
428
+ vec2 uvw0=4.-3.*st;vec2 uvw1=vec2(7.);vec2 uvw2=1.+3.*st;vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);shadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);shadow+=uvw2.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z),0.);shadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);shadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);shadow+=uvw2.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z),0.);shadow+=uvw0.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z),0.);shadow+=uvw1.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z),0.);shadow+=uvw2.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z),0.);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
429
+ const vec3 PoissonSamplers32[64]=vec3[64](
430
+ vec3(0.06407013,0.05409927,0.),
431
+ vec3(0.7366577,0.5789394,0.),
432
+ vec3(-0.6270542,-0.5320278,0.),
433
+ vec3(-0.4096107,0.8411095,0.),
434
+ vec3(0.6849564,-0.4990818,0.),
435
+ vec3(-0.874181,-0.04579735,0.),
436
+ vec3(0.9989998,0.0009880066,0.),
437
+ vec3(-0.004920578,-0.9151649,0.),
438
+ vec3(0.1805763,0.9747483,0.),
439
+ vec3(-0.2138451,0.2635818,0.),
440
+ vec3(0.109845,0.3884785,0.),
441
+ vec3(0.06876755,-0.3581074,0.),
442
+ vec3(0.374073,-0.7661266,0.),
443
+ vec3(0.3079132,-0.1216763,0.),
444
+ vec3(-0.3794335,-0.8271583,0.),
445
+ vec3(-0.203878,-0.07715034,0.),
446
+ vec3(0.5912697,0.1469799,0.),
447
+ vec3(-0.88069,0.3031784,0.),
448
+ vec3(0.5040108,0.8283722,0.),
449
+ vec3(-0.5844124,0.5494877,0.),
450
+ vec3(0.6017799,-0.1726654,0.),
451
+ vec3(-0.5554981,0.1559997,0.),
452
+ vec3(-0.3016369,-0.3900928,0.),
453
+ vec3(-0.5550632,-0.1723762,0.),
454
+ vec3(0.925029,0.2995041,0.),
455
+ vec3(-0.2473137,0.5538505,0.),
456
+ vec3(0.9183037,-0.2862392,0.),
457
+ vec3(0.2469421,0.6718712,0.),
458
+ vec3(0.3916397,-0.4328209,0.),
459
+ vec3(-0.03576927,-0.6220032,0.),
460
+ vec3(-0.04661255,0.7995201,0.),
461
+ vec3(0.4402924,0.3640312,0.),
462
+ vec3(0.),
463
+ vec3(0.),
464
+ vec3(0.),
465
+ vec3(0.),
466
+ vec3(0.),
467
+ vec3(0.),
468
+ vec3(0.),
469
+ vec3(0.),
470
+ vec3(0.),
471
+ vec3(0.),
472
+ vec3(0.),
473
+ vec3(0.),
474
+ vec3(0.),
475
+ vec3(0.),
476
+ vec3(0.),
477
+ vec3(0.),
478
+ vec3(0.),
479
+ vec3(0.),
480
+ vec3(0.),
481
+ vec3(0.),
482
+ vec3(0.),
483
+ vec3(0.),
484
+ vec3(0.),
485
+ vec3(0.),
486
+ vec3(0.),
487
+ vec3(0.),
488
+ vec3(0.),
489
+ vec3(0.),
490
+ vec3(0.),
491
+ vec3(0.),
492
+ vec3(0.),
493
+ vec3(0.)
494
+ );const vec3 PoissonSamplers64[64]=vec3[64](
495
+ vec3(-0.613392,0.617481,0.),
496
+ vec3(0.170019,-0.040254,0.),
497
+ vec3(-0.299417,0.791925,0.),
498
+ vec3(0.645680,0.493210,0.),
499
+ vec3(-0.651784,0.717887,0.),
500
+ vec3(0.421003,0.027070,0.),
501
+ vec3(-0.817194,-0.271096,0.),
502
+ vec3(-0.705374,-0.668203,0.),
503
+ vec3(0.977050,-0.108615,0.),
504
+ vec3(0.063326,0.142369,0.),
505
+ vec3(0.203528,0.214331,0.),
506
+ vec3(-0.667531,0.326090,0.),
507
+ vec3(-0.098422,-0.295755,0.),
508
+ vec3(-0.885922,0.215369,0.),
509
+ vec3(0.566637,0.605213,0.),
510
+ vec3(0.039766,-0.396100,0.),
511
+ vec3(0.751946,0.453352,0.),
512
+ vec3(0.078707,-0.715323,0.),
513
+ vec3(-0.075838,-0.529344,0.),
514
+ vec3(0.724479,-0.580798,0.),
515
+ vec3(0.222999,-0.215125,0.),
516
+ vec3(-0.467574,-0.405438,0.),
517
+ vec3(-0.248268,-0.814753,0.),
518
+ vec3(0.354411,-0.887570,0.),
519
+ vec3(0.175817,0.382366,0.),
520
+ vec3(0.487472,-0.063082,0.),
521
+ vec3(-0.084078,0.898312,0.),
522
+ vec3(0.488876,-0.783441,0.),
523
+ vec3(0.470016,0.217933,0.),
524
+ vec3(-0.696890,-0.549791,0.),
525
+ vec3(-0.149693,0.605762,0.),
526
+ vec3(0.034211,0.979980,0.),
527
+ vec3(0.503098,-0.308878,0.),
528
+ vec3(-0.016205,-0.872921,0.),
529
+ vec3(0.385784,-0.393902,0.),
530
+ vec3(-0.146886,-0.859249,0.),
531
+ vec3(0.643361,0.164098,0.),
532
+ vec3(0.634388,-0.049471,0.),
533
+ vec3(-0.688894,0.007843,0.),
534
+ vec3(0.464034,-0.188818,0.),
535
+ vec3(-0.440840,0.137486,0.),
536
+ vec3(0.364483,0.511704,0.),
537
+ vec3(0.034028,0.325968,0.),
538
+ vec3(0.099094,-0.308023,0.),
539
+ vec3(0.693960,-0.366253,0.),
540
+ vec3(0.678884,-0.204688,0.),
541
+ vec3(0.001801,0.780328,0.),
542
+ vec3(0.145177,-0.898984,0.),
543
+ vec3(0.062655,-0.611866,0.),
544
+ vec3(0.315226,-0.604297,0.),
545
+ vec3(-0.780145,0.486251,0.),
546
+ vec3(-0.371868,0.882138,0.),
547
+ vec3(0.200476,0.494430,0.),
548
+ vec3(-0.494552,-0.711051,0.),
549
+ vec3(0.612476,0.705252,0.),
550
+ vec3(-0.578845,-0.768792,0.),
551
+ vec3(-0.772454,-0.090976,0.),
552
+ vec3(0.504440,0.372295,0.),
553
+ vec3(0.155736,0.065157,0.),
554
+ vec3(0.391522,0.849605,0.),
555
+ vec3(-0.620106,-0.328104,0.),
556
+ vec3(0.789239,-0.419965,0.),
557
+ vec3(-0.545396,0.538133,0.),
558
+ vec3(-0.178564,-0.596057,0.)
559
+ );
560
+ #define inline
561
+ float computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
562
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));
563
+ #ifdef USE_REVERSE_DEPTHBUFFER
564
+ uvDepth.z=clamp(ZINCLIP,SMALLEST_ABOVE_ZERO,1.);
565
+ #else
566
+ uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);
567
+ #endif
568
+ vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);float blockerDepth=0.0;float sumBlockerDepth=0.0;float numBlocker=0.0;for (int i=0; i<searchTapCount; i ++) {blockerDepth=texture2D(depthSampler,vec3(uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer)).r;if (blockerDepth<depthMetric) {sumBlockerDepth+=blockerDepth;numBlocker++;}}
569
+ float avgBlockerDepth=sumBlockerDepth/numBlocker;float AAOffset=shadowMapSizeInverse*10.;float penumbraRatio=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);vec4 filterRadius=vec4(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);float random=getRand(vPositionFromLight.xy);float rotationAngle=random*3.1415926;vec2 rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));float shadow=0.;for (int i=0; i<pcfTapCount; i++) {vec4 offset=vec4(poissonSamplers[i],0.);offset=vec4(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);shadow+=texture2D(shadowSampler,uvDepthLayer+offset*filterRadius);}
570
+ shadow/=float(pcfTapCount);shadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));shadow=mix(darkness,1.,shadow);if (numBlocker<1.0) {return 1.0;}
571
+ else
572
+ {return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
573
+ #define inline
574
+ float computeShadowWithPCSS(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers)
575
+ {vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;if (depthMetric<0.0 || depthMetric>1.0 || uvDepth.x<0. || uvDepth.x>1.0 || uvDepth.y<0. || uvDepth.y>1.0) {return 1.0;} else {float blockerDepth=0.0;float sumBlockerDepth=0.0;float numBlocker=0.0;for (int i=0; i<searchTapCount; i ++) {blockerDepth=TEXTUREFUNC(depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0.).r;if (blockerDepth<depthMetric) {sumBlockerDepth+=blockerDepth;numBlocker++;}}
576
+ if (numBlocker<1.0) {return 1.0;}
577
+ else
578
+ {float avgBlockerDepth=sumBlockerDepth/numBlocker;float AAOffset=shadowMapSizeInverse*10.;float penumbraRatio=((depthMetric-avgBlockerDepth)+AAOffset);float filterRadius=penumbraRatio*lightSizeUV*shadowMapSizeInverse;float random=getRand(vPositionFromLight.xy);float rotationAngle=random*3.1415926;vec2 rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));float shadow=0.;for (int i=0; i<pcfTapCount; i++) {vec3 offset=poissonSamplers[i];offset=vec3(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);shadow+=TEXTUREFUNC(shadowSampler,uvDepth+offset*filterRadius,0.);}
579
+ shadow/=float(pcfTapCount);shadow=mix(shadow,1.,depthMetric-avgBlockerDepth);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}}
580
+ #define inline
581
+ float computeShadowWithPCSS16(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff)
582
+ {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);}
583
+ #define inline
584
+ float computeShadowWithPCSS32(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff)
585
+ {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);}
586
+ #define inline
587
+ float computeShadowWithPCSS64(vec4 vPositionFromLight,float depthMetric,sampler2D depthSampler,highp sampler2DShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff)
588
+ {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);}
589
+ #define inline
590
+ float computeShadowWithCSMPCSS16(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
591
+ {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
592
+ #define inline
593
+ float computeShadowWithCSMPCSS32(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
594
+ {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
595
+ #define inline
596
+ float computeShadowWithCSMPCSS64(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)
597
+ {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
598
+ #endif
599
+ #endif
600
+ `;e.IncludesShadersStore[a]||(e.IncludesShadersStore[a]=L);const y={name:a,shader:L},$=Object.freeze(Object.defineProperty({__proto__:null,shadowsFragmentFunctions:y},Symbol.toStringTag,{value:"Module"})),r="lightFragment",X=`#ifdef LIGHT{X}
601
+ #if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
602
+ #else
603
+ vec4 diffuse{X}=light{X}.vLightDiffuse;
604
+ #define CUSTOM_LIGHT{X}_COLOR
605
+ #if defined(PBR) && defined(CLUSTLIGHT{X}) && defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0
606
+ {int sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(
607
+ lightDataTexture{X},
608
+ tileMaskTexture{X},
609
+ light{X}.vLightData,
610
+ ivec2(light{X}.vSliceRanges[sliceIndex]),
611
+ viewDirectionW,
612
+ normalW,
613
+ vPositionW,
614
+ surfaceAlbedo,
615
+ reflectivityOut
616
+ #ifdef IRIDESCENCE
617
+ ,iridescenceIntensity
618
+ #endif
619
+ #ifdef SS_TRANSLUCENCY
620
+ ,subSurfaceOut
621
+ #endif
622
+ #ifdef SPECULARTERM
623
+ ,AARoughnessFactors.x
624
+ #endif
625
+ #ifdef ANISOTROPIC
626
+ ,anisotropicOut
627
+ #endif
628
+ #ifdef SHEEN
629
+ ,sheenOut
630
+ #endif
631
+ #ifdef CLEARCOAT
632
+ ,clearcoatOut
633
+ #endif
634
+ );}
635
+ #elif defined(PBR)
636
+ #ifdef SPOTLIGHT{X}
637
+ preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,vPositionW);
638
+ #elif defined(POINTLIGHT{X})
639
+ preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,vPositionW);
640
+ #elif defined(HEMILIGHT{X})
641
+ preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
642
+ #elif defined(DIRLIGHT{X})
643
+ preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
644
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
645
+ #if defined(RECTAREALIGHTEMISSIONTEXTURE{X})
646
+ preInfo=computeAreaPreLightingInfoWithTexture(areaLightsLTC1Sampler,areaLightsLTC2Sampler,rectAreaLightEmissionTexture{X},viewDirectionW,normalW,vPositionW,light{X}.vLightData,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
647
+ #else
648
+ preInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC2Sampler,viewDirectionW,normalW,vPositionW,light{X}.vLightData,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
649
+ #endif
650
+ #endif
651
+ preInfo.NdotV=NdotV;
652
+ #ifdef SPOTLIGHT{X}
653
+ #ifdef LIGHT_FALLOFF_GLTF{X}
654
+ preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
655
+ #ifdef IESLIGHTTEXTURE{X}
656
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
657
+ #else
658
+ preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
659
+ #endif
660
+ #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
661
+ preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
662
+ #ifdef IESLIGHTTEXTURE{X}
663
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
664
+ #else
665
+ preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
666
+ #endif
667
+ #elif defined(LIGHT_FALLOFF_STANDARD{X})
668
+ preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
669
+ #ifdef IESLIGHTTEXTURE{X}
670
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
671
+ #else
672
+ preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);
673
+ #endif
674
+ #else
675
+ preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
676
+ #ifdef IESLIGHTTEXTURE{X}
677
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});
678
+ #else
679
+ preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
680
+ #endif
681
+ #endif
682
+ #elif defined(POINTLIGHT{X})
683
+ #ifdef LIGHT_FALLOFF_GLTF{X}
684
+ preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
685
+ #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
686
+ preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
687
+ #elif defined(LIGHT_FALLOFF_STANDARD{X})
688
+ preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
689
+ #else
690
+ preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
691
+ #endif
692
+ #else
693
+ preInfo.attenuation=1.0;
694
+ #endif
695
+ #if defined(HEMILIGHT{X})
696
+ preInfo.roughness=roughness;
697
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
698
+ preInfo.roughness=roughness;
699
+ #else
700
+ preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
701
+ #endif
702
+ preInfo.diffuseRoughness=diffuseRoughness;preInfo.surfaceAlbedo=surfaceAlbedo;
703
+ #ifdef IRIDESCENCE
704
+ preInfo.iridescenceIntensity=iridescenceIntensity;
705
+ #endif
706
+ #ifdef SS_TRANSLUCENCY
707
+ info.diffuseTransmission=vec3(0.0);
708
+ #endif
709
+ #ifdef HEMILIGHT{X}
710
+ info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
711
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
712
+ info.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);
713
+ #elif defined(SS_TRANSLUCENCY)
714
+ #ifndef SS_TRANSLUCENCY_LEGACY
715
+ info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb)*(1.0-subSurfaceOut.translucencyIntensity);info.diffuseTransmission=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
716
+ #else
717
+ info.diffuse=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
718
+ #endif
719
+ #else
720
+ info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
721
+ #endif
722
+ #ifdef SPECULARTERM
723
+ #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
724
+ info.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);
725
+ #else
726
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
727
+ {vec3 metalFresnel=reflectivityOut.specularWeight*getF82Specular(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90,reflectivityOut.roughness);vec3 dielectricFresnel=fresnelSchlickGGX(preInfo.VdotH,reflectivityOut.dielectricColorF0,reflectivityOut.colorReflectanceF90);coloredFresnel=mix(dielectricFresnel,metalFresnel,reflectivityOut.metallic);}
728
+ #else
729
+ coloredFresnel=fresnelSchlickGGX(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);
730
+ #endif
731
+ #ifndef LEGACY_SPECULAR_ENERGY_CONSERVATION
732
+ {float NdotH=dot(normalW,preInfo.H);vec3 fresnel=fresnelSchlickGGX(NdotH,vec3(reflectanceF0),specularEnvironmentR90);info.diffuse*=(vec3(1.0)-fresnel);}
733
+ #endif
734
+ #ifdef ANISOTROPIC
735
+ info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
736
+ #else
737
+ info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,coloredFresnel,AARoughnessFactors.x,diffuse{X}.rgb);
738
+ #endif
739
+ #endif
740
+ #endif
741
+ #ifndef AREALIGHT{X}
742
+ #ifdef SHEEN
743
+ #ifdef SHEEN_LINKWITHALBEDO
744
+ preInfo.roughness=sheenOut.sheenIntensity;
745
+ #else
746
+ #ifdef HEMILIGHT{X}
747
+ preInfo.roughness=sheenOut.sheenRoughness;
748
+ #else
749
+ preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
750
+ #endif
751
+ #endif
752
+ info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
753
+ #endif
754
+ #ifdef CLEARCOAT
755
+ #ifdef HEMILIGHT{X}
756
+ preInfo.roughness=clearcoatOut.clearCoatRoughness;
757
+ #else
758
+ preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
759
+ #endif
760
+ info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
761
+ #ifdef CLEARCOAT_TINT
762
+ absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
763
+ #ifdef SS_TRANSLUCENCY
764
+ info.diffuseTransmission*=absorption;
765
+ #endif
766
+ #ifdef SPECULARTERM
767
+ info.specular*=absorption;
768
+ #endif
769
+ #endif
770
+ info.diffuse*=info.clearCoat.w;
771
+ #ifdef SS_TRANSLUCENCY
772
+ info.diffuseTransmission*=info.clearCoat.w;
773
+ #endif
774
+ #ifdef SPECULARTERM
775
+ info.specular*=info.clearCoat.w;
776
+ #endif
777
+ #ifdef SHEEN
778
+ info.sheen*=info.clearCoat.w;
779
+ #endif
780
+ #endif
781
+ #endif
782
+ #else
783
+ #ifdef SPOTLIGHT{X}
784
+ #ifdef IESLIGHTTEXTURE{X}
785
+ info=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X});
786
+ #else
787
+ info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
788
+ #endif
789
+ #elif defined(HEMILIGHT{X})
790
+ info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
791
+ #elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
792
+ info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
793
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
794
+ #if defined(RECTAREALIGHTEMISSIONTEXTURE{X})
795
+ info=computeAreaLightingWithTexture(areaLightsLTC1Sampler,areaLightsLTC2Sampler,rectAreaLightEmissionTexture{X},viewDirectionW,normalW,vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.rgb,light{X}.vLightHeight.rgb,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
796
+ #ifdef AREALIGHTNOROUGHTNESS
797
+ 0.5
798
+ #else
799
+ vReflectionInfos.y
800
+ #endif
801
+ #else
802
+ info=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC2Sampler,viewDirectionW,normalW,vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.rgb,light{X}.vLightHeight.rgb,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
803
+ #ifdef AREALIGHTNOROUGHTNESS
804
+ 0.5
805
+ #else
806
+ vReflectionInfos.y
807
+ #endif
808
+ #endif
809
+ );
810
+ #elif defined(CLUSTLIGHT{X}) && CLUSTLIGHT_BATCH>0
811
+ {int sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(lightDataTexture{X},tileMaskTexture{X},viewDirectionW,normalW,light{X}.vLightData,ivec2(light{X}.vSliceRanges[sliceIndex]),glossiness);}
812
+ #endif
813
+ #endif
814
+ #ifdef PROJECTEDLIGHTTEXTURE{X}
815
+ info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},textureProjectionMatrix{X},vPositionW);
816
+ #endif
817
+ #endif
818
+ #ifdef SHADOW{X}
819
+ #ifdef SHADOWCSM{X}
820
+ for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++)
821
+ {
822
+ #ifdef SHADOWCSM_RIGHTHANDED{X}
823
+ diff{X}=viewFrustumZ{X}[i]+vPositionFromCamera{X}.z;
824
+ #else
825
+ diff{X}=viewFrustumZ{X}[i]-vPositionFromCamera{X}.z;
826
+ #endif
827
+ if (diff{X}>=0.) {index{X}=i;break;}}
828
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
829
+ if (index{X}>=0)
830
+ #endif
831
+ {
832
+ #if defined(SHADOWPCF{X})
833
+ #if defined(SHADOWLOWQUALITY{X})
834
+ shadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
835
+ #elif defined(SHADOWMEDIUMQUALITY{X})
836
+ shadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
837
+ #else
838
+ shadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
839
+ #endif
840
+ #elif defined(SHADOWPCSS{X})
841
+ #if defined(SHADOWLOWQUALITY{X})
842
+ shadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
843
+ #elif defined(SHADOWMEDIUMQUALITY{X})
844
+ shadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
845
+ #else
846
+ shadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
847
+ #endif
848
+ #else
849
+ shadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
850
+ #endif
851
+ #ifdef SHADOWCSMDEBUG{X}
852
+ shadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];
853
+ #endif
854
+ #ifndef SHADOWCSMNOBLEND{X}
855
+ float frustumLength=frustumLengths{X}[index{X}];float diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)
856
+ {index{X}+=1;float nextShadow=0.;
857
+ #if defined(SHADOWPCF{X})
858
+ #if defined(SHADOWLOWQUALITY{X})
859
+ nextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
860
+ #elif defined(SHADOWMEDIUMQUALITY{X})
861
+ nextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
862
+ #else
863
+ nextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
864
+ #endif
865
+ #elif defined(SHADOWPCSS{X})
866
+ #if defined(SHADOWLOWQUALITY{X})
867
+ nextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
868
+ #elif defined(SHADOWMEDIUMQUALITY{X})
869
+ nextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
870
+ #else
871
+ nextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});
872
+ #endif
873
+ #else
874
+ nextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
875
+ #endif
876
+ shadow=mix(nextShadow,shadow,diffRatio);
877
+ #ifdef SHADOWCSMDEBUG{X}
878
+ shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
879
+ #endif
880
+ }
881
+ #endif
882
+ }
883
+ #elif defined(SHADOWCLOSEESM{X})
884
+ #if defined(SHADOWCUBE{X})
885
+ shadow=computeShadowWithCloseESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
886
+ #else
887
+ shadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
888
+ #endif
889
+ #elif defined(SHADOWESM{X})
890
+ #if defined(SHADOWCUBE{X})
891
+ shadow=computeShadowWithESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
892
+ #else
893
+ shadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
894
+ #endif
895
+ #elif defined(SHADOWPOISSON{X})
896
+ #if defined(SHADOWCUBE{X})
897
+ shadow=computeShadowWithPoissonSamplingCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
898
+ #else
899
+ shadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
900
+ #endif
901
+ #elif defined(SHADOWPCF{X})
902
+ #if defined(SHADOWLOWQUALITY{X})
903
+ shadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
904
+ #elif defined(SHADOWMEDIUMQUALITY{X})
905
+ shadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
906
+ #else
907
+ shadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
908
+ #endif
909
+ #elif defined(SHADOWPCSS{X})
910
+ #if defined(SHADOWLOWQUALITY{X})
911
+ shadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
912
+ #elif defined(SHADOWMEDIUMQUALITY{X})
913
+ shadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
914
+ #else
915
+ shadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
916
+ #endif
917
+ #else
918
+ #if defined(SHADOWCUBE{X})
919
+ shadow=computeShadowCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.depthValues);
920
+ #else
921
+ shadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
922
+ #endif
923
+ #endif
924
+ #ifdef SHADOWONLY
925
+ #ifndef SHADOWINUSE
926
+ #define SHADOWINUSE
927
+ #endif
928
+ globalShadow+=shadow;shadowLightCount+=1.0;
929
+ #endif
930
+ #else
931
+ shadow=1.;
932
+ #endif
933
+ aggShadow+=shadow;numLights+=1.0;
934
+ #ifndef SHADOWONLY
935
+ #ifdef CUSTOMUSERLIGHTING
936
+ diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
937
+ #ifdef SPECULARTERM
938
+ specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
939
+ #endif
940
+ #elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
941
+ diffuseBase+=lightmapColor.rgb*shadow;
942
+ #ifdef SPECULARTERM
943
+ #ifndef LIGHTMAPNOSPECULAR{X}
944
+ specularBase+=info.specular*shadow*lightmapColor.rgb;
945
+ #endif
946
+ #endif
947
+ #ifdef CLEARCOAT
948
+ #ifndef LIGHTMAPNOSPECULAR{X}
949
+ clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
950
+ #endif
951
+ #endif
952
+ #ifdef SHEEN
953
+ #ifndef LIGHTMAPNOSPECULAR{X}
954
+ sheenBase+=info.sheen.rgb*shadow;
955
+ #endif
956
+ #endif
957
+ #else
958
+ #ifdef SHADOWCSMDEBUG{X}
959
+ diffuseBase+=info.diffuse*shadowDebug{X};
960
+ #else
961
+ diffuseBase+=info.diffuse*shadow;
962
+ #endif
963
+ #ifdef SS_TRANSLUCENCY
964
+ diffuseTransmissionBase+=info.diffuseTransmission*shadow;
965
+ #endif
966
+ #ifdef SPECULARTERM
967
+ specularBase+=info.specular*shadow;
968
+ #endif
969
+ #ifdef CLEARCOAT
970
+ clearCoatBase+=info.clearCoat.rgb*shadow;
971
+ #endif
972
+ #ifdef SHEEN
973
+ sheenBase+=info.sheen.rgb*shadow;
974
+ #endif
975
+ #endif
976
+ #endif
977
+ #endif
978
+ `;e.IncludesShadersStore[r]||(e.IncludesShadersStore[r]=X);const M={name:r,shader:X},Z=Object.freeze(Object.defineProperty({__proto__:null,lightFragment:M},Symbol.toStringTag,{value:"Module"})),c="prePassDeclaration",O=`#ifdef PREPASS
979
+ #extension GL_EXT_draw_buffers : require
980
+ layout(location=0) out highp vec4 glFragData[{X}];highp vec4 gl_FragColor;
981
+ #ifdef PREPASS_LOCAL_POSITION
982
+ varying highp vec3 vPosition;
983
+ #endif
984
+ #ifdef PREPASS_DEPTH
985
+ varying highp vec3 vViewPos;
986
+ #endif
987
+ #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
988
+ varying highp float vNormViewDepth;
989
+ #endif
990
+ #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
991
+ varying highp vec4 vCurrentPosition;varying highp vec4 vPreviousPosition;
992
+ #endif
993
+ #endif
994
+ `;e.IncludesShadersStore[c]||(e.IncludesShadersStore[c]=O);const h="oitDeclaration",N=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
995
+ #extension GL_EXT_draw_buffers : require
996
+ layout(location=0) out vec2 depth;
997
+ layout(location=1) out vec4 frontColor;layout(location=2) out vec4 backColor;
998
+ #define MAX_DEPTH 99999.0
999
+ highp vec4 gl_FragColor;uniform sampler2D oitDepthSampler;uniform sampler2D oitFrontColorSampler;
1000
+ #endif
1001
+ `;e.IncludesShadersStore[h]||(e.IncludesShadersStore[h]=N);const v="decalFragmentDeclaration",R=`#ifdef DECAL
1002
+ uniform vec4 vDecalInfos;
1003
+ #endif
1004
+ `;e.IncludesShadersStore[v]||(e.IncludesShadersStore[v]=R);const u="samplerFragmentDeclaration",b=`#ifdef _DEFINENAME_
1005
+ #if _DEFINENAME_DIRECTUV==1
1006
+ #define v_VARYINGNAME_UV vMainUV1
1007
+ #elif _DEFINENAME_DIRECTUV==2
1008
+ #define v_VARYINGNAME_UV vMainUV2
1009
+ #elif _DEFINENAME_DIRECTUV==3
1010
+ #define v_VARYINGNAME_UV vMainUV3
1011
+ #elif _DEFINENAME_DIRECTUV==4
1012
+ #define v_VARYINGNAME_UV vMainUV4
1013
+ #elif _DEFINENAME_DIRECTUV==5
1014
+ #define v_VARYINGNAME_UV vMainUV5
1015
+ #elif _DEFINENAME_DIRECTUV==6
1016
+ #define v_VARYINGNAME_UV vMainUV6
1017
+ #else
1018
+ varying vec2 v_VARYINGNAME_UV;
1019
+ #endif
1020
+ uniform sampler2D _SAMPLERNAME_Sampler;
1021
+ #endif
1022
+ `;e.IncludesShadersStore[u]||(e.IncludesShadersStore[u]=b);const n="bumpFragmentMainFunctions",x=`#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
1023
+ #if defined(TANGENT) && defined(NORMAL)
1024
+ varying mat3 vTBN;
1025
+ #endif
1026
+ #ifdef OBJECTSPACE_NORMALMAP
1027
+ uniform mat4 normalMatrix;
1028
+ #if defined(WEBGL2) || defined(WEBGPU)
1029
+ mat4 toNormalMatrix(mat4 wMatrix)
1030
+ {mat4 ret=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]=vec4(0.,0.,0.,1.);return ret;}
1031
+ #else
1032
+ mat4 toNormalMatrix(mat4 m)
1033
+ {float
1034
+ a00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],
1035
+ a10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],
1036
+ a20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],
1037
+ a30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],
1038
+ b00=a00*a11-a01*a10,
1039
+ b01=a00*a12-a02*a10,
1040
+ b02=a00*a13-a03*a10,
1041
+ b03=a01*a12-a02*a11,
1042
+ b04=a01*a13-a03*a11,
1043
+ b05=a02*a13-a03*a12,
1044
+ b06=a20*a31-a21*a30,
1045
+ b07=a20*a32-a22*a30,
1046
+ b08=a20*a33-a23*a30,
1047
+ b09=a21*a32-a22*a31,
1048
+ b10=a21*a33-a23*a31,
1049
+ b11=a22*a33-a23*a32,
1050
+ det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;mat4 mi=mat4(
1051
+ a11*b11-a12*b10+a13*b09,
1052
+ a02*b10-a01*b11-a03*b09,
1053
+ a31*b05-a32*b04+a33*b03,
1054
+ a22*b04-a21*b05-a23*b03,
1055
+ a12*b08-a10*b11-a13*b07,
1056
+ a00*b11-a02*b08+a03*b07,
1057
+ a32*b02-a30*b05-a33*b01,
1058
+ a20*b05-a22*b02+a23*b01,
1059
+ a10*b10-a11*b08+a13*b06,
1060
+ a01*b08-a00*b10-a03*b06,
1061
+ a30*b04-a31*b02+a33*b00,
1062
+ a21*b02-a20*b04-a23*b00,
1063
+ a11*b07-a10*b09-a12*b06,
1064
+ a00*b09-a01*b07+a02*b06,
1065
+ a31*b01-a30*b03-a32*b00,
1066
+ a20*b03-a21*b01+a22*b00)/det;return mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
1067
+ mi[0][1],mi[1][1],mi[2][1],mi[3][1],
1068
+ mi[0][2],mi[1][2],mi[2][2],mi[3][2],
1069
+ mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
1070
+ #endif
1071
+ #endif
1072
+ vec3 perturbNormalBase(mat3 cotangentFrame,vec3 normal,float scale)
1073
+ {
1074
+ #ifdef NORMALXYSCALE
1075
+ normal=normalize(normal*vec3(scale,scale,1.0));
1076
+ #endif
1077
+ return normalize(cotangentFrame*normal);}
1078
+ vec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)
1079
+ {return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
1080
+ mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)
1081
+ {vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;float det=max(dot(tangent,tangent),dot(bitangent,bitangent));float invmax=det==0.0 ? 0.0 : inversesqrt(det);return mat3(tangent*invmax,bitangent*invmax,normal);}
1082
+ #endif
1083
+ `;e.IncludesShadersStore[n]||(e.IncludesShadersStore[n]=x);const _={name:n,shader:x},j=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentMainFunctions:_},Symbol.toStringTag,{value:"Module"})),s="bumpFragmentFunctions",E=`#if defined(BUMP)
1084
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
1085
+ #endif
1086
+ #if defined(DETAIL)
1087
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
1088
+ #endif
1089
+ #if defined(BUMP) && defined(PARALLAX)
1090
+ const float minSamples=4.;const float maxSamples=15.;const int iMaxSamples=15;vec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {float parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;vec2 vOffsetDir=normalize(vViewDirCoT.xy);vec2 vMaxOffset=vOffsetDir*parallaxLimit;float numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));float stepSize=1.0/numSamples;float currRayHeight=1.0;vec2 vCurrOffset=vec2(0,0);vec2 vLastOffset=vec2(0,0);float lastSampledHeight=1.0;float currSampledHeight=1.0;bool keepWorking=true;for (int i=0; i<iMaxSamples; i++)
1091
+ {currSampledHeight=texture2D(bumpSampler,texCoord+vCurrOffset).w;if (!keepWorking)
1092
+ {}
1093
+ else if (currSampledHeight>currRayHeight)
1094
+ {float delta1=currSampledHeight-currRayHeight;float delta2=(currRayHeight+stepSize)-lastSampledHeight;float ratio=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
1095
+ else
1096
+ {currRayHeight-=stepSize;vLastOffset=vCurrOffset;
1097
+ #ifdef PARALLAX_RHS
1098
+ vCurrOffset-=stepSize*vMaxOffset;
1099
+ #else
1100
+ vCurrOffset+=stepSize*vMaxOffset;
1101
+ #endif
1102
+ lastSampledHeight=currSampledHeight;}}
1103
+ return vCurrOffset;}
1104
+ vec2 parallaxOffset(vec3 viewDir,float heightScale)
1105
+ {float height=texture2D(bumpSampler,vBumpUV).w;vec2 texCoordOffset=heightScale*viewDir.xy*height;
1106
+ #ifdef PARALLAX_RHS
1107
+ return texCoordOffset;
1108
+ #else
1109
+ return -texCoordOffset;
1110
+ #endif
1111
+ }
1112
+ #endif
1113
+ `;e.IncludesShadersStore[s]||(e.IncludesShadersStore[s]=E);const U={name:s,shader:E},q=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentFunctions:U},Symbol.toStringTag,{value:"Module"})),p="decalFragment",z=`#ifdef DECAL
1114
+ #ifdef GAMMADECAL
1115
+ decalColor.rgb=toLinearSpace(decalColor.rgb);
1116
+ #endif
1117
+ #ifdef DECAL_SMOOTHALPHA
1118
+ decalColor.a*=decalColor.a;
1119
+ #endif
1120
+ surfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);
1121
+ #endif
1122
+ `;e.IncludesShadersStore[p]||(e.IncludesShadersStore[p]=z);const l="bumpFragment",C=`vec2 uvOffset=vec2(0.0,0.0);
1123
+ #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
1124
+ #ifdef NORMALXYSCALE
1125
+ float normalScale=1.0;
1126
+ #elif defined(BUMP)
1127
+ float normalScale=vBumpInfos.y;
1128
+ #else
1129
+ float normalScale=1.0;
1130
+ #endif
1131
+ #if defined(TANGENT) && defined(NORMAL)
1132
+ mat3 TBN=vTBN;
1133
+ #elif defined(BUMP)
1134
+ vec2 TBNUV=gl_FrontFacing ? vBumpUV : -vBumpUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);
1135
+ #else
1136
+ vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
1137
+ #endif
1138
+ #elif defined(ANISOTROPIC)
1139
+ #if defined(TANGENT) && defined(NORMAL)
1140
+ mat3 TBN=vTBN;
1141
+ #else
1142
+ vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
1143
+ #endif
1144
+ #endif
1145
+ #ifdef PARALLAX
1146
+ mat3 invTBN=transposeMat3(TBN);
1147
+ #ifdef PARALLAXOCCLUSION
1148
+ uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);
1149
+ #else
1150
+ uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);
1151
+ #endif
1152
+ #endif
1153
+ #ifdef DETAIL
1154
+ vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);
1155
+ #endif
1156
+ #ifdef BUMP
1157
+ #ifdef OBJECTSPACE_NORMALMAP
1158
+ #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
1159
+ normalW=normalize(texture2D(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
1160
+ #elif !defined(DETAIL)
1161
+ normalW=perturbNormal(TBN,texture2D(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);
1162
+ #else
1163
+ vec3 bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;
1164
+ #if DETAIL_NORMALBLENDMETHOD==0
1165
+ detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
1166
+ #elif DETAIL_NORMALBLENDMETHOD==1
1167
+ detailNormal.xy*=vDetailInfos.z;bumpNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
1168
+ #endif
1169
+ normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);
1170
+ #endif
1171
+ #elif defined(DETAIL)
1172
+ detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
1173
+ #endif
1174
+ `;e.IncludesShadersStore[l]||(e.IncludesShadersStore[l]=C);const H={name:l,shader:C},Q=Object.freeze(Object.defineProperty({__proto__:null,bumpFragment:H},Symbol.toStringTag,{value:"Module"})),m="depthPrePass",W=`#ifdef DEPTHPREPASS
1175
+ gl_FragColor=vec4(0.,0.,0.,1.0);return;
1176
+ #endif
1177
+ `;e.IncludesShadersStore[m]||(e.IncludesShadersStore[m]=W);const S="oitFragment",V=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
1178
+ float fragDepth=gl_FragCoord.z;
1179
+ #ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
1180
+ uint halfFloat=packHalf2x16(vec2(fragDepth));vec2 full=unpackHalf2x16(halfFloat);fragDepth=full.x;
1181
+ #endif
1182
+ ivec2 fragCoord=ivec2(gl_FragCoord.xy);vec2 lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;vec4 lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);depth.rg=vec2(-MAX_DEPTH);frontColor=lastFrontColor;backColor=vec4(0.0);
1183
+ #ifdef USE_REVERSE_DEPTHBUFFER
1184
+ float furthestDepth=-lastDepth.x;float nearestDepth=lastDepth.y;
1185
+ #else
1186
+ float nearestDepth=-lastDepth.x;float furthestDepth=lastDepth.y;
1187
+ #endif
1188
+ float alphaMultiplier=1.0-lastFrontColor.a;
1189
+ #ifdef USE_REVERSE_DEPTHBUFFER
1190
+ if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
1191
+ #else
1192
+ if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
1193
+ #endif
1194
+ return;}
1195
+ #ifdef USE_REVERSE_DEPTHBUFFER
1196
+ if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
1197
+ #else
1198
+ if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
1199
+ #endif
1200
+ depth.rg=vec2(-fragDepth,fragDepth);return;}
1201
+ #endif
1202
+ `;e.IncludesShadersStore[S]||(e.IncludesShadersStore[S]=V);export{Q as a,H as b,U as c,q as d,_ as e,j as f,Z as g,A as h,B as i,P as j,Y as k,M as l,G as m,$ as n,I as r,y as s};