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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/bin/fps-editor-prepare.mjs +5 -0
  2. package/bin/fps-editor-server.mjs +2 -0
  3. package/licenses/THIRD_PARTY_NOTICES.txt +7 -0
  4. package/manifest.json +2685 -0
  5. package/npm-shrinkwrap.json +19 -0
  6. package/package.json +38 -0
  7. package/public/assets/abstractAudioBus-DKeLA-55.js +1 -0
  8. package/public/assets/animation-DY4Gs-Pw.js +1 -0
  9. package/public/assets/animation-DY4Gs-Pw.js.br +0 -0
  10. package/public/assets/animation-DY4Gs-Pw.js.gz +0 -0
  11. package/public/assets/animationGroup-BN6ExD_I.js +1 -0
  12. package/public/assets/animationGroup-BN6ExD_I.js.br +0 -0
  13. package/public/assets/animationGroup-BN6ExD_I.js.gz +0 -0
  14. package/public/assets/arcRotateCamera-BrOEThh0.js +1 -0
  15. package/public/assets/arcRotateCamera-BrOEThh0.js.br +0 -0
  16. package/public/assets/arcRotateCamera-BrOEThh0.js.gz +0 -0
  17. package/public/assets/babylon-core-BiQ_mrkl.js +1 -0
  18. package/public/assets/babylon-core-BiQ_mrkl.js.br +0 -0
  19. package/public/assets/babylon-core-BiQ_mrkl.js.gz +0 -0
  20. package/public/assets/babylon-core-DygJEuf6.js +13882 -0
  21. package/public/assets/babylon-core-DygJEuf6.js.br +0 -0
  22. package/public/assets/babylon-core-DygJEuf6.js.gz +0 -0
  23. package/public/assets/basisTextureLoader-BWwwG7Gw.js +1 -0
  24. package/public/assets/basisTextureLoader-BWwwG7Gw.js.br +0 -0
  25. package/public/assets/basisTextureLoader-BWwwG7Gw.js.gz +0 -0
  26. package/public/assets/bumpVertex-CzYtMFbI.js +177 -0
  27. package/public/assets/bumpVertex-CzYtMFbI.js.br +0 -0
  28. package/public/assets/bumpVertex-CzYtMFbI.js.gz +0 -0
  29. package/public/assets/bumpVertex-DIMp0NiU.js +173 -0
  30. package/public/assets/bumpVertex-DIMp0NiU.js.br +0 -0
  31. package/public/assets/bumpVertex-DIMp0NiU.js.gz +0 -0
  32. package/public/assets/chromaticAberration.fragment-BJhO9WeA.js +7 -0
  33. package/public/assets/chromaticAberration.fragment-BJhO9WeA.js.br +0 -0
  34. package/public/assets/chromaticAberration.fragment-BJhO9WeA.js.gz +0 -0
  35. package/public/assets/chromaticAberration.fragment-DEAEmyJy.js +6 -0
  36. package/public/assets/chromaticAberration.fragment-DEAEmyJy.js.br +0 -0
  37. package/public/assets/chromaticAberration.fragment-DEAEmyJy.js.gz +0 -0
  38. package/public/assets/circleOfConfusion.fragment-DGnleQIE.js +17 -0
  39. package/public/assets/circleOfConfusion.fragment-DGnleQIE.js.br +0 -0
  40. package/public/assets/circleOfConfusion.fragment-DGnleQIE.js.gz +0 -0
  41. package/public/assets/circleOfConfusion.fragment-DqQcLT7C.js +17 -0
  42. package/public/assets/circleOfConfusion.fragment-DqQcLT7C.js.br +0 -0
  43. package/public/assets/circleOfConfusion.fragment-DqQcLT7C.js.gz +0 -0
  44. package/public/assets/clipPlaneFragment-Da_1RMjt.js +46 -0
  45. package/public/assets/clipPlaneFragment-Da_1RMjt.js.br +0 -0
  46. package/public/assets/clipPlaneFragment-Da_1RMjt.js.gz +0 -0
  47. package/public/assets/clipPlaneVertex-B8PIfZU_.js +177 -0
  48. package/public/assets/clipPlaneVertex-B8PIfZU_.js.br +0 -0
  49. package/public/assets/clipPlaneVertex-B8PIfZU_.js.gz +0 -0
  50. package/public/assets/color.fragment-Bf62ouS6.js +20 -0
  51. package/public/assets/color.fragment-Bf62ouS6.js.br +0 -0
  52. package/public/assets/color.fragment-Bf62ouS6.js.gz +0 -0
  53. package/public/assets/color.fragment-DtJC5xR0.js +21 -0
  54. package/public/assets/color.fragment-DtJC5xR0.js.br +0 -0
  55. package/public/assets/color.fragment-DtJC5xR0.js.gz +0 -0
  56. package/public/assets/color.vertex-DYnzh3f-.js +39 -0
  57. package/public/assets/color.vertex-DYnzh3f-.js.br +0 -0
  58. package/public/assets/color.vertex-DYnzh3f-.js.gz +0 -0
  59. package/public/assets/color.vertex-foaAsgqw.js +32 -0
  60. package/public/assets/color.vertex-foaAsgqw.js.br +0 -0
  61. package/public/assets/color.vertex-foaAsgqw.js.gz +0 -0
  62. package/public/assets/dds-CbA4nCCq.js +1 -0
  63. package/public/assets/dds-CbA4nCCq.js.br +0 -0
  64. package/public/assets/dds-CbA4nCCq.js.gz +0 -0
  65. package/public/assets/ddsTextureLoader-Bwa3u-Gp.js +1 -0
  66. package/public/assets/ddsTextureLoader-Bwa3u-Gp.js.br +0 -0
  67. package/public/assets/ddsTextureLoader-Bwa3u-Gp.js.gz +0 -0
  68. package/public/assets/default.fragment-BKaVVFYF.js +526 -0
  69. package/public/assets/default.fragment-BKaVVFYF.js.br +0 -0
  70. package/public/assets/default.fragment-BKaVVFYF.js.gz +0 -0
  71. package/public/assets/default.fragment-DjNCicws.js +468 -0
  72. package/public/assets/default.fragment-DjNCicws.js.br +0 -0
  73. package/public/assets/default.fragment-DjNCicws.js.gz +0 -0
  74. package/public/assets/default.vertex-CKOvcJ54.js +193 -0
  75. package/public/assets/default.vertex-CKOvcJ54.js.br +0 -0
  76. package/public/assets/default.vertex-CKOvcJ54.js.gz +0 -0
  77. package/public/assets/default.vertex-DyPOsib0.js +181 -0
  78. package/public/assets/default.vertex-DyPOsib0.js.br +0 -0
  79. package/public/assets/default.vertex-DyPOsib0.js.gz +0 -0
  80. package/public/assets/defaultUboDeclaration-ChgZa3Dv.js +5 -0
  81. package/public/assets/defaultUboDeclaration-ChgZa3Dv.js.br +0 -0
  82. package/public/assets/defaultUboDeclaration-ChgZa3Dv.js.gz +0 -0
  83. package/public/assets/defaultUboDeclaration-Dzd2ch6X.js +7 -0
  84. package/public/assets/defaultUboDeclaration-Dzd2ch6X.js.br +0 -0
  85. package/public/assets/defaultUboDeclaration-Dzd2ch6X.js.gz +0 -0
  86. package/public/assets/depth.fragment-B9FDfPgW.js +40 -0
  87. package/public/assets/depth.fragment-B9FDfPgW.js.br +2 -0
  88. package/public/assets/depth.fragment-B9FDfPgW.js.gz +0 -0
  89. package/public/assets/depth.vertex-DXkbiW3p.js +57 -0
  90. package/public/assets/depth.vertex-DXkbiW3p.js.br +0 -0
  91. package/public/assets/depth.vertex-DXkbiW3p.js.gz +0 -0
  92. package/public/assets/depthBoxBlur.fragment-BlgJGCM0.js +6 -0
  93. package/public/assets/depthBoxBlur.fragment-BlgJGCM0.js.br +0 -0
  94. package/public/assets/depthBoxBlur.fragment-BlgJGCM0.js.gz +0 -0
  95. package/public/assets/depthBoxBlur.fragment-DUm61npj.js +5 -0
  96. package/public/assets/depthBoxBlur.fragment-DUm61npj.js.br +0 -0
  97. package/public/assets/depthBoxBlur.fragment-DUm61npj.js.gz +0 -0
  98. package/public/assets/depthOfFieldMerge.fragment-25hKWM62.js +21 -0
  99. package/public/assets/depthOfFieldMerge.fragment-25hKWM62.js.br +0 -0
  100. package/public/assets/depthOfFieldMerge.fragment-25hKWM62.js.gz +0 -0
  101. package/public/assets/depthOfFieldMerge.fragment-_d6h2qdf.js +26 -0
  102. package/public/assets/depthOfFieldMerge.fragment-_d6h2qdf.js.br +0 -0
  103. package/public/assets/depthOfFieldMerge.fragment-_d6h2qdf.js.gz +0 -0
  104. package/public/assets/easing-BkcTAuOI.js +1 -0
  105. package/public/assets/easing-BkcTAuOI.js.br +0 -0
  106. package/public/assets/easing-BkcTAuOI.js.gz +0 -0
  107. package/public/assets/editor-core-plugin-host-c2002442.js +1 -0
  108. package/public/assets/editor-core-plugin-host-c2002442.js.br +0 -0
  109. package/public/assets/editor-core-plugin-host-c2002442.js.gz +0 -0
  110. package/public/assets/exrTextureLoader-DD6CMgpF.js +1 -0
  111. package/public/assets/exrTextureLoader-DD6CMgpF.js.br +0 -0
  112. package/public/assets/exrTextureLoader-DD6CMgpF.js.gz +0 -0
  113. package/public/assets/flowGraphArrayIndexBlock-DAsvnV45.js +1 -0
  114. package/public/assets/flowGraphArrayIndexBlock-DAsvnV45.js.br +0 -0
  115. package/public/assets/flowGraphArrayIndexBlock-DAsvnV45.js.gz +0 -0
  116. package/public/assets/flowGraphBezierCurveEasingBlock-_sVLfNt3.js +1 -0
  117. package/public/assets/flowGraphBezierCurveEasingBlock-_sVLfNt3.js.br +0 -0
  118. package/public/assets/flowGraphBezierCurveEasingBlock-_sVLfNt3.js.gz +0 -0
  119. package/public/assets/flowGraphBinaryOperationBlock-D9lz9r7e.js +1 -0
  120. package/public/assets/flowGraphBinaryOperationBlock-D9lz9r7e.js.br +0 -0
  121. package/public/assets/flowGraphBinaryOperationBlock-D9lz9r7e.js.gz +0 -0
  122. package/public/assets/flowGraphBranchBlock-BMgiYImb.js +1 -0
  123. package/public/assets/flowGraphBranchBlock-BMgiYImb.js.br +0 -0
  124. package/public/assets/flowGraphBranchBlock-BMgiYImb.js.gz +0 -0
  125. package/public/assets/flowGraphCachedOperationBlock-CDf6OBvO.js +1 -0
  126. package/public/assets/flowGraphCachedOperationBlock-CDf6OBvO.js.br +0 -0
  127. package/public/assets/flowGraphCachedOperationBlock-CDf6OBvO.js.gz +0 -0
  128. package/public/assets/flowGraphCancelDelayBlock-BbyDVz48.js +1 -0
  129. package/public/assets/flowGraphCancelDelayBlock-BbyDVz48.js.br +0 -0
  130. package/public/assets/flowGraphCancelDelayBlock-BbyDVz48.js.gz +0 -0
  131. package/public/assets/flowGraphCodeExecutionBlock-fMRePVwn.js +1 -0
  132. package/public/assets/flowGraphCodeExecutionBlock-fMRePVwn.js.br +0 -0
  133. package/public/assets/flowGraphCodeExecutionBlock-fMRePVwn.js.gz +0 -0
  134. package/public/assets/flowGraphConditionalDataBlock-Db9HPH7K.js +1 -0
  135. package/public/assets/flowGraphConditionalDataBlock-Db9HPH7K.js.br +0 -0
  136. package/public/assets/flowGraphConditionalDataBlock-Db9HPH7K.js.gz +0 -0
  137. package/public/assets/flowGraphConsoleLogBlock-U9fcEDaX.js +1 -0
  138. package/public/assets/flowGraphConsoleLogBlock-U9fcEDaX.js.br +0 -0
  139. package/public/assets/flowGraphConsoleLogBlock-U9fcEDaX.js.gz +0 -0
  140. package/public/assets/flowGraphConstantBlock-CN1Myhpi.js +1 -0
  141. package/public/assets/flowGraphConstantBlock-CN1Myhpi.js.br +0 -0
  142. package/public/assets/flowGraphConstantBlock-CN1Myhpi.js.gz +0 -0
  143. package/public/assets/flowGraphContextBlock-BbRTNgI4.js +1 -0
  144. package/public/assets/flowGraphContextBlock-BbRTNgI4.js.br +0 -0
  145. package/public/assets/flowGraphContextBlock-BbRTNgI4.js.gz +0 -0
  146. package/public/assets/flowGraphCounterBlock-DTqShVsi.js +1 -0
  147. package/public/assets/flowGraphCounterBlock-DTqShVsi.js.br +0 -0
  148. package/public/assets/flowGraphCounterBlock-DTqShVsi.js.gz +0 -0
  149. package/public/assets/flowGraphDataSwitchBlock-BtEqygYT.js +1 -0
  150. package/public/assets/flowGraphDataSwitchBlock-BtEqygYT.js.br +0 -0
  151. package/public/assets/flowGraphDataSwitchBlock-BtEqygYT.js.gz +0 -0
  152. package/public/assets/flowGraphDebounceBlock-CNHFUJ8N.js +1 -0
  153. package/public/assets/flowGraphDebounceBlock-CNHFUJ8N.js.br +0 -0
  154. package/public/assets/flowGraphDebounceBlock-CNHFUJ8N.js.gz +0 -0
  155. package/public/assets/flowGraphDoNBlock-DfiUsh6W.js +1 -0
  156. package/public/assets/flowGraphDoNBlock-DfiUsh6W.js.br +0 -0
  157. package/public/assets/flowGraphDoNBlock-DfiUsh6W.js.gz +0 -0
  158. package/public/assets/flowGraphEasingBlock-BQz5MDh1.js +1 -0
  159. package/public/assets/flowGraphEasingBlock-BQz5MDh1.js.br +0 -0
  160. package/public/assets/flowGraphEasingBlock-BQz5MDh1.js.gz +0 -0
  161. package/public/assets/flowGraphFlipFlopBlock-FFeDrjtF.js +1 -0
  162. package/public/assets/flowGraphFlipFlopBlock-FFeDrjtF.js.br +0 -0
  163. package/public/assets/flowGraphFlipFlopBlock-FFeDrjtF.js.gz +0 -0
  164. package/public/assets/flowGraphForLoopBlock-CjPa-aIl.js +1 -0
  165. package/public/assets/flowGraphForLoopBlock-CjPa-aIl.js.br +0 -0
  166. package/public/assets/flowGraphForLoopBlock-CjPa-aIl.js.gz +0 -0
  167. package/public/assets/flowGraphFunctionReferenceBlock-CUUBvJaO.js +1 -0
  168. package/public/assets/flowGraphFunctionReferenceBlock-CUUBvJaO.js.br +0 -0
  169. package/public/assets/flowGraphFunctionReferenceBlock-CUUBvJaO.js.gz +0 -0
  170. package/public/assets/flowGraphGetAssetBlock-CuKntTUp.js +1 -0
  171. package/public/assets/flowGraphGetAssetBlock-CuKntTUp.js.br +0 -0
  172. package/public/assets/flowGraphGetAssetBlock-CuKntTUp.js.gz +0 -0
  173. package/public/assets/flowGraphGetPropertyBlock-r3I5d5Pw.js +1 -0
  174. package/public/assets/flowGraphGetPropertyBlock-r3I5d5Pw.js.br +0 -0
  175. package/public/assets/flowGraphGetPropertyBlock-r3I5d5Pw.js.gz +0 -0
  176. package/public/assets/flowGraphGetVariableBlock-ByAhPias.js +1 -0
  177. package/public/assets/flowGraphGetVariableBlock-ByAhPias.js.br +0 -0
  178. package/public/assets/flowGraphGetVariableBlock-ByAhPias.js.gz +0 -0
  179. package/public/assets/flowGraphIndexOfBlock-kKyrBvN9.js +1 -0
  180. package/public/assets/flowGraphIndexOfBlock-kKyrBvN9.js.br +0 -0
  181. package/public/assets/flowGraphIndexOfBlock-kKyrBvN9.js.gz +0 -0
  182. package/public/assets/flowGraphInterpolationBlock-C1KggJs6.js +1 -0
  183. package/public/assets/flowGraphInterpolationBlock-C1KggJs6.js.br +0 -0
  184. package/public/assets/flowGraphInterpolationBlock-C1KggJs6.js.gz +0 -0
  185. package/public/assets/flowGraphJsonPointerParserBlock-Cq1Nm55u.js +1 -0
  186. package/public/assets/flowGraphJsonPointerParserBlock-Cq1Nm55u.js.br +0 -0
  187. package/public/assets/flowGraphJsonPointerParserBlock-Cq1Nm55u.js.gz +0 -0
  188. package/public/assets/flowGraphMathBlocks-DyKkUJIM.js +1 -0
  189. package/public/assets/flowGraphMathBlocks-DyKkUJIM.js.br +0 -0
  190. package/public/assets/flowGraphMathBlocks-DyKkUJIM.js.gz +0 -0
  191. package/public/assets/flowGraphMathCombineExtractBlocks-DWLx9Jo-.js +1 -0
  192. package/public/assets/flowGraphMathCombineExtractBlocks-DWLx9Jo-.js.br +0 -0
  193. package/public/assets/flowGraphMathCombineExtractBlocks-DWLx9Jo-.js.gz +0 -0
  194. package/public/assets/flowGraphMatrixMathBlocks-CEbyv5Ky.js +1 -0
  195. package/public/assets/flowGraphMatrixMathBlocks-CEbyv5Ky.js.br +0 -0
  196. package/public/assets/flowGraphMatrixMathBlocks-CEbyv5Ky.js.gz +0 -0
  197. package/public/assets/flowGraphMeshPickEventBlock-DBaLM4_x.js +1 -0
  198. package/public/assets/flowGraphMeshPickEventBlock-DBaLM4_x.js.br +0 -0
  199. package/public/assets/flowGraphMeshPickEventBlock-DBaLM4_x.js.gz +0 -0
  200. package/public/assets/flowGraphMultiGateBlock-0zKVRfwg.js +1 -0
  201. package/public/assets/flowGraphMultiGateBlock-0zKVRfwg.js.br +0 -0
  202. package/public/assets/flowGraphMultiGateBlock-0zKVRfwg.js.gz +0 -0
  203. package/public/assets/flowGraphPauseAnimationBlock-Cj1qZ8KL.js +1 -0
  204. package/public/assets/flowGraphPauseAnimationBlock-Cj1qZ8KL.js.br +0 -0
  205. package/public/assets/flowGraphPauseAnimationBlock-Cj1qZ8KL.js.gz +0 -0
  206. package/public/assets/flowGraphPlayAnimationBlock-CmNlz0tC.js +1 -0
  207. package/public/assets/flowGraphPlayAnimationBlock-CmNlz0tC.js.br +0 -0
  208. package/public/assets/flowGraphPlayAnimationBlock-CmNlz0tC.js.gz +0 -0
  209. package/public/assets/flowGraphPointerOutEventBlock-CksX91Wf.js +1 -0
  210. package/public/assets/flowGraphPointerOutEventBlock-CksX91Wf.js.br +4 -0
  211. package/public/assets/flowGraphPointerOutEventBlock-CksX91Wf.js.gz +0 -0
  212. package/public/assets/flowGraphPointerOverEventBlock-BAzWo2rO.js +1 -0
  213. package/public/assets/flowGraphPointerOverEventBlock-BAzWo2rO.js.br +0 -0
  214. package/public/assets/flowGraphPointerOverEventBlock-BAzWo2rO.js.gz +0 -0
  215. package/public/assets/flowGraphReceiveCustomEventBlock-DodatkWu.js +1 -0
  216. package/public/assets/flowGraphReceiveCustomEventBlock-DodatkWu.js.br +0 -0
  217. package/public/assets/flowGraphReceiveCustomEventBlock-DodatkWu.js.gz +0 -0
  218. package/public/assets/flowGraphSceneReadyEventBlock-CdZZEJxf.js +1 -0
  219. package/public/assets/flowGraphSceneReadyEventBlock-CdZZEJxf.js.br +0 -0
  220. package/public/assets/flowGraphSceneReadyEventBlock-CdZZEJxf.js.gz +0 -0
  221. package/public/assets/flowGraphSceneTickEventBlock-BO5xEA0D.js +1 -0
  222. package/public/assets/flowGraphSceneTickEventBlock-BO5xEA0D.js.br +0 -0
  223. package/public/assets/flowGraphSceneTickEventBlock-BO5xEA0D.js.gz +0 -0
  224. package/public/assets/flowGraphSendCustomEventBlock-BSbW6X-n.js +1 -0
  225. package/public/assets/flowGraphSendCustomEventBlock-BSbW6X-n.js.br +0 -0
  226. package/public/assets/flowGraphSendCustomEventBlock-BSbW6X-n.js.gz +0 -0
  227. package/public/assets/flowGraphSequenceBlock-Ppc6pXve.js +1 -0
  228. package/public/assets/flowGraphSequenceBlock-Ppc6pXve.js.br +0 -0
  229. package/public/assets/flowGraphSequenceBlock-Ppc6pXve.js.gz +0 -0
  230. package/public/assets/flowGraphSetDelayBlock-Ckikj9nw.js +1 -0
  231. package/public/assets/flowGraphSetDelayBlock-Ckikj9nw.js.br +0 -0
  232. package/public/assets/flowGraphSetDelayBlock-Ckikj9nw.js.gz +0 -0
  233. package/public/assets/flowGraphSetPropertyBlock-BgUzizbV.js +1 -0
  234. package/public/assets/flowGraphSetPropertyBlock-BgUzizbV.js.br +0 -0
  235. package/public/assets/flowGraphSetPropertyBlock-BgUzizbV.js.gz +0 -0
  236. package/public/assets/flowGraphSetVariableBlock-BdpCJTDy.js +1 -0
  237. package/public/assets/flowGraphSetVariableBlock-BdpCJTDy.js.br +0 -0
  238. package/public/assets/flowGraphSetVariableBlock-BdpCJTDy.js.gz +0 -0
  239. package/public/assets/flowGraphStopAnimationBlock-NXtDyWkx.js +1 -0
  240. package/public/assets/flowGraphStopAnimationBlock-NXtDyWkx.js.br +0 -0
  241. package/public/assets/flowGraphStopAnimationBlock-NXtDyWkx.js.gz +0 -0
  242. package/public/assets/flowGraphSwitchBlock-BtAbN5pw.js +1 -0
  243. package/public/assets/flowGraphSwitchBlock-BtAbN5pw.js.br +0 -0
  244. package/public/assets/flowGraphSwitchBlock-BtAbN5pw.js.gz +0 -0
  245. package/public/assets/flowGraphThrottleBlock-DouJgya1.js +1 -0
  246. package/public/assets/flowGraphThrottleBlock-DouJgya1.js.br +0 -0
  247. package/public/assets/flowGraphThrottleBlock-DouJgya1.js.gz +0 -0
  248. package/public/assets/flowGraphTransformCoordinatesSystemBlock-DnCim8eo.js +1 -0
  249. package/public/assets/flowGraphTransformCoordinatesSystemBlock-DnCim8eo.js.br +0 -0
  250. package/public/assets/flowGraphTransformCoordinatesSystemBlock-DnCim8eo.js.gz +0 -0
  251. package/public/assets/flowGraphTypeToTypeBlocks-DvTPkHj8.js +1 -0
  252. package/public/assets/flowGraphTypeToTypeBlocks-DvTPkHj8.js.br +4 -0
  253. package/public/assets/flowGraphTypeToTypeBlocks-DvTPkHj8.js.gz +0 -0
  254. package/public/assets/flowGraphUnaryOperationBlock-DfKZLa84.js +1 -0
  255. package/public/assets/flowGraphUnaryOperationBlock-DfKZLa84.js.br +0 -0
  256. package/public/assets/flowGraphUnaryOperationBlock-DfKZLa84.js.gz +0 -0
  257. package/public/assets/flowGraphVectorMathBlocks-BQCEcK0m.js +1 -0
  258. package/public/assets/flowGraphVectorMathBlocks-BQCEcK0m.js.br +0 -0
  259. package/public/assets/flowGraphVectorMathBlocks-BQCEcK0m.js.gz +0 -0
  260. package/public/assets/flowGraphWaitAllBlock-ClqfM5vn.js +1 -0
  261. package/public/assets/flowGraphWaitAllBlock-ClqfM5vn.js.br +0 -0
  262. package/public/assets/flowGraphWaitAllBlock-ClqfM5vn.js.gz +0 -0
  263. package/public/assets/flowGraphWhileLoopBlock-DkTf5x3Z.js +1 -0
  264. package/public/assets/flowGraphWhileLoopBlock-DkTf5x3Z.js.br +0 -0
  265. package/public/assets/flowGraphWhileLoopBlock-DkTf5x3Z.js.gz +0 -0
  266. package/public/assets/fogFragmentDeclaration-CJgnG_Ui.js +22 -0
  267. package/public/assets/fogFragmentDeclaration-CJgnG_Ui.js.br +0 -0
  268. package/public/assets/fogFragmentDeclaration-CJgnG_Ui.js.gz +0 -0
  269. package/public/assets/fogFragmentDeclaration-Dk_KLGI0.js +23 -0
  270. package/public/assets/fogFragmentDeclaration-Dk_KLGI0.js.br +0 -0
  271. package/public/assets/fogFragmentDeclaration-Dk_KLGI0.js.gz +0 -0
  272. package/public/assets/glowBlurPostProcess.fragment-BmoPp0DJ.js +7 -0
  273. package/public/assets/glowBlurPostProcess.fragment-BmoPp0DJ.js.br +0 -0
  274. package/public/assets/glowBlurPostProcess.fragment-BmoPp0DJ.js.gz +0 -0
  275. package/public/assets/glowBlurPostProcess.fragment-DSvlweiI.js +7 -0
  276. package/public/assets/glowBlurPostProcess.fragment-DSvlweiI.js.br +0 -0
  277. package/public/assets/glowBlurPostProcess.fragment-DSvlweiI.js.gz +0 -0
  278. package/public/assets/glowMapGeneration.fragment-BmCna86b.js +63 -0
  279. package/public/assets/glowMapGeneration.fragment-BmCna86b.js.br +0 -0
  280. package/public/assets/glowMapGeneration.fragment-BmCna86b.js.gz +0 -0
  281. package/public/assets/glowMapGeneration.fragment-Bx0somqR.js +63 -0
  282. package/public/assets/glowMapGeneration.fragment-Bx0somqR.js.br +0 -0
  283. package/public/assets/glowMapGeneration.fragment-Bx0somqR.js.gz +0 -0
  284. package/public/assets/glowMapGeneration.vertex-C_K1FVYg.js +75 -0
  285. package/public/assets/glowMapGeneration.vertex-C_K1FVYg.js.br +0 -0
  286. package/public/assets/glowMapGeneration.vertex-C_K1FVYg.js.gz +0 -0
  287. package/public/assets/glowMapGeneration.vertex-Fp7OnH6p.js +75 -0
  288. package/public/assets/glowMapGeneration.vertex-Fp7OnH6p.js.br +0 -0
  289. package/public/assets/glowMapGeneration.vertex-Fp7OnH6p.js.gz +0 -0
  290. package/public/assets/glowMapMerge.fragment-0u_W2SCj.js +25 -0
  291. package/public/assets/glowMapMerge.fragment-0u_W2SCj.js.br +0 -0
  292. package/public/assets/glowMapMerge.fragment-0u_W2SCj.js.gz +0 -0
  293. package/public/assets/glowMapMerge.fragment-DbrUnHjm.js +23 -0
  294. package/public/assets/glowMapMerge.fragment-DbrUnHjm.js.br +0 -0
  295. package/public/assets/glowMapMerge.fragment-DbrUnHjm.js.gz +0 -0
  296. package/public/assets/glowMapMerge.vertex-CuTJKa7K.js +7 -0
  297. package/public/assets/glowMapMerge.vertex-CuTJKa7K.js.br +0 -0
  298. package/public/assets/glowMapMerge.vertex-CuTJKa7K.js.gz +0 -0
  299. package/public/assets/glowMapMerge.vertex-DAvXVsHl.js +8 -0
  300. package/public/assets/glowMapMerge.vertex-DAvXVsHl.js.br +0 -0
  301. package/public/assets/glowMapMerge.vertex-DAvXVsHl.js.gz +0 -0
  302. package/public/assets/grain.fragment-6VtM1VfQ.js +6 -0
  303. package/public/assets/grain.fragment-6VtM1VfQ.js.br +0 -0
  304. package/public/assets/grain.fragment-6VtM1VfQ.js.gz +0 -0
  305. package/public/assets/grain.fragment-DDSnqVVY.js +5 -0
  306. package/public/assets/grain.fragment-DDSnqVVY.js.br +4 -1
  307. package/public/assets/grain.fragment-DDSnqVVY.js.gz +0 -0
  308. package/public/assets/harmonicsFunctions-BKiAKdWL.js +189 -0
  309. package/public/assets/harmonicsFunctions-BKiAKdWL.js.br +0 -0
  310. package/public/assets/harmonicsFunctions-BKiAKdWL.js.gz +0 -0
  311. package/public/assets/harmonicsFunctions-BdFr0SEn.js +192 -0
  312. package/public/assets/harmonicsFunctions-BdFr0SEn.js.br +0 -0
  313. package/public/assets/harmonicsFunctions-BdFr0SEn.js.gz +0 -0
  314. package/public/assets/hdrTextureLoader-BZMtuzrh.js +2 -0
  315. package/public/assets/hdrTextureLoader-BZMtuzrh.js.br +0 -0
  316. package/public/assets/hdrTextureLoader-BZMtuzrh.js.gz +0 -0
  317. package/public/assets/hemisphericLight-BF-Si7a7.js +1 -0
  318. package/public/assets/hemisphericLight-BF-Si7a7.js.br +0 -0
  319. package/public/assets/hemisphericLight-BF-Si7a7.js.gz +0 -0
  320. package/public/assets/iesTextureLoader-CfjtMyLq.js +2 -0
  321. package/public/assets/iesTextureLoader-CfjtMyLq.js.br +0 -0
  322. package/public/assets/iesTextureLoader-CfjtMyLq.js.gz +0 -0
  323. package/public/assets/index-Bc_2vm3Z.js +4 -0
  324. package/public/assets/index-Bc_2vm3Z.js.br +0 -0
  325. package/public/assets/index-Bc_2vm3Z.js.gz +0 -0
  326. package/public/assets/index-DKM_mvsP.js +1 -0
  327. package/public/assets/index-DKM_mvsP.js.br +0 -0
  328. package/public/assets/index-DKM_mvsP.js.gz +0 -0
  329. package/public/assets/instancesDeclaration-DpE3Y0C1.js +23 -0
  330. package/public/assets/instancesDeclaration-DpE3Y0C1.js.br +0 -0
  331. package/public/assets/instancesDeclaration-DpE3Y0C1.js.gz +0 -0
  332. package/public/assets/ktxTextureLoader-7eTZtvh5.js +1 -0
  333. package/public/assets/ktxTextureLoader-7eTZtvh5.js.br +0 -0
  334. package/public/assets/ktxTextureLoader-7eTZtvh5.js.gz +0 -0
  335. package/public/assets/lazy-BcZCe0kL.js +2 -0
  336. package/public/assets/lazy-BcZCe0kL.js.br +0 -0
  337. package/public/assets/lazy-BcZCe0kL.js.gz +0 -0
  338. package/public/assets/lod.fragment-CEfFyCdU.js +3 -0
  339. package/public/assets/lod.fragment-CEfFyCdU.js.br +0 -0
  340. package/public/assets/lod.fragment-CEfFyCdU.js.gz +0 -0
  341. package/public/assets/lod.fragment-DT0r7jVm.js +3 -0
  342. package/public/assets/lod.fragment-DT0r7jVm.js.br +0 -0
  343. package/public/assets/lod.fragment-DT0r7jVm.js.gz +0 -0
  344. package/public/assets/lodCube.fragment-BP5e9OXG.js +22 -0
  345. package/public/assets/lodCube.fragment-BP5e9OXG.js.br +0 -0
  346. package/public/assets/lodCube.fragment-BP5e9OXG.js.gz +0 -0
  347. package/public/assets/lodCube.fragment-mh7W3FpN.js +22 -0
  348. package/public/assets/lodCube.fragment-mh7W3FpN.js.br +0 -0
  349. package/public/assets/lodCube.fragment-mh7W3FpN.js.gz +0 -0
  350. package/public/assets/logDepthDeclaration-DapB3ji1.js +4 -0
  351. package/public/assets/logDepthDeclaration-_-FceU2g.js +4 -0
  352. package/public/assets/logDepthFragment-BowlR5UY.js +4 -0
  353. package/public/assets/logDepthFragment-D1ov0i96.js +4 -0
  354. package/public/assets/logDepthFragment-D1ov0i96.js.br +0 -0
  355. package/public/assets/logDepthFragment-D1ov0i96.js.gz +0 -0
  356. package/public/assets/logDepthVertex-dEn2jB_d.js +4 -0
  357. package/public/assets/logDepthVertex-dEn2jB_d.js.br +2 -0
  358. package/public/assets/logDepthVertex-dEn2jB_d.js.gz +0 -0
  359. package/public/assets/logDepthVertex-jWY57236.js +4 -0
  360. package/public/assets/logDepthVertex-jWY57236.js.br +3 -0
  361. package/public/assets/logDepthVertex-jWY57236.js.gz +0 -0
  362. package/public/assets/mainUVVaryingDeclaration-B-lJcjME.js +4 -0
  363. package/public/assets/mainUVVaryingDeclaration-D1LMmumw.js +4 -0
  364. package/public/assets/mesh.vertexData.functions-BXkNVxNr.js +1 -0
  365. package/public/assets/mesh.vertexData.functions-BXkNVxNr.js.br +0 -0
  366. package/public/assets/mesh.vertexData.functions-BXkNVxNr.js.gz +0 -0
  367. package/public/assets/meshUboDeclaration-B5FWJmqY.js +13 -0
  368. package/public/assets/meshUboDeclaration-B5FWJmqY.js.br +1 -0
  369. package/public/assets/meshUboDeclaration-B5FWJmqY.js.gz +0 -0
  370. package/public/assets/meshUboDeclaration-DthvNL2q.js +13 -0
  371. package/public/assets/meshUboDeclaration-DthvNL2q.js.br +0 -0
  372. package/public/assets/meshUboDeclaration-DthvNL2q.js.gz +0 -0
  373. package/public/assets/morphTargetsVertex-DHRA_mKb.js +100 -0
  374. package/public/assets/morphTargetsVertex-DHRA_mKb.js.br +0 -0
  375. package/public/assets/morphTargetsVertex-DHRA_mKb.js.gz +0 -0
  376. package/public/assets/oitFinalSimpleBlend.fragment-BDN2XF0x.js +2 -0
  377. package/public/assets/oitFinalSimpleBlend.fragment-BDN2XF0x.js.br +0 -0
  378. package/public/assets/oitFinalSimpleBlend.fragment-BDN2XF0x.js.gz +0 -0
  379. package/public/assets/oitFinalSimpleBlend.fragment-C5RtcXZE.js +3 -0
  380. package/public/assets/oitFinalSimpleBlend.fragment-C5RtcXZE.js.br +0 -0
  381. package/public/assets/oitFinalSimpleBlend.fragment-C5RtcXZE.js.gz +0 -0
  382. package/public/assets/oitFragment-CAXGfgFH.js +1202 -0
  383. package/public/assets/oitFragment-CAXGfgFH.js.br +0 -0
  384. package/public/assets/oitFragment-CAXGfgFH.js.gz +0 -0
  385. package/public/assets/oitFragment-ay081Wsi.js +1077 -0
  386. package/public/assets/oitFragment-ay081Wsi.js.br +0 -0
  387. package/public/assets/oitFragment-ay081Wsi.js.gz +0 -0
  388. package/public/assets/openpbrMaterial-KVtjwf0K.js +2 -0
  389. package/public/assets/openpbrMaterial-KVtjwf0K.js.br +0 -0
  390. package/public/assets/openpbrMaterial-KVtjwf0K.js.gz +0 -0
  391. package/public/assets/outline.fragment-BanVWYIB.js +21 -0
  392. package/public/assets/outline.fragment-BanVWYIB.js.br +0 -0
  393. package/public/assets/outline.fragment-BanVWYIB.js.gz +0 -0
  394. package/public/assets/outline.fragment-CFKJOJ3l.js +18 -0
  395. package/public/assets/outline.fragment-CFKJOJ3l.js.br +0 -0
  396. package/public/assets/outline.fragment-CFKJOJ3l.js.gz +0 -0
  397. package/public/assets/outline.vertex-1q1i1Z0k.js +47 -0
  398. package/public/assets/outline.vertex-1q1i1Z0k.js.br +0 -0
  399. package/public/assets/outline.vertex-1q1i1Z0k.js.gz +0 -0
  400. package/public/assets/outline.vertex-yrM712o1.js +47 -0
  401. package/public/assets/outline.vertex-yrM712o1.js.br +0 -0
  402. package/public/assets/outline.vertex-yrM712o1.js.gz +0 -0
  403. package/public/assets/passCube.fragment-4x9m1yB9.js +23 -0
  404. package/public/assets/passCube.fragment-4x9m1yB9.js.br +0 -0
  405. package/public/assets/passCube.fragment-4x9m1yB9.js.gz +0 -0
  406. package/public/assets/passCube.fragment-j0YEcfrM.js +23 -0
  407. package/public/assets/passCube.fragment-j0YEcfrM.js.br +3 -0
  408. package/public/assets/passCube.fragment-j0YEcfrM.js.gz +0 -0
  409. package/public/assets/pbr.fragment-D4c9Imut.js +3277 -0
  410. package/public/assets/pbr.fragment-D4c9Imut.js.br +0 -0
  411. package/public/assets/pbr.fragment-D4c9Imut.js.gz +0 -0
  412. package/public/assets/pbr.fragment-qKZeRSsL.js +3327 -0
  413. package/public/assets/pbr.fragment-qKZeRSsL.js.br +0 -0
  414. package/public/assets/pbr.fragment-qKZeRSsL.js.gz +0 -0
  415. package/public/assets/pbr.vertex-CNWuYREY.js +227 -0
  416. package/public/assets/pbr.vertex-CNWuYREY.js.br +0 -0
  417. package/public/assets/pbr.vertex-CNWuYREY.js.gz +0 -0
  418. package/public/assets/pbr.vertex-joJmxK7Z.js +357 -0
  419. package/public/assets/pbr.vertex-joJmxK7Z.js.br +0 -0
  420. package/public/assets/pbr.vertex-joJmxK7Z.js.gz +0 -0
  421. package/public/assets/playable-local-editor-entry-BpT9asOr.js +4 -0
  422. package/public/assets/playable-local-editor-entry-BpT9asOr.js.br +0 -0
  423. package/public/assets/playable-local-editor-entry-BpT9asOr.js.gz +0 -0
  424. package/public/assets/playable-sdk-CrJqCMfO.js +5074 -0
  425. package/public/assets/playable-sdk-CrJqCMfO.js.br +0 -0
  426. package/public/assets/playable-sdk-CrJqCMfO.js.gz +0 -0
  427. package/public/assets/rgbdDecode.fragment-DVQvgSkR.js +5 -0
  428. package/public/assets/rgbdDecode.fragment-DVQvgSkR.js.br +0 -0
  429. package/public/assets/rgbdDecode.fragment-DVQvgSkR.js.gz +0 -0
  430. package/public/assets/rgbdDecode.fragment-jfF24wPs.js +5 -0
  431. package/public/assets/rgbdDecode.fragment-jfF24wPs.js.br +0 -0
  432. package/public/assets/rgbdDecode.fragment-jfF24wPs.js.gz +0 -0
  433. package/public/assets/rgbdEncode.fragment-AWVgflWm.js +5 -0
  434. package/public/assets/rgbdEncode.fragment-AWVgflWm.js.br +0 -0
  435. package/public/assets/rgbdEncode.fragment-AWVgflWm.js.gz +0 -0
  436. package/public/assets/rgbdEncode.fragment-DZGlem9k.js +5 -0
  437. package/public/assets/rgbdEncode.fragment-DZGlem9k.js.br +0 -0
  438. package/public/assets/rgbdEncode.fragment-DZGlem9k.js.gz +0 -0
  439. package/public/assets/sceneLoader-BJz_3O1N.js +1 -0
  440. package/public/assets/sceneLoader-BJz_3O1N.js.br +0 -0
  441. package/public/assets/sceneLoader-BJz_3O1N.js.gz +0 -0
  442. package/public/assets/screenSpaceCurvature.fragment-B-CUjGj1.js +15 -0
  443. package/public/assets/screenSpaceCurvature.fragment-B-CUjGj1.js.br +0 -0
  444. package/public/assets/screenSpaceCurvature.fragment-B-CUjGj1.js.gz +0 -0
  445. package/public/assets/selection.fragment-G8Edn4iI.js +35 -0
  446. package/public/assets/selection.fragment-G8Edn4iI.js.br +0 -0
  447. package/public/assets/selection.fragment-G8Edn4iI.js.gz +0 -0
  448. package/public/assets/selection.fragment-lxotM05-.js +35 -0
  449. package/public/assets/selection.fragment-lxotM05-.js.br +0 -0
  450. package/public/assets/selection.fragment-lxotM05-.js.gz +0 -0
  451. package/public/assets/selection.vertex-BXV_f7Y2.js +74 -0
  452. package/public/assets/selection.vertex-BXV_f7Y2.js.br +0 -0
  453. package/public/assets/selection.vertex-BXV_f7Y2.js.gz +0 -0
  454. package/public/assets/selection.vertex-N4uHCMNz.js +73 -0
  455. package/public/assets/selection.vertex-N4uHCMNz.js.br +0 -0
  456. package/public/assets/selection.vertex-N4uHCMNz.js.gz +0 -0
  457. package/public/assets/selectionOutline.fragment-GI37GIN9.js +48 -0
  458. package/public/assets/selectionOutline.fragment-GI37GIN9.js.br +0 -0
  459. package/public/assets/selectionOutline.fragment-GI37GIN9.js.gz +0 -0
  460. package/public/assets/selectionOutline.fragment-Hvq4J9-Z.js +47 -0
  461. package/public/assets/selectionOutline.fragment-Hvq4J9-Z.js.br +0 -0
  462. package/public/assets/selectionOutline.fragment-Hvq4J9-Z.js.gz +0 -0
  463. package/public/assets/shadowMap.fragment-Bc5HgWvg.js +79 -0
  464. package/public/assets/shadowMap.fragment-Bc5HgWvg.js.br +0 -0
  465. package/public/assets/shadowMap.fragment-Bc5HgWvg.js.gz +0 -0
  466. package/public/assets/shadowMap.fragment-C43vlUxN.js +78 -0
  467. package/public/assets/shadowMap.fragment-C43vlUxN.js.br +0 -0
  468. package/public/assets/shadowMap.fragment-C43vlUxN.js.gz +0 -0
  469. package/public/assets/shadowMap.vertex-CneYEevu.js +119 -0
  470. package/public/assets/shadowMap.vertex-CneYEevu.js.br +0 -0
  471. package/public/assets/shadowMap.vertex-CneYEevu.js.gz +0 -0
  472. package/public/assets/shadowMap.vertex-DCmGPxPg.js +109 -0
  473. package/public/assets/shadowMap.vertex-DCmGPxPg.js.br +0 -0
  474. package/public/assets/shadowMap.vertex-DCmGPxPg.js.gz +0 -0
  475. package/public/assets/shadowMapFragmentSoftTransparentShadow-20DchIFl.js +4 -0
  476. package/public/assets/shadowMapFragmentSoftTransparentShadow-20DchIFl.js.br +0 -0
  477. package/public/assets/shadowMapFragmentSoftTransparentShadow-20DchIFl.js.gz +0 -0
  478. package/public/assets/shadowMapFragmentSoftTransparentShadow-CcyAwByw.js +4 -0
  479. package/public/assets/shadowMapFragmentSoftTransparentShadow-CcyAwByw.js.br +0 -0
  480. package/public/assets/shadowMapFragmentSoftTransparentShadow-CcyAwByw.js.gz +0 -0
  481. package/public/assets/sharpen.fragment-u0Zk00IW.js +8 -0
  482. package/public/assets/sharpen.fragment-u0Zk00IW.js.br +0 -0
  483. package/public/assets/sharpen.fragment-u0Zk00IW.js.gz +0 -0
  484. package/public/assets/standardMaterial-CgDYhl-K.js +1329 -0
  485. package/public/assets/standardMaterial-CgDYhl-K.js.br +0 -0
  486. package/public/assets/standardMaterial-CgDYhl-K.js.gz +0 -0
  487. package/public/assets/textureMerger.fragment-Bb06oGwL.js +84 -0
  488. package/public/assets/textureMerger.fragment-Bb06oGwL.js.br +0 -0
  489. package/public/assets/textureMerger.fragment-Bb06oGwL.js.gz +0 -0
  490. package/public/assets/textureMerger.fragment-yYgn-A7X.js +76 -0
  491. package/public/assets/textureMerger.fragment-yYgn-A7X.js.br +0 -0
  492. package/public/assets/textureMerger.fragment-yYgn-A7X.js.gz +0 -0
  493. package/public/assets/tgaTextureLoader-BD8cHb3T.js +1 -0
  494. package/public/assets/tgaTextureLoader-BD8cHb3T.js.br +0 -0
  495. package/public/assets/tgaTextureLoader-BD8cHb3T.js.gz +0 -0
  496. package/public/assets/vertexColorMixing-31u6kp3A.js +24 -0
  497. package/public/assets/vertexColorMixing-31u6kp3A.js.br +1 -0
  498. package/public/assets/vertexColorMixing-31u6kp3A.js.gz +0 -0
  499. package/public/assets/vertexColorMixing-CWKPQGdm.js +20 -0
  500. package/public/assets/vertexColorMixing-CWKPQGdm.js.br +0 -0
  501. package/public/assets/vertexColorMixing-CWKPQGdm.js.gz +0 -0
  502. package/public/assets/volumetricLightingBlendVolume.fragment-9wHUWZ30.js +11 -0
  503. package/public/assets/volumetricLightingBlendVolume.fragment-9wHUWZ30.js.br +0 -0
  504. package/public/assets/volumetricLightingBlendVolume.fragment-9wHUWZ30.js.gz +0 -0
  505. package/public/assets/volumetricLightingBlendVolume.fragment-N-9p72Fm.js +12 -0
  506. package/public/assets/volumetricLightingBlendVolume.fragment-N-9p72Fm.js.br +0 -0
  507. package/public/assets/volumetricLightingBlendVolume.fragment-N-9p72Fm.js.gz +0 -0
  508. package/public/assets/volumetricLightingRenderVolume.fragment-DJkHTox8.js +15 -0
  509. package/public/assets/volumetricLightingRenderVolume.fragment-DJkHTox8.js.br +0 -0
  510. package/public/assets/volumetricLightingRenderVolume.fragment-DJkHTox8.js.gz +0 -0
  511. package/public/assets/volumetricLightingRenderVolume.fragment-uuHa0TVJ.js +13 -0
  512. package/public/assets/volumetricLightingRenderVolume.fragment-uuHa0TVJ.js.br +0 -0
  513. package/public/assets/volumetricLightingRenderVolume.fragment-uuHa0TVJ.js.gz +0 -0
  514. package/public/assets/volumetricLightingRenderVolume.vertex-DR3E2COu.js +4 -0
  515. package/public/assets/volumetricLightingRenderVolume.vertex-DR3E2COu.js.br +0 -0
  516. package/public/assets/volumetricLightingRenderVolume.vertex-DR3E2COu.js.gz +0 -0
  517. package/public/assets/volumetricLightingRenderVolume.vertex-DhGKqZWW.js +5 -0
  518. package/public/assets/volumetricLightingRenderVolume.vertex-DhGKqZWW.js.br +0 -0
  519. package/public/assets/volumetricLightingRenderVolume.vertex-DhGKqZWW.js.gz +0 -0
  520. package/public/assets/webAudioBus-uR5af0TN.js +1 -0
  521. package/public/assets/webAudioBus-uR5af0TN.js.br +0 -0
  522. package/public/assets/webAudioBus-uR5af0TN.js.gz +0 -0
  523. package/public/assets/webAudioMainBus-B4JHk1VB.js +1 -0
  524. package/public/assets/webAudioMainBus-B4JHk1VB.js.br +0 -0
  525. package/public/assets/webAudioMainBus-B4JHk1VB.js.gz +0 -0
  526. package/public/assets/workerPool-H9Ji3mCo.js +1 -0
  527. package/public/assets/workerPool-H9Ji3mCo.js.br +2 -0
  528. package/public/assets/workerPool-H9Ji3mCo.js.gz +0 -0
  529. package/public/index.html +19 -0
  530. package/public/index.html.br +0 -0
  531. package/public/index.html.gz +0 -0
  532. package/runtime/editor-control-plane.mjs +5 -0
  533. package/worker/editor-service-worker.mjs +1 -0
@@ -0,0 +1,1077 @@
1
+ import{fp as e}from"./standardMaterial-CgDYhl-K.js";const n="decalFragment",X=`#ifdef DECAL
2
+ var decalTempColor=decalColor.rgb;var decalTempAlpha=decalColor.a;
3
+ #ifdef GAMMADECAL
4
+ decalTempColor=toLinearSpaceVec3(decalColor.rgb);
5
+ #endif
6
+ #ifdef DECAL_SMOOTHALPHA
7
+ decalTempAlpha=decalColor.a*decalColor.a;
8
+ #endif
9
+ surfaceAlbedo=mix(surfaceAlbedo.rgb,decalTempColor,decalTempAlpha);
10
+ #endif
11
+ `;e.IncludesShadersStoreWGSL[n]||(e.IncludesShadersStoreWGSL[n]=X);const d="clusteredLightingFunctions",D=`struct ClusteredLight {vLightData: vec4f,
12
+ vLightDiffuse: vec4f,
13
+ vLightSpecular: vec4f,
14
+ vLightDirection: vec4f,
15
+ vLightFalloff: vec4f,}
16
+ fn getClusteredLight(lightDataTexture: texture_2d<f32>,index: u32)->ClusteredLight {return ClusteredLight(
17
+ textureLoad(lightDataTexture,vec2u(0,index),0),
18
+ textureLoad(lightDataTexture,vec2u(1,index),0),
19
+ textureLoad(lightDataTexture,vec2u(2,index),0),
20
+ textureLoad(lightDataTexture,vec2u(3,index),0),
21
+ textureLoad(lightDataTexture,vec2u(4,index),0)
22
+ );}
23
+ fn getClusteredSliceIndex(sliceData: vec2f,viewDepth: f32)->i32 {return i32(log(viewDepth)*sliceData.x+sliceData.y);}
24
+ `;e.IncludesShadersStoreWGSL[d]||(e.IncludesShadersStoreWGSL[d]=D);const t="reflectionFunction",m=`fn computeFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
25
+ {var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0); }
26
+ fn computeMirroredFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
27
+ {var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(1.0-s,t,0); }
28
+ fn computeEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
29
+ {var cameraToVertex: vec3f=normalize(worldPos.xyz-eyePosition);var r: vec3f=normalize(reflect(cameraToVertex,worldNormal));r= (reflectionMatrix* vec4f(r,0)).xyz;var lon: f32=atan2(r.z,r.x);var lat: f32=acos(r.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0);}
30
+ fn computeSphericalCoords(worldPos: vec4f,worldNormal: vec3f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
31
+ {var viewDir: vec3f=normalize((view*worldPos).xyz);var viewNormal: vec3f=normalize((view* vec4f(worldNormal,0.0)).xyz);var r: vec3f=reflect(viewDir,viewNormal);r= (reflectionMatrix* vec4f(r,0)).xyz;r.z=r.z-1.0;var m: f32=2.0*length(r);return vec3f(r.x/m+0.5,1.0-r.y/m-0.5,0);}
32
+ fn computePlanarCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
33
+ {var viewDir: vec3f=worldPos.xyz-eyePosition;var coords: vec3f=normalize(reflect(viewDir,worldNormal));return (reflectionMatrix* vec4f(coords,1)).xyz;}
34
+ fn computeCubicCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
35
+ {var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords= (reflectionMatrix* vec4f(coords,0)).xyz;
36
+ #ifdef INVERTCUBICMAP
37
+ coords.y*=-1.0;
38
+ #endif
39
+ return coords;}
40
+ fn computeCubicLocalCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f,reflectionSize: vec3f,reflectionPosition: vec3f)->vec3f
41
+ {var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=(reflectionMatrix* vec4f(coords,0)).xyz;
42
+ #ifdef INVERTCUBICMAP
43
+ coords.y*=-1.0;
44
+ #endif
45
+ return coords;}
46
+ fn computeProjectionCoords(worldPos: vec4f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
47
+ {return (reflectionMatrix*(view*worldPos)).xyz;}
48
+ fn computeSkyBoxCoords(positionW: vec3f,reflectionMatrix: mat4x4f)->vec3f
49
+ {return (reflectionMatrix* vec4f(positionW,1.)).xyz;}
50
+ #ifdef REFLECTION
51
+ fn computeReflectionCoords(worldPos: vec4f,worldNormal: vec3f)->vec3f
52
+ {
53
+ #ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
54
+ var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
55
+ #endif
56
+ #ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
57
+ var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
58
+ #endif
59
+ #ifdef REFLECTIONMAP_EQUIRECTANGULAR
60
+ return computeEquirectangularCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
61
+ #endif
62
+ #ifdef REFLECTIONMAP_SPHERICAL
63
+ return computeSphericalCoords(worldPos,worldNormal,scene.view,uniforms.reflectionMatrix);
64
+ #endif
65
+ #ifdef REFLECTIONMAP_PLANAR
66
+ return computePlanarCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
67
+ #endif
68
+ #ifdef REFLECTIONMAP_CUBIC
69
+ #ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
70
+ return computeCubicLocalCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix,uniforms.vReflectionSize,uniforms.vReflectionPosition);
71
+ #else
72
+ return computeCubicCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
73
+ #endif
74
+ #endif
75
+ #ifdef REFLECTIONMAP_PROJECTION
76
+ return computeProjectionCoords(worldPos,scene.view,uniforms.reflectionMatrix);
77
+ #endif
78
+ #ifndef REFLECTIONMAP_CUBIC
79
+ #ifdef REFLECTIONMAP_SKYBOX
80
+ return computeSkyBoxCoords(fragmentInputs.vPositionUVW,uniforms.reflectionMatrix);
81
+ #endif
82
+ #endif
83
+ #ifdef REFLECTIONMAP_EXPLICIT
84
+ return vec3f(0,0,0);
85
+ #endif
86
+ }
87
+ #endif
88
+ `;e.IncludesShadersStoreWGSL[t]||(e.IncludesShadersStoreWGSL[t]=m);const I={name:t,shader:m},W=Object.freeze(Object.defineProperty({__proto__:null,reflectionFunctionWGSL:I},Symbol.toStringTag,{value:"Module"})),r="lightUboDeclaration",S=`#ifdef LIGHT{X}
89
+ struct Light{X}
90
+ {vLightData: vec4f,
91
+ vLightDiffuse: vec4f,
92
+ vLightSpecular: vec4f,
93
+ #ifdef SPOTLIGHT{X}
94
+ vLightDirection: vec4f,
95
+ vLightFalloff: vec4f,
96
+ #elif defined(POINTLIGHT{X})
97
+ vLightFalloff: vec4f,
98
+ #elif defined(HEMILIGHT{X})
99
+ vLightGround: vec3f,
100
+ #elif defined(CLUSTLIGHT{X})
101
+ vSliceData: vec2f,
102
+ vSliceRanges: array<vec4f,CLUSTLIGHT_SLICES>,
103
+ #endif
104
+ #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
105
+ vLightWidth: vec4f,
106
+ vLightHeight: vec4f,
107
+ #endif
108
+ shadowsInfo: vec4f,
109
+ depthValues: vec2f} ;var<uniform> light{X} : Light{X};
110
+ #ifdef IESLIGHTTEXTURE{X}
111
+ var iesLightTexture{X}Sampler: sampler;var iesLightTexture{X}: texture_2d<f32>;
112
+ #endif
113
+ #ifdef RECTAREALIGHTEMISSIONTEXTURE{X}
114
+ var rectAreaLightEmissionTexture{X}Sampler: sampler;var rectAreaLightEmissionTexture{X}: texture_2d<f32>;
115
+ #endif
116
+ #ifdef PROJECTEDLIGHTTEXTURE{X}
117
+ uniform textureProjectionMatrix{X}: mat4x4f;var projectionLightTexture{X}Sampler: sampler;var projectionLightTexture{X}: texture_2d<f32>;
118
+ #endif
119
+ #ifdef CLUSTLIGHT{X}
120
+ var lightDataTexture{X}: texture_2d<f32>;var<storage,read> tileMaskBuffer{X}: array<u32>;
121
+ #endif
122
+ #ifdef SHADOW{X}
123
+ #ifdef SHADOWCSM{X}
124
+ uniform lightMatrix{X}: array<mat4x4f,SHADOWCSMNUM_CASCADES{X}>;uniform viewFrustumZ{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform frustumLengths{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform cascadeBlendFactor{X}: f32;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;var<private> vPositionFromLight{X}: array<vec4f,4>;var<private> vDepthMetric{X} : array<f32,4>;
125
+ #if defined(SHADOWPCSS{X})
126
+ var shadowTexture{X}Sampler: sampler_comparison;
127
+ var shadowTexture{X}: texture_depth_2d_array;var depthTexture{X}Sampler: sampler;var depthTexture{X}: texture_2d_array<f32>;uniform lightSizeUVCorrection{X}: array<vec2f,SHADOWCSMNUM_CASCADES{X}>;uniform depthCorrection{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform penumbraDarkness{X}: f32;
128
+ #elif defined(SHADOWPCF{X})
129
+ var shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d_array;
130
+ #else
131
+ var shadowTexture{X}Sampler: sampler;
132
+ var shadowTexture{X}: texture_2d_array<f32>;
133
+ #endif
134
+ #ifdef SHADOWCSMDEBUG{X}
135
+ const vCascadeColorsMultiplier{X}: array<vec3f,8>=array<vec3f,8>
136
+ (
137
+ vec3f ( 1.5,0.0,0.0 ),
138
+ vec3f ( 0.0,1.5,0.0 ),
139
+ vec3f ( 0.0,0.0,5.5 ),
140
+ vec3f ( 1.5,0.0,5.5 ),
141
+ vec3f ( 1.5,1.5,0.0 ),
142
+ vec3f ( 1.0,1.0,1.0 ),
143
+ vec3f ( 0.0,1.0,5.5 ),
144
+ vec3f ( 0.5,3.5,0.75 )
145
+ );
146
+ #endif
147
+ #elif defined(SHADOWCUBE{X})
148
+ var shadowTexture{X}Sampler: sampler;var shadowTexture{X}: texture_cube<f32>;
149
+ #else
150
+ varying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;
151
+ #if defined(SHADOWPCSS{X})
152
+ var shadowTexture{X}Sampler: sampler_comparison;
153
+ var shadowTexture{X}: texture_depth_2d;var depthTexture{X}Sampler: sampler;
154
+ var depthTexture{X}: texture_2d<f32>;
155
+ #elif defined(SHADOWPCF{X})
156
+ var shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d;
157
+ #else
158
+ var shadowTexture{X}Sampler: sampler;
159
+ var shadowTexture{X}: texture_2d<f32>;
160
+ #endif
161
+ uniform lightMatrix{X}: mat4x4f;
162
+ #endif
163
+ #endif
164
+ #endif
165
+ `;e.IncludesShadersStoreWGSL[r]||(e.IncludesShadersStoreWGSL[r]=S);const C={name:r,shader:S},U=Object.freeze(Object.defineProperty({__proto__:null,lightUboDeclarationWGSL:C},Symbol.toStringTag,{value:"Module"})),l="ltcHelperFunctions",E=`fn LTCUv(N: vec3f,V: vec3f,roughness: f32)->vec2f {var LUTSIZE: f32=64.0;var LUTSCALE: f32=( LUTSIZE-1.0 )/LUTSIZE;var LUTBIAS:f32=0.5/LUTSIZE;var dotNV:f32=saturate( dot( N,V ) );var uv:vec2f=vec2f( roughness,sqrt( 1.0-dotNV ) );uv=uv*LUTSCALE+LUTBIAS;return uv;}
166
+ fn LTCClippedSphereFormFactor( f:vec3f )->f32 {var l: f32=length( f );return max( ( l*l+f.z )/( l+1.0 ),0.0 );}
167
+ fn LTCEdgeVectorFormFactor( v1:vec3f,v2:vec3f )->vec3f {var x:f32=dot( v1,v2 );var y:f32=abs( x );var a:f32=0.8543985+( 0.4965155+0.0145206*y )*y;var b:f32=3.4175940+( 4.1616724+y )*y;var v:f32=a/b;var thetaSintheta:f32=0.0;if( x>0.0 )
168
+ {thetaSintheta=v;}
169
+ else
170
+ {thetaSintheta=0.5*inverseSqrt( max( 1.0-x*x,0.00000001 ) )-v;}
171
+ return cross( v1,v2 )*thetaSintheta;}
172
+ fn LTCEvaluate( N:vec3f,V:vec3f,P:vec3f,mInv: mat3x3<f32>,rectCoords0:vec3f,rectCoords1:vec3f,rectCoords2:vec3f,rectCoords3:vec3f )->vec3f {var v1:vec3f=rectCoords1-rectCoords0;var v2:vec3f=rectCoords3-rectCoords0;var lightNormal:vec3f=cross( v1,v2 );if( dot( lightNormal,P-rectCoords0 )<0.0 ){return vec3f( 0.0 );}
173
+ var T1:vec3f=normalize( V-N*dot( V,N ) );var T2:vec3f=- cross( N,T1 );
174
+ var mat: mat3x3<f32>=mInv*transposeMat3( mat3x3<f32>( T1,T2,N ) );var coords0: vec3f=mat*( rectCoords0-P );var coords1: vec3f=mat*( rectCoords1-P );var coords2: vec3f=mat*( rectCoords2-P );var coords3: vec3f=mat*( rectCoords3-P );coords0=normalize( coords0 );coords1=normalize( coords1 );coords2=normalize( coords2 );coords3=normalize( coords3 );var vectorFormFactor:vec3f=vec3( 0.0 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords0,coords1 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords1,coords2 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords2,coords3 );vectorFormFactor+=LTCEdgeVectorFormFactor( coords3,coords0 );var result:f32=LTCClippedSphereFormFactor( vectorFormFactor );return vec3f( result );}
175
+ struct areaLightData
176
+ {Diffuse: vec3f,
177
+ Specular: vec3f,
178
+ Fresnel: vec4f};fn computeAreaLightSpecularDiffuseFresnel(ltc1: texture_2d<f32>,ltc1Sampler:sampler,ltc2:texture_2d<f32>,ltc2Sampler:sampler,viewDir: vec3f,normal:vec3f,position:vec3f,lightPos:vec3f,halfWidth:vec3f, halfHeight:vec3f,roughness:f32)->areaLightData {var result: areaLightData;var rectCoords0:vec3f=lightPos+halfWidth-halfHeight;
179
+ var rectCoords1:vec3f=lightPos-halfWidth-halfHeight;var rectCoords2:vec3f=lightPos-halfWidth+halfHeight;var rectCoords3:vec3f=lightPos+halfWidth+halfHeight;
180
+ #ifdef SPECULARTERM
181
+ var uv:vec2f=LTCUv( normal,viewDir,roughness );var t1:vec4f=textureSample( ltc1,ltc1Sampler,uv );var t2:vec4f=textureSample( ltc2,ltc2Sampler,uv );var mInv:mat3x3<f32>=mat3x3<f32>(
182
+ vec3f( t1.x,0,t1.y ),
183
+ vec3f( 0,1, 0 ),
184
+ vec3f( t1.z,0,t1.w )
185
+ );result.Fresnel=t2;result.Specular=LTCEvaluate( normal,viewDir,position,mInv,rectCoords0,rectCoords1,rectCoords2,rectCoords3 );
186
+ #endif
187
+ var mInvEmpty:mat3x3<f32>=mat3x3<f32>(
188
+ vec3f( 1,0,0 ),
189
+ vec3f( 0,1,0 ),
190
+ vec3f( 0,0,1 )
191
+ );result.Diffuse+=LTCEvaluate( normal,viewDir,position,mInvEmpty,rectCoords0,rectCoords1,rectCoords2,rectCoords3 );return result;}
192
+ fn FetchDiffuseFilteredTexture(texLightFiltered: texture_2d<f32>,texLightFilteredSampler: sampler,p1_: vec3f,p2_: vec3f,p3_: vec3f,p4_: vec3f)->vec3f {var V1: vec3f=p2_-p1_;var V2: vec3f=p4_-p1_;var planeOrtho: vec3f=cross(V1,V2);var planeAreaSquared: f32=dot(planeOrtho,planeOrtho);var planeDistxPlaneArea: f32=dot(planeOrtho,p1_);var P: vec3f=planeDistxPlaneArea*planeOrtho/planeAreaSquared-p1_;var dot_V1_V2: f32=dot(V1,V2);var inv_dot_V1_V1: f32=1.0/dot(V1,V1);var V2_: vec3f=V2-V1*dot_V1_V2*inv_dot_V1_V1;var Puv: vec2f;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;var d: f32=abs(planeDistxPlaneArea)/pow(planeAreaSquared,0.75);var sampleLOD: f32=log(2048.0*d)/log(3.0);var sampleUV: vec2f=vec2f(0.125,0.125)+(vec2f(0.75)*Puv);sampleUV.x=1.0-sampleUV.x;return textureSampleLevel(texLightFiltered,texLightFilteredSampler,sampleUV,sampleLOD).rgb;}
193
+ fn LTCEvaluateWithEmission(N: vec3f,V: vec3f,P: vec3f,mInv: mat3x3<f32>,rectCoords0: vec3f,rectCoords1: vec3f,rectCoords2: vec3f,rectCoords3: vec3f,texFilteredMap: texture_2d<f32>,texFilteredMapSampler: sampler)->vec3f {var v1: vec3f=rectCoords1-rectCoords0;var v2: vec3f=rectCoords3-rectCoords0;var lightNormal: vec3f=cross(v1,v2);if (dot(lightNormal,P-rectCoords0)<0.0) {return vec3f(0.0);}
194
+ var T1: vec3f=normalize(V-N*dot(V,N));var T2: vec3f=-cross(N,T1);var mat: mat3x3<f32>=mInv*transposeMat3(mat3x3<f32>(T1,T2,N));var coords0: vec3f=mat*(rectCoords0-P);var coords1: vec3f=mat*(rectCoords1-P);var coords2: vec3f=mat*(rectCoords2-P);var coords3: vec3f=mat*(rectCoords3-P);var textureLight: vec3f=FetchDiffuseFilteredTexture(texFilteredMap,texFilteredMapSampler,coords0,coords1,coords2,coords3);coords0=normalize(coords0);coords1=normalize(coords1);coords2=normalize(coords2);coords3=normalize(coords3);var vectorFormFactor: vec3f=vec3f(0.0);vectorFormFactor+=LTCEdgeVectorFormFactor(coords0,coords1);vectorFormFactor+=LTCEdgeVectorFormFactor(coords1,coords2);vectorFormFactor+=LTCEdgeVectorFormFactor(coords2,coords3);vectorFormFactor+=LTCEdgeVectorFormFactor(coords3,coords0);var result: f32=LTCClippedSphereFormFactor(vectorFormFactor);return vec3f(result)*textureLight;}
195
+ fn computeAreaLightSpecularDiffuseFresnelWithEmission(ltc1: texture_2d<f32>,ltc1Sampler:sampler,ltc2:texture_2d<f32>,ltc2Sampler:sampler,emissionTexture: texture_2d<f32>,emissionTextureSampler:sampler,viewDir: vec3f,normal:vec3f,position:vec3f,lightPos:vec3f,halfWidth:vec3f, halfHeight:vec3f,roughness:f32)->areaLightData {var result: areaLightData;var rectCoords0: vec3f=lightPos+halfWidth-halfHeight;
196
+ var rectCoords1: vec3f=lightPos-halfWidth-halfHeight;var rectCoords2: vec3f=lightPos-halfWidth+halfHeight;var rectCoords3: vec3f=lightPos+halfWidth+halfHeight;
197
+ #ifdef SPECULARTERM
198
+ var uv: vec2f=LTCUv(normal,viewDir,roughness);var t1: vec4f=textureSample(ltc1,ltc1Sampler,uv);var t2: vec4f=textureSample(ltc2,ltc2Sampler,uv);var mInv: mat3x3<f32>=mat3x3<f32>(
199
+ vec3f(t1.x,0,t1.y),
200
+ vec3f(0,1,0),
201
+ vec3f(t1.z,0,t1.w)
202
+ );result.Specular=LTCEvaluateWithEmission(normal,viewDir,position,mInv,rectCoords0,rectCoords1,rectCoords2,rectCoords3,emissionTexture,emissionTextureSampler);result.Fresnel=t2;
203
+ #endif
204
+ var mInvEmpty: mat3x3<f32>=mat3x3<f32>(
205
+ vec3f(1,0,0),
206
+ vec3f(0,1,0),
207
+ vec3f(0,0,1)
208
+ );result.Diffuse=LTCEvaluateWithEmission(normal,viewDir,position,mInvEmpty,rectCoords0,rectCoords1,rectCoords2,rectCoords3,emissionTexture,emissionTextureSampler);return result;}
209
+ `;e.IncludesShadersStoreWGSL[l]||(e.IncludesShadersStoreWGSL[l]=E);const a="shadowsFragmentFunctions",g=`#ifdef SHADOWS
210
+ #ifndef SHADOWFLOAT
211
+ fn unpack(color: vec4f)->f32
212
+ {const bit_shift: vec4f= vec4f(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);}
213
+ #endif
214
+ fn computeFallOff(value: f32,clipSpace: vec2f,frustumEdgeFalloff: f32)->f32
215
+ {var mask: f32=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}
216
+ fn computeShadowCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthValues: vec2f)->f32
217
+ {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
218
+ #ifndef SHADOWFLOAT
219
+ var shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
220
+ #else
221
+ var shadow: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
222
+ #endif
223
+ return select(1.0,darkness,depth>shadow);}
224
+ fn computeShadowWithPoissonSamplingCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,mapSize: f32,darkness: f32,depthValues: vec2f)->f32
225
+ {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;var visibility: f32=1.;var poissonDisk: array<vec3f,4>;poissonDisk[0]= vec3f(-1.0,1.0,-1.0);poissonDisk[1]= vec3f(1.0,-1.0,-1.0);poissonDisk[2]= vec3f(-1.0,-1.0,-1.0);poissonDisk[3]= vec3f(1.0,-1.0,1.0);
226
+ #ifndef SHADOWFLOAT
227
+ if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth) {visibility-=0.25;};
228
+ #else
229
+ if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth) {visibility-=0.25;};
230
+ #endif
231
+ return min(1.0,visibility+darkness);}
232
+ fn computeShadowWithESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32
233
+ {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
234
+ #ifndef SHADOWFLOAT
235
+ var shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
236
+ #else
237
+ var shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
238
+ #endif
239
+ var esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return esm;}
240
+ fn computeShadowWithCloseESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32
241
+ {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
242
+ #ifndef SHADOWFLOAT
243
+ var shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
244
+ #else
245
+ var shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
246
+ #endif
247
+ var esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return esm;}
248
+ fn computeShadowCSM(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d_array<f32>,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32
249
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
250
+ #ifndef SHADOWFLOAT
251
+ var shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,uv,layer));
252
+ #else
253
+ var shadow: f32=textureSample(shadowTexture,shadowSampler,uv,layer).x;
254
+ #endif
255
+ return select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}
256
+ fn computeShadow(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32
257
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
258
+ {return 1.0;}
259
+ else
260
+ {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
261
+ #ifndef SHADOWFLOAT
262
+ var shadow: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
263
+ #else
264
+ var shadow: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
265
+ #endif
266
+ return select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}}
267
+ fn computeShadowWithPoissonSampling(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,mapSize: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
268
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
269
+ {return 1.0;}
270
+ else
271
+ {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);var visibility: f32=1.;var poissonDisk: array<vec2f,4>;poissonDisk[0]= vec2f(-0.94201624,-0.39906216);poissonDisk[1]= vec2f(0.94558609,-0.76890725);poissonDisk[2]= vec2f(-0.094184101,-0.92938870);poissonDisk[3]= vec2f(0.34495938,0.29387760);
272
+ #ifndef SHADOWFLOAT
273
+ if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
274
+ if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
275
+ if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
276
+ if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
277
+ #else
278
+ if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
279
+ if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
280
+ if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
281
+ if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
282
+ #endif
283
+ return computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);}}
284
+ fn computeShadowWithESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32
285
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
286
+ {return 1.0;}
287
+ else
288
+ {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
289
+ #ifndef SHADOWFLOAT
290
+ var shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
291
+ #else
292
+ var shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
293
+ #endif
294
+ var esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
295
+ fn computeShadowWithCloseESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32
296
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
297
+ {return 1.0;}
298
+ else
299
+ {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
300
+ #ifndef SHADOWFLOAT
301
+ var shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
302
+ #else
303
+ var shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
304
+ #endif
305
+ var esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
306
+ fn getZInClip(clipSpace: vec3f,uvDepth: vec3f)->f32
307
+ {
308
+ #ifdef IS_NDC_HALF_ZRANGE
309
+ return clipSpace.z;
310
+ #else
311
+ return uvDepth.z;
312
+ #endif
313
+ }
314
+ const GREATEST_LESS_THAN_ONE: f32=0.99999994;
315
+ #define DISABLE_UNIFORMITY_ANALYSIS
316
+ fn computeShadowWithCSMPCF1(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32
317
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var shadow: f32=textureSampleCompare(shadowTexture,shadowSampler,uvDepth.xy,layer,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
318
+ fn computeShadowWithCSMPCF3(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
319
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
320
+ uv+=0.5;
321
+ var st: vec2f=fract(uv);
322
+ var base_uv: vec2f=floor(uv)-0.5;
323
+ base_uv*=shadowMapSizeAndInverse.y;
324
+ var uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
325
+ fn computeShadowWithCSMPCF5(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
326
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
327
+ uv+=0.5;
328
+ var st: vec2f=fract(uv);
329
+ var base_uv: vec2f=floor(uv)-0.5;
330
+ base_uv*=shadowMapSizeAndInverse.y;
331
+ var uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),layer,uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),layer,uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),layer,uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),layer,uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
332
+ fn computeShadowWithPCF1(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32
333
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);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 {var shadow: f32=textureSampleCompareLevel(shadowTexture,shadowSampler,uvDepth.xy,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
334
+ fn computeShadowWithPCF3(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
335
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);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 {var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
336
+ uv+=0.5;
337
+ var st: vec2f=fract(uv);
338
+ var base_uv: vec2f=floor(uv)-0.5;
339
+ base_uv*=shadowMapSizeAndInverse.y;
340
+ var uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
341
+ fn computeShadowWithPCF5(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
342
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);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 {var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
343
+ uv+=0.5;
344
+ var st: vec2f=fract(uv);
345
+ var base_uv: vec2f=floor(uv)-0.5;
346
+ base_uv*=shadowMapSizeAndInverse.y;
347
+ var uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
348
+ const PoissonSamplers32: array<vec3f,64>=array<vec3f,64> (
349
+ vec3f(0.06407013,0.05409927,0.),
350
+ vec3f(0.7366577,0.5789394,0.),
351
+ vec3f(-0.6270542,-0.5320278,0.),
352
+ vec3f(-0.4096107,0.8411095,0.),
353
+ vec3f(0.6849564,-0.4990818,0.),
354
+ vec3f(-0.874181,-0.04579735,0.),
355
+ vec3f(0.9989998,0.0009880066,0.),
356
+ vec3f(-0.004920578,-0.9151649,0.),
357
+ vec3f(0.1805763,0.9747483,0.),
358
+ vec3f(-0.2138451,0.2635818,0.),
359
+ vec3f(0.109845,0.3884785,0.),
360
+ vec3f(0.06876755,-0.3581074,0.),
361
+ vec3f(0.374073,-0.7661266,0.),
362
+ vec3f(0.3079132,-0.1216763,0.),
363
+ vec3f(-0.3794335,-0.8271583,0.),
364
+ vec3f(-0.203878,-0.07715034,0.),
365
+ vec3f(0.5912697,0.1469799,0.),
366
+ vec3f(-0.88069,0.3031784,0.),
367
+ vec3f(0.5040108,0.8283722,0.),
368
+ vec3f(-0.5844124,0.5494877,0.),
369
+ vec3f(0.6017799,-0.1726654,0.),
370
+ vec3f(-0.5554981,0.1559997,0.),
371
+ vec3f(-0.3016369,-0.3900928,0.),
372
+ vec3f(-0.5550632,-0.1723762,0.),
373
+ vec3f(0.925029,0.2995041,0.),
374
+ vec3f(-0.2473137,0.5538505,0.),
375
+ vec3f(0.9183037,-0.2862392,0.),
376
+ vec3f(0.2469421,0.6718712,0.),
377
+ vec3f(0.3916397,-0.4328209,0.),
378
+ vec3f(-0.03576927,-0.6220032,0.),
379
+ vec3f(-0.04661255,0.7995201,0.),
380
+ vec3f(0.4402924,0.3640312,0.),
381
+ vec3f(0.),
382
+ vec3f(0.),
383
+ vec3f(0.),
384
+ vec3f(0.),
385
+ vec3f(0.),
386
+ vec3f(0.),
387
+ vec3f(0.),
388
+ vec3f(0.),
389
+ vec3f(0.),
390
+ vec3f(0.),
391
+ vec3f(0.),
392
+ vec3f(0.),
393
+ vec3f(0.),
394
+ vec3f(0.),
395
+ vec3f(0.),
396
+ vec3f(0.),
397
+ vec3f(0.),
398
+ vec3f(0.),
399
+ vec3f(0.),
400
+ vec3f(0.),
401
+ vec3f(0.),
402
+ vec3f(0.),
403
+ vec3f(0.),
404
+ vec3f(0.),
405
+ vec3f(0.),
406
+ vec3f(0.),
407
+ vec3f(0.),
408
+ vec3f(0.),
409
+ vec3f(0.),
410
+ vec3f(0.),
411
+ vec3f(0.),
412
+ vec3f(0.)
413
+ );const PoissonSamplers64: array<vec3f,64>=array<vec3f,64> (
414
+ vec3f(-0.613392,0.617481,0.),
415
+ vec3f(0.170019,-0.040254,0.),
416
+ vec3f(-0.299417,0.791925,0.),
417
+ vec3f(0.645680,0.493210,0.),
418
+ vec3f(-0.651784,0.717887,0.),
419
+ vec3f(0.421003,0.027070,0.),
420
+ vec3f(-0.817194,-0.271096,0.),
421
+ vec3f(-0.705374,-0.668203,0.),
422
+ vec3f(0.977050,-0.108615,0.),
423
+ vec3f(0.063326,0.142369,0.),
424
+ vec3f(0.203528,0.214331,0.),
425
+ vec3f(-0.667531,0.326090,0.),
426
+ vec3f(-0.098422,-0.295755,0.),
427
+ vec3f(-0.885922,0.215369,0.),
428
+ vec3f(0.566637,0.605213,0.),
429
+ vec3f(0.039766,-0.396100,0.),
430
+ vec3f(0.751946,0.453352,0.),
431
+ vec3f(0.078707,-0.715323,0.),
432
+ vec3f(-0.075838,-0.529344,0.),
433
+ vec3f(0.724479,-0.580798,0.),
434
+ vec3f(0.222999,-0.215125,0.),
435
+ vec3f(-0.467574,-0.405438,0.),
436
+ vec3f(-0.248268,-0.814753,0.),
437
+ vec3f(0.354411,-0.887570,0.),
438
+ vec3f(0.175817,0.382366,0.),
439
+ vec3f(0.487472,-0.063082,0.),
440
+ vec3f(-0.084078,0.898312,0.),
441
+ vec3f(0.488876,-0.783441,0.),
442
+ vec3f(0.470016,0.217933,0.),
443
+ vec3f(-0.696890,-0.549791,0.),
444
+ vec3f(-0.149693,0.605762,0.),
445
+ vec3f(0.034211,0.979980,0.),
446
+ vec3f(0.503098,-0.308878,0.),
447
+ vec3f(-0.016205,-0.872921,0.),
448
+ vec3f(0.385784,-0.393902,0.),
449
+ vec3f(-0.146886,-0.859249,0.),
450
+ vec3f(0.643361,0.164098,0.),
451
+ vec3f(0.634388,-0.049471,0.),
452
+ vec3f(-0.688894,0.007843,0.),
453
+ vec3f(0.464034,-0.188818,0.),
454
+ vec3f(-0.440840,0.137486,0.),
455
+ vec3f(0.364483,0.511704,0.),
456
+ vec3f(0.034028,0.325968,0.),
457
+ vec3f(0.099094,-0.308023,0.),
458
+ vec3f(0.693960,-0.366253,0.),
459
+ vec3f(0.678884,-0.204688,0.),
460
+ vec3f(0.001801,0.780328,0.),
461
+ vec3f(0.145177,-0.898984,0.),
462
+ vec3f(0.062655,-0.611866,0.),
463
+ vec3f(0.315226,-0.604297,0.),
464
+ vec3f(-0.780145,0.486251,0.),
465
+ vec3f(-0.371868,0.882138,0.),
466
+ vec3f(0.200476,0.494430,0.),
467
+ vec3f(-0.494552,-0.711051,0.),
468
+ vec3f(0.612476,0.705252,0.),
469
+ vec3f(-0.578845,-0.768792,0.),
470
+ vec3f(-0.772454,-0.090976,0.),
471
+ vec3f(0.504440,0.372295,0.),
472
+ vec3f(0.155736,0.065157,0.),
473
+ vec3f(0.391522,0.849605,0.),
474
+ vec3f(-0.620106,-0.328104,0.),
475
+ vec3f(0.789239,-0.419965,0.),
476
+ vec3f(-0.545396,0.538133,0.),
477
+ vec3f(-0.178564,-0.596057,0.)
478
+ );fn computeShadowWithCSMPCSS(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array<vec3f,64>,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
479
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uvDepthLayer: vec4f= vec4f(uvDepth.x,uvDepth.y,f32(layer),uvDepth.z);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;for (var i: i32=0; i<searchTapCount; i ++) {blockerDepth=textureSample(depthTexture,depthSampler, uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer).r;numBlocker+=select(0.,1.,blockerDepth<depthMetric);sumBlockerDepth+=select(0.,blockerDepth,blockerDepth<depthMetric);}
480
+ var avgBlockerDepth: f32=sumBlockerDepth/numBlocker;var AAOffset: f32=shadowMapSizeInverse*10.;var penumbraRatio: f32=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);var filterRadius: vec4f= vec4f(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);var random: f32=getRand(vPositionFromLight.xy);var rotationAngle: f32=random*3.1415926;var rotationVector: vec2f= vec2f(cos(rotationAngle),sin(rotationAngle));var shadow: f32=0.;for (var i: i32=0; i<pcfTapCount; i++) {var offset: vec4f= vec4f(poissonSamplers[i],0.);offset= vec4f(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);let coords=uvDepthLayer+offset*filterRadius;shadow+=textureSampleCompare(shadowTexture,shadowSampler,coords.xy,i32(coords.z),coords.w);}
481
+ shadow/= f32(pcfTapCount);shadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));shadow=mix(darkness,1.,shadow);return select(computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff),1.0,numBlocker<1.0);}
482
+ fn computeShadowWithPCSS(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array<vec3f,64>)->f32
483
+ {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);if (depthMetric<0.0 || depthMetric>1.0 || uvDepth.x<0. || uvDepth.x>1.0 || uvDepth.y<0. || uvDepth.y>1.0) {return 1.0;}
484
+ var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;for (var i: i32=0; i<searchTapCount; i ++) {blockerDepth=textureSampleLevel(depthTexture,depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0).r;numBlocker+=select(0.,1.,blockerDepth<depthMetric);sumBlockerDepth+=select(0.,blockerDepth,blockerDepth<depthMetric);}
485
+ if (numBlocker<1.0) {return 1.0;}
486
+ var avgBlockerDepth: f32=sumBlockerDepth/numBlocker;var AAOffset: f32=shadowMapSizeInverse*10.;var penumbraRatio: f32=((depthMetric-avgBlockerDepth)+AAOffset);var filterRadius: f32=penumbraRatio*lightSizeUV*shadowMapSizeInverse;var random: f32=getRand(vPositionFromLight.xy);var rotationAngle: f32=random*3.1415926;var rotationVector: vec2f= vec2f(cos(rotationAngle),sin(rotationAngle));var shadow: f32=0.;for (var i: i32=0; i<pcfTapCount; i++) {var offset: vec3f=poissonSamplers[i];offset= vec3f(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);let coords=uvDepth+offset*filterRadius;shadow+=textureSampleCompareLevel(shadowTexture,shadowSampler,coords.xy,coords.z);}
487
+ shadow/= f32(pcfTapCount);shadow=mix(shadow,1.,depthMetric-avgBlockerDepth);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
488
+ fn computeShadowWithPCSS16(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
489
+ {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);}
490
+ fn computeShadowWithPCSS32(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
491
+ {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);}
492
+ fn computeShadowWithPCSS64(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
493
+ {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);}
494
+ fn computeShadowWithCSMPCSS16(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
495
+ {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
496
+ fn computeShadowWithCSMPCSS32(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
497
+ {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
498
+ fn computeShadowWithCSMPCSS64(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
499
+ {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
500
+ #endif
501
+ `;e.IncludesShadersStoreWGSL[a]||(e.IncludesShadersStoreWGSL[a]=g);const P={name:a,shader:g},H=Object.freeze(Object.defineProperty({__proto__:null,shadowsFragmentFunctionsWGSL:P},Symbol.toStringTag,{value:"Module"})),o="lightFragment",x=`#ifdef LIGHT{X}
502
+ #if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
503
+ #else
504
+ var diffuse{X}: vec4f=light{X}.vLightDiffuse;
505
+ #define CUSTOM_LIGHT{X}_COLOR
506
+ #if defined(PBR) && defined(CLUSTLIGHT{X})
507
+ {let sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,fragmentInputs.vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(
508
+ lightDataTexture{X},
509
+ &tileMaskBuffer{X},
510
+ light{X}.vLightData,
511
+ vec2u(light{X}.vSliceRanges[sliceIndex].xy),
512
+ viewDirectionW,
513
+ normalW,
514
+ fragmentInputs.vPositionW,
515
+ surfaceAlbedo,
516
+ reflectivityOut,
517
+ #ifdef IRIDESCENCE
518
+ iridescenceIntensity,
519
+ #endif
520
+ #ifdef SS_TRANSLUCENCY
521
+ subSurfaceOut,
522
+ #endif
523
+ #ifdef SPECULARTERM
524
+ AARoughnessFactors.x,
525
+ #endif
526
+ #ifdef ANISOTROPIC
527
+ anisotropicOut,
528
+ #endif
529
+ #ifdef SHEEN
530
+ sheenOut,
531
+ #endif
532
+ #ifdef CLEARCOAT
533
+ clearcoatOut,
534
+ #endif
535
+ );}
536
+ #elif defined(PBR)
537
+ #ifdef SPOTLIGHT{X}
538
+ preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
539
+ #elif defined(POINTLIGHT{X})
540
+ preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
541
+ #elif defined(HEMILIGHT{X})
542
+ preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
543
+ #elif defined(DIRLIGHT{X})
544
+ preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
545
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
546
+ #if defined(RECTAREALIGHTEMISSIONTEXTURE{X})
547
+ preInfo=computeAreaPreLightingInfoWithTexture(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,rectAreaLightEmissionTexture{X},rectAreaLightEmissionTexture{X}Sampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
548
+ #else
549
+ preInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
550
+ #endif
551
+ #endif
552
+ preInfo.NdotV=NdotV;
553
+ #ifdef SPOTLIGHT{X}
554
+ #ifdef LIGHT_FALLOFF_GLTF{X}
555
+ preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
556
+ #ifdef IESLIGHTTEXTURE{X}
557
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
558
+ #else
559
+ preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
560
+ #endif
561
+ #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
562
+ preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
563
+ #ifdef IESLIGHTTEXTURE{X}
564
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
565
+ #else
566
+ preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
567
+ #endif
568
+ #elif defined(LIGHT_FALLOFF_STANDARD{X})
569
+ preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
570
+ #ifdef IESLIGHTTEXTURE{X}
571
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
572
+ #else
573
+ preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);
574
+ #endif
575
+ #else
576
+ preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
577
+ #ifdef IESLIGHTTEXTURE{X}
578
+ preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
579
+ #else
580
+ 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);
581
+ #endif
582
+ #endif
583
+ #elif defined(POINTLIGHT{X})
584
+ #ifdef LIGHT_FALLOFF_GLTF{X}
585
+ preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
586
+ #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
587
+ preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
588
+ #elif defined(LIGHT_FALLOFF_STANDARD{X})
589
+ preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
590
+ #else
591
+ preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
592
+ #endif
593
+ #else
594
+ preInfo.attenuation=1.0;
595
+ #endif
596
+ #if defined(HEMILIGHT{X})
597
+ preInfo.roughness=roughness;
598
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
599
+ preInfo.roughness=roughness;
600
+ #else
601
+ preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
602
+ #endif
603
+ preInfo.diffuseRoughness=diffuseRoughness;preInfo.surfaceAlbedo=surfaceAlbedo;
604
+ #ifdef IRIDESCENCE
605
+ preInfo.iridescenceIntensity=iridescenceIntensity;
606
+ #endif
607
+ #ifdef SS_TRANSLUCENCY
608
+ info.diffuseTransmission=vec3f(0.0);
609
+ #endif
610
+ #ifdef HEMILIGHT{X}
611
+ info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
612
+ #elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
613
+ info.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);
614
+ #elif defined(SS_TRANSLUCENCY)
615
+ #ifndef SS_TRANSLUCENCY_LEGACY
616
+ info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb)*(1.0-subSurfaceOut.translucencyIntensity);info.diffuseTransmission=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
617
+ #else
618
+ info.diffuse=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
619
+ #endif
620
+ #else
621
+ info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
622
+ #endif
623
+ #ifdef SPECULARTERM
624
+ #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
625
+ info.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);
626
+ #else
627
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
628
+ {let metalFresnel: vec3f=vec3f(reflectivityOut.specularWeight)*getF82Specular(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90,reflectivityOut.roughness);let dielectricFresnel: vec3f=fresnelSchlickGGXVec3(preInfo.VdotH,reflectivityOut.dielectricColorF0,reflectivityOut.colorReflectanceF90);coloredFresnel=mix(dielectricFresnel,metalFresnel,reflectivityOut.metallic);}
629
+ #else
630
+ coloredFresnel=fresnelSchlickGGXVec3(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);
631
+ #endif
632
+ #ifndef LEGACY_SPECULAR_ENERGY_CONSERVATION
633
+ {let NdotH: f32=dot(normalW,preInfo.H);let fresnel: vec3f=fresnelSchlickGGXVec3(NdotH,vec3f(reflectanceF0),specularEnvironmentR90);info.diffuse*=(vec3f(1.0)-fresnel);}
634
+ #endif
635
+ #ifdef ANISOTROPIC
636
+ info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
637
+ #else
638
+ info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,coloredFresnel,AARoughnessFactors.x,diffuse{X}.rgb);
639
+ #endif
640
+ #endif
641
+ #endif
642
+ #ifndef AREALIGHT{X}
643
+ #ifdef SHEEN
644
+ #ifdef SHEEN_LINKWITHALBEDO
645
+ preInfo.roughness=sheenOut.sheenIntensity;
646
+ #else
647
+ #ifdef HEMILIGHT{X}
648
+ preInfo.roughness=sheenOut.sheenRoughness;
649
+ #else
650
+ preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
651
+ #endif
652
+ #endif
653
+ info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
654
+ #endif
655
+ #ifdef CLEARCOAT
656
+ #ifdef HEMILIGHT{X}
657
+ preInfo.roughness=clearcoatOut.clearCoatRoughness;
658
+ #else
659
+ preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
660
+ #endif
661
+ info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
662
+ #ifdef CLEARCOAT_TINT
663
+ absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
664
+ #ifdef SS_TRANSLUCENCY
665
+ info.diffuseTransmission*=absorption;
666
+ #endif
667
+ #ifdef SPECULARTERM
668
+ info.specular*=absorption;
669
+ #endif
670
+ #endif
671
+ info.diffuse*=info.clearCoat.w;
672
+ #ifdef SS_TRANSLUCENCY
673
+ info.diffuseTransmission*=info.clearCoat.w;
674
+ #endif
675
+ #ifdef SPECULARTERM
676
+ info.specular*=info.clearCoat.w;
677
+ #endif
678
+ #ifdef SHEEN
679
+ info.sheen*=info.clearCoat.w;
680
+ #endif
681
+ #endif
682
+ #endif
683
+ #else
684
+ #ifdef SPOTLIGHT{X}
685
+ #ifdef IESLIGHTTEXTURE{X}
686
+ info=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X},iesLightTexture{X}Sampler);
687
+ #else
688
+ info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
689
+ #endif
690
+ #elif defined(HEMILIGHT{X})
691
+ info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
692
+ #elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
693
+ info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
694
+ #elif define(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)
695
+ #if defined(RECTAREALIGHTEMISSIONTEXTURE{X})
696
+ info=computeAreaLightingWithTexture(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,rectAreaLightEmissionTexture{X},rectAreaLightEmissionTexture{X}Sampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
697
+ #ifdef AREALIGHTNOROUGHTNESS
698
+ 0.5
699
+ #else
700
+ uniforms.vReflectionInfos.y
701
+ #endif
702
+ );
703
+ #else
704
+ info=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
705
+ #ifdef AREALIGHTNOROUGHTNESS
706
+ 0.5
707
+ #else
708
+ uniforms.vReflectionInfos.y
709
+ #endif
710
+ );
711
+ #endif
712
+ #elif defined(CLUSTLIGHT{X})
713
+ {let sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,fragmentInputs.vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(lightDataTexture{X},&tileMaskBuffer{X},viewDirectionW,normalW,light{X}.vLightData,vec2u(light{X}.vSliceRanges[sliceIndex].xy),glossiness);}
714
+ #endif
715
+ #endif
716
+ #ifdef PROJECTEDLIGHTTEXTURE{X}
717
+ info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,uniforms.textureProjectionMatrix{X},fragmentInputs.vPositionW);
718
+ #endif
719
+ #endif
720
+ #ifdef SHADOW{X}
721
+ #ifdef SHADOWCSMDEBUG{X}
722
+ var shadowDebug{X}: vec3f;
723
+ #endif
724
+ #ifdef SHADOWCSM{X}
725
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
726
+ var index{X}: i32=-1;
727
+ #else
728
+ var index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;
729
+ #endif
730
+ var diff{X}: f32=0.;vPositionFromLight{X}[0]=fragmentInputs.vPositionFromLight{X}_0;vPositionFromLight{X}[1]=fragmentInputs.vPositionFromLight{X}_1;vPositionFromLight{X}[2]=fragmentInputs.vPositionFromLight{X}_2;vPositionFromLight{X}[3]=fragmentInputs.vPositionFromLight{X}_3;vDepthMetric{X}[0]=fragmentInputs.vDepthMetric{X}_0;vDepthMetric{X}[1]=fragmentInputs.vDepthMetric{X}_1;vDepthMetric{X}[2]=fragmentInputs.vDepthMetric{X}_2;vDepthMetric{X}[3]=fragmentInputs.vDepthMetric{X}_3;for (var i:i32=0; i<SHADOWCSMNUM_CASCADES{X}; i++)
731
+ {
732
+ #ifdef SHADOWCSM_RIGHTHANDED{X}
733
+ diff{X}=uniforms.viewFrustumZ{X}[i]+fragmentInputs.vPositionFromCamera{X}.z;
734
+ #else
735
+ diff{X}=uniforms.viewFrustumZ{X}[i]-fragmentInputs.vPositionFromCamera{X}.z;
736
+ #endif
737
+ if (diff{X}>=0.) {index{X}=i;break;}}
738
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
739
+ if (index{X}>=0)
740
+ #endif
741
+ {
742
+ #if defined(SHADOWPCF{X})
743
+ #if defined(SHADOWLOWQUALITY{X})
744
+ shadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
745
+ #elif defined(SHADOWMEDIUMQUALITY{X})
746
+ shadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
747
+ #else
748
+ shadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
749
+ #endif
750
+ #elif defined(SHADOWPCSS{X})
751
+ #if defined(SHADOWLOWQUALITY{X})
752
+ shadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
753
+ #elif defined(SHADOWMEDIUMQUALITY{X})
754
+ shadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
755
+ #else
756
+ shadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
757
+ #endif
758
+ #else
759
+ shadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
760
+ #endif
761
+ #ifdef SHADOWCSMDEBUG{X}
762
+ shadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];
763
+ #endif
764
+ #ifndef SHADOWCSMNOBLEND{X}
765
+ var frustumLength:f32=uniforms.frustumLengths{X}[index{X}];var diffRatio:f32=clamp(diff{X}/frustumLength,0.,1.)*uniforms.cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)
766
+ {index{X}+=1;var nextShadow: f32=0.;
767
+ #if defined(SHADOWPCF{X})
768
+ #if defined(SHADOWLOWQUALITY{X})
769
+ nextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
770
+ #elif defined(SHADOWMEDIUMQUALITY{X})
771
+ nextShadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
772
+ #else
773
+ nextShadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
774
+ #endif
775
+ #elif defined(SHADOWPCSS{X})
776
+ #if defined(SHADOWLOWQUALITY{X})
777
+ nextShadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
778
+ #elif defined(SHADOWMEDIUMQUALITY{X})
779
+ nextShadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
780
+ #else
781
+ nextShadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
782
+ #endif
783
+ #else
784
+ nextShadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
785
+ #endif
786
+ shadow=mix(nextShadow,shadow,diffRatio);
787
+ #ifdef SHADOWCSMDEBUG{X}
788
+ shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
789
+ #endif
790
+ }
791
+ #endif
792
+ }
793
+ #elif defined(SHADOWCLOSEESM{X})
794
+ #if defined(SHADOWCUBE{X})
795
+ shadow=computeShadowWithCloseESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
796
+ #else
797
+ shadow=computeShadowWithCloseESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
798
+ #endif
799
+ #elif defined(SHADOWESM{X})
800
+ #if defined(SHADOWCUBE{X})
801
+ shadow=computeShadowWithESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
802
+ #else
803
+ shadow=computeShadowWithESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
804
+ #endif
805
+ #elif defined(SHADOWPOISSON{X})
806
+ #if defined(SHADOWCUBE{X})
807
+ shadow=computeShadowWithPoissonSamplingCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
808
+ #else
809
+ shadow=computeShadowWithPoissonSampling(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
810
+ #endif
811
+ #elif defined(SHADOWPCF{X})
812
+ #if defined(SHADOWLOWQUALITY{X})
813
+ shadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
814
+ #elif defined(SHADOWMEDIUMQUALITY{X})
815
+ shadow=computeShadowWithPCF3(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
816
+ #else
817
+ shadow=computeShadowWithPCF5(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
818
+ #endif
819
+ #elif defined(SHADOWPCSS{X})
820
+ #if defined(SHADOWLOWQUALITY{X})
821
+ shadow=computeShadowWithPCSS16(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
822
+ #elif defined(SHADOWMEDIUMQUALITY{X})
823
+ shadow=computeShadowWithPCSS32(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
824
+ #else
825
+ shadow=computeShadowWithPCSS64(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
826
+ #endif
827
+ #else
828
+ #if defined(SHADOWCUBE{X})
829
+ shadow=computeShadowCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);
830
+ #else
831
+ shadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
832
+ #endif
833
+ #endif
834
+ #ifdef SHADOWONLY
835
+ #ifndef SHADOWINUSE
836
+ #define SHADOWINUSE
837
+ #endif
838
+ globalShadow+=shadow;shadowLightCount+=1.0;
839
+ #endif
840
+ #else
841
+ shadow=1.;
842
+ #endif
843
+ aggShadow+=shadow;numLights+=1.0;
844
+ #ifndef SHADOWONLY
845
+ #ifdef CUSTOMUSERLIGHTING
846
+ diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
847
+ #ifdef SPECULARTERM
848
+ specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
849
+ #endif
850
+ #elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
851
+ diffuseBase+=lightmapColor.rgb*shadow;
852
+ #ifdef SPECULARTERM
853
+ #ifndef LIGHTMAPNOSPECULAR{X}
854
+ specularBase+=info.specular*shadow*lightmapColor.rgb;
855
+ #endif
856
+ #endif
857
+ #ifdef CLEARCOAT
858
+ #ifndef LIGHTMAPNOSPECULAR{X}
859
+ clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
860
+ #endif
861
+ #endif
862
+ #ifdef SHEEN
863
+ #ifndef LIGHTMAPNOSPECULAR{X}
864
+ sheenBase+=info.sheen.rgb*shadow;
865
+ #endif
866
+ #endif
867
+ #else
868
+ #ifdef SHADOWCSMDEBUG{X}
869
+ diffuseBase+=info.diffuse*shadowDebug{X};
870
+ #else
871
+ diffuseBase+=info.diffuse*shadow;
872
+ #endif
873
+ #ifdef SS_TRANSLUCENCY
874
+ diffuseTransmissionBase+=info.diffuseTransmission*shadow;
875
+ #endif
876
+ #ifdef SPECULARTERM
877
+ specularBase+=info.specular*shadow;
878
+ #endif
879
+ #ifdef CLEARCOAT
880
+ clearCoatBase+=info.clearCoat.rgb*shadow;
881
+ #endif
882
+ #ifdef SHEEN
883
+ sheenBase+=info.sheen.rgb*shadow;
884
+ #endif
885
+ #endif
886
+ #endif
887
+ #endif
888
+ `;e.IncludesShadersStoreWGSL[o]||(e.IncludesShadersStoreWGSL[o]=x);const y={name:o,shader:x},V=Object.freeze(Object.defineProperty({__proto__:null,lightFragmentWGSL:y},Symbol.toStringTag,{value:"Module"})),c="prePassDeclaration",A=`#ifdef PREPASS
889
+ #ifdef PREPASS_LOCAL_POSITION
890
+ varying vPosition : vec3f;
891
+ #endif
892
+ #ifdef PREPASS_DEPTH
893
+ varying vViewPos: vec3f;
894
+ #endif
895
+ #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
896
+ varying vNormViewDepth: f32;
897
+ #endif
898
+ #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
899
+ varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
900
+ #endif
901
+ #endif
902
+ `;e.IncludesShadersStoreWGSL[c]||(e.IncludesShadersStoreWGSL[c]=A);const v="oitDeclaration",F=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
903
+ #define MAX_DEPTH 99999.0
904
+ var oitDepthSamplerSampler: sampler;var oitDepthSampler: texture_2d<f32>;var oitFrontColorSamplerSampler: sampler;var oitFrontColorSampler: texture_2d<f32>;
905
+ #endif
906
+ `;e.IncludesShadersStoreWGSL[v]||(e.IncludesShadersStoreWGSL[v]=F);const h="samplerFragmentDeclaration",_=`#ifdef _DEFINENAME_
907
+ #if _DEFINENAME_DIRECTUV==1
908
+ #define v_VARYINGNAME_UV vMainUV1
909
+ #elif _DEFINENAME_DIRECTUV==2
910
+ #define v_VARYINGNAME_UV vMainUV2
911
+ #elif _DEFINENAME_DIRECTUV==3
912
+ #define v_VARYINGNAME_UV vMainUV3
913
+ #elif _DEFINENAME_DIRECTUV==4
914
+ #define v_VARYINGNAME_UV vMainUV4
915
+ #elif _DEFINENAME_DIRECTUV==5
916
+ #define v_VARYINGNAME_UV vMainUV5
917
+ #elif _DEFINENAME_DIRECTUV==6
918
+ #define v_VARYINGNAME_UV vMainUV6
919
+ #else
920
+ varying v_VARYINGNAME_UV: vec2f;
921
+ #endif
922
+ var _SAMPLERNAME_SamplerSampler: sampler;var _SAMPLERNAME_Sampler: texture_2d<f32>;
923
+ #endif
924
+ `;e.IncludesShadersStoreWGSL[h]||(e.IncludesShadersStoreWGSL[h]=_);const i="bumpFragmentMainFunctions",w=`#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
925
+ #if defined(TANGENT) && defined(NORMAL)
926
+ varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
927
+ #endif
928
+ #ifdef OBJECTSPACE_NORMALMAP
929
+ uniform normalMatrix: mat4x4f;fn toNormalMatrix(m: mat4x4f)->mat4x4f
930
+ {var a00=m[0][0];var a01=m[0][1];var a02=m[0][2];var a03=m[0][3];var a10=m[1][0];var a11=m[1][1];var a12=m[1][2];var a13=m[1][3];var a20=m[2][0];
931
+ var a21=m[2][1];var a22=m[2][2];var a23=m[2][3];var a30=m[3][0];
932
+ var a31=m[3][1];var a32=m[3][2];var a33=m[3][3];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi=mat4x4<f32>(
933
+ (a11*b11-a12*b10+a13*b09)/det,
934
+ (a02*b10-a01*b11-a03*b09)/det,
935
+ (a31*b05-a32*b04+a33*b03)/det,
936
+ (a22*b04-a21*b05-a23*b03)/det,
937
+ (a12*b08-a10*b11-a13*b07)/det,
938
+ (a00*b11-a02*b08+a03*b07)/det,
939
+ (a32*b02-a30*b05-a33*b01)/det,
940
+ (a20*b05-a22*b02+a23*b01)/det,
941
+ (a10*b10-a11*b08+a13*b06)/det,
942
+ (a01*b08-a00*b10-a03*b06)/det,
943
+ (a30*b04-a31*b02+a33*b00)/det,
944
+ (a21*b02-a20*b04-a23*b00)/det,
945
+ (a11*b07-a10*b09-a12*b06)/det,
946
+ (a00*b09-a01*b07+a02*b06)/det,
947
+ (a31*b01-a30*b03-a32*b00)/det,
948
+ (a20*b03-a21*b01+a22*b00)/det);return mat4x4<f32>(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
949
+ mi[0][1],mi[1][1],mi[2][1],mi[3][1],
950
+ mi[0][2],mi[1][2],mi[2][2],mi[3][2],
951
+ mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
952
+ #endif
953
+ fn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f
954
+ {var output=normal;
955
+ #ifdef NORMALXYSCALE
956
+ output=normalize(output* vec3f(scale,scale,1.0));
957
+ #endif
958
+ return normalize(cotangentFrame*output);}
959
+ fn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f
960
+ {return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
961
+ fn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f
962
+ {var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}
963
+ #endif
964
+ `;e.IncludesShadersStoreWGSL[i]||(e.IncludesShadersStoreWGSL[i]=w);const M={name:i,shader:w},G=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentMainFunctionsWGSL:M},Symbol.toStringTag,{value:"Module"})),f="bumpFragmentFunctions",L=`#if defined(BUMP)
965
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
966
+ #endif
967
+ #if defined(DETAIL)
968
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
969
+ #endif
970
+ #if defined(BUMP) && defined(PARALLAX)
971
+ const minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; i<iMaxSamples; i++)
972
+ {currSampledHeight=textureSample(bumpSampler,bumpSamplerSampler,texCoord+vCurrOffset).w;if (!keepWorking)
973
+ {}
974
+ else if (currSampledHeight>currRayHeight)
975
+ {var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
976
+ else
977
+ {currRayHeight-=stepSize;vLastOffset=vCurrOffset;
978
+ #ifdef PARALLAX_RHS
979
+ vCurrOffset-=stepSize*vMaxOffset;
980
+ #else
981
+ vCurrOffset+=stepSize*vMaxOffset;
982
+ #endif
983
+ lastSampledHeight=currSampledHeight;}}
984
+ return vCurrOffset;}
985
+ fn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f
986
+ {var height: f32=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;
987
+ #ifdef PARALLAX_RHS
988
+ return texCoordOffset;
989
+ #else
990
+ return -texCoordOffset;
991
+ #endif
992
+ }
993
+ #endif
994
+ `;e.IncludesShadersStoreWGSL[f]||(e.IncludesShadersStoreWGSL[f]=L);const O={name:f,shader:L},k=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentFunctionsWGSL:O},Symbol.toStringTag,{value:"Module"})),s="bumpFragment",T=`var uvOffset: vec2f= vec2f(0.0,0.0);
995
+ #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
996
+ #ifdef NORMALXYSCALE
997
+ var normalScale: f32=1.0;
998
+ #elif defined(BUMP)
999
+ var normalScale: f32=uniforms.vBumpInfos.y;
1000
+ #else
1001
+ var normalScale: f32=1.0;
1002
+ #endif
1003
+ #if defined(TANGENT) && defined(NORMAL)
1004
+ var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
1005
+ #elif defined(BUMP)
1006
+ var TBNUV: vec2f=select(-fragmentInputs.vBumpUV,fragmentInputs.vBumpUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);
1007
+ #else
1008
+ var TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));
1009
+ #endif
1010
+ #elif defined(ANISOTROPIC)
1011
+ #if defined(TANGENT) && defined(NORMAL)
1012
+ var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
1013
+ #else
1014
+ var TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));
1015
+ #endif
1016
+ #endif
1017
+ #ifdef PARALLAX
1018
+ var invTBN: mat3x3f=transposeMat3(TBN);
1019
+ #ifdef PARALLAXOCCLUSION
1020
+ uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,fragmentInputs.vBumpUV,uniforms.vBumpInfos.z);
1021
+ #else
1022
+ uvOffset=parallaxOffset(invTBN*viewDirectionW,uniforms.vBumpInfos.z);
1023
+ #endif
1024
+ #endif
1025
+ #ifdef DETAIL
1026
+ var detailColor: vec4f=textureSample(detailSampler,detailSamplerSampler,fragmentInputs.vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);
1027
+ #endif
1028
+ #ifdef BUMP
1029
+ #ifdef OBJECTSPACE_NORMALMAP
1030
+ #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
1031
+ normalW=normalize(textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3x3f(uniforms.normalMatrix[0].xyz,uniforms.normalMatrix[1].xyz,uniforms.normalMatrix[2].xyz)*normalW);
1032
+ #elif !defined(DETAIL)
1033
+ normalW=perturbNormal(TBN,textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz,uniforms.vBumpInfos.y);
1034
+ #else
1035
+ var bumpNormal: vec3f=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz*2.0-1.0;
1036
+ #if DETAIL_NORMALBLENDMETHOD==0
1037
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
1038
+ #elif DETAIL_NORMALBLENDMETHOD==1
1039
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);bumpNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
1040
+ #endif
1041
+ normalW=perturbNormalBase(TBN,blendedNormal,uniforms.vBumpInfos.y);
1042
+ #endif
1043
+ #elif defined(DETAIL)
1044
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);
1045
+ #endif
1046
+ `;e.IncludesShadersStoreWGSL[s]||(e.IncludesShadersStoreWGSL[s]=T);const b={name:s,shader:T},B=Object.freeze(Object.defineProperty({__proto__:null,bumpFragmentWGSL:b},Symbol.toStringTag,{value:"Module"})),p="depthPrePass",N=`#ifdef DEPTHPREPASS
1047
+ #if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)
1048
+ fragmentOutputs.color= vec4f(0.,0.,0.,1.0);
1049
+ #endif
1050
+ return fragmentOutputs;
1051
+ #endif
1052
+ `;e.IncludesShadersStoreWGSL[p]||(e.IncludesShadersStoreWGSL[p]=N);const u="oitFragment",z=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
1053
+ var fragDepth: f32=fragmentInputs.position.z;
1054
+ #ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
1055
+ var halfFloat: u32=pack2x16float( vec2f(fragDepth));var full: vec2f=unpack2x16float(halfFloat);fragDepth=full.x;
1056
+ #endif
1057
+ var fragCoord: vec2i=vec2i(fragmentInputs.position.xy);var lastDepth: vec2f=textureLoad(oitDepthSampler,fragCoord,0).rg;var lastFrontColor: vec4f=textureLoad(oitFrontColorSampler,fragCoord,0);fragmentOutputs.depth=vec2f(-MAX_DEPTH);fragmentOutputs.frontColor=lastFrontColor;fragmentOutputs.backColor= vec4f(0.0);
1058
+ #ifdef USE_REVERSE_DEPTHBUFFER
1059
+ var furthestDepth: f32=-lastDepth.x;var nearestDepth: f32=lastDepth.y;
1060
+ #else
1061
+ var nearestDepth: f32=-lastDepth.x;var furthestDepth: f32=lastDepth.y;
1062
+ #endif
1063
+ var alphaMultiplier: f32=1.0-lastFrontColor.a;
1064
+ #ifdef USE_REVERSE_DEPTHBUFFER
1065
+ if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
1066
+ #else
1067
+ if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
1068
+ #endif
1069
+ return fragmentOutputs;}
1070
+ #ifdef USE_REVERSE_DEPTHBUFFER
1071
+ if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
1072
+ #else
1073
+ if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
1074
+ #endif
1075
+ fragmentOutputs.depth=vec2f(-fragDepth,fragDepth);return fragmentOutputs;}
1076
+ #endif
1077
+ `;e.IncludesShadersStoreWGSL[u]||(e.IncludesShadersStoreWGSL[u]=z);export{k as a,B as b,O as c,G as d,M as e,b as f,y as g,U as h,C as i,I as j,P as k,V as l,W as r,H as s};