@arcgis/core 5.1.0-next.86 → 5.1.0-next.88

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 (206) hide show
  1. package/Graphic.js +1 -1
  2. package/analysis/LineOfSightAnalysisObserver.d.ts +2 -2
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +2 -2
  4. package/applications/Components/arcadeUtils.d.ts +23 -0
  5. package/applications/Components/arcadeUtils.js +2 -0
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/00e9e25269d5776f8645.js +1 -0
  8. package/assets/esri/core/workers/chunks/015fc0a17b17d69cc3bb.js +1 -0
  9. package/assets/esri/core/workers/chunks/0a6df243b18acae471be.js +1 -0
  10. package/assets/esri/core/workers/chunks/0cc4b3100a7a453bd058.js +1 -0
  11. package/assets/esri/core/workers/chunks/10cf6a70bf79f04a7208.js +1 -0
  12. package/assets/esri/core/workers/chunks/{e9a42f0262fc44a79d4b.js → 164ee62f2211987ad850.js} +1 -1
  13. package/assets/esri/core/workers/chunks/169ca3724053fc046d1b.js +1 -0
  14. package/assets/esri/core/workers/chunks/206bdfd868a9ef88f3a8.js +1 -0
  15. package/assets/esri/core/workers/chunks/2343b1105bc4c1b4a086.js +1 -0
  16. package/assets/esri/core/workers/chunks/{1bad4331a43169f3cc34.js → 2549a07f403447482f4e.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{f89b7b0ccfbd1e5f9a0f.js → 3092184350d66c79f610.js} +1 -1
  18. package/assets/esri/core/workers/chunks/3469df5c4846b0cee012.js +1 -0
  19. package/assets/esri/core/workers/chunks/{26f804c92077c11c626d.js → 394812e19b6915d560b0.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{2f8b173d1dac73ba0d9e.js → 3cf77b7a61f78f9bcd62.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{edbdee69440dbfc05644.js → 3e72bd6dbfc52d956c06.js} +1 -1
  22. package/assets/esri/core/workers/chunks/3feec3d08424b94e1bcf.js +1 -0
  23. package/assets/esri/core/workers/chunks/{ce4dfc3a470230ddc9e4.js → 43f58604ba4a94a9167c.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{ff57a071156d8a7e47be.js → 456d269e3982c437010a.js} +1 -1
  25. package/assets/esri/core/workers/chunks/46b16501db6681dc467b.js +1 -0
  26. package/assets/esri/core/workers/chunks/48549d3d7bf0154c0afa.js +1 -0
  27. package/assets/esri/core/workers/chunks/{713ab619060bd5087479.js → 4baf66314f82cfa76beb.js} +182 -157
  28. package/assets/esri/core/workers/chunks/{1ab66600579fa4232d7b.js → 4dc91c2208201ba34c90.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{b14c4c3f295970f731ab.js → 500be1fb7cc9efec875c.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{fc6ca7ffb9f1b875059c.js → 51716e411fad624ac21c.js} +1 -1
  31. package/assets/esri/core/workers/chunks/54c035cdc171998d0776.js +1 -0
  32. package/assets/esri/core/workers/chunks/{b23e677c33db6f9bac8a.js → 566f6319ded0634769e0.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{701b823763e941b71f4f.js → 7185486c6dc28fc367a1.js} +1 -1
  34. package/assets/esri/core/workers/chunks/752f4e0e2961fc315dca.js +1 -0
  35. package/assets/esri/core/workers/chunks/7ba67f1d7831a5576a5a.js +1 -0
  36. package/assets/esri/core/workers/chunks/{186bfde8c552e3b42302.js → 7ef51b0ebd560113ae7e.js} +1 -1
  37. package/assets/esri/core/workers/chunks/7f0f10946f05a09b5654.js +1 -0
  38. package/assets/esri/core/workers/chunks/{fce2306a1b31c6680f90.js → 7f34fa9f154f5101cb13.js} +1 -1
  39. package/assets/esri/core/workers/chunks/8178e9ba3c568d406a87.js +1 -0
  40. package/assets/esri/core/workers/chunks/83f1871d04c979fa23b7.js +1 -0
  41. package/assets/esri/core/workers/chunks/85da2987e17b6755a94e.js +1 -0
  42. package/assets/esri/core/workers/chunks/8a5a827ee557d9f9a66e.js +1 -0
  43. package/assets/esri/core/workers/chunks/9c09097e390985bbac58.js +1 -0
  44. package/assets/esri/core/workers/chunks/{618106f5fbdf88ef2278.js → a401d44a5b45c05072c2.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{d0aee7c80c5c7e23d216.js → a429355534bf6cbd8304.js} +1 -1
  46. package/assets/esri/core/workers/chunks/a432219de6a873f88776.js +1 -0
  47. package/assets/esri/core/workers/chunks/{455d08294e0f5c5509ff.js → a6b75576d598ec161cc4.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{99c6bd2125f4eb6796fe.js → aae40d70eb01249c1bab.js} +1 -1
  49. package/assets/esri/core/workers/chunks/b2662bfdbd1e3623ceb9.js +1 -0
  50. package/assets/esri/core/workers/chunks/b4bac22467e96be7a974.js +1 -0
  51. package/assets/esri/core/workers/chunks/{5166f204fd078dced5db.js → baea6f86b2dbe067940e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/c3e89c7c7b677bd18557.js +1 -0
  53. package/assets/esri/core/workers/chunks/cb81d524f12edcadb9bb.js +1 -0
  54. package/assets/esri/core/workers/chunks/cc0f3b9b153a0c232afe.js +1 -0
  55. package/assets/esri/core/workers/chunks/cd0c232f4e3868d91a05.js +1 -0
  56. package/assets/esri/core/workers/chunks/{bae8f2a5dfe0cfbc0688.js → d00dddc3881fa29446e1.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{9bd713d96502ddc2ce25.js → d8ccc713c5ad93e7a0c3.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{e66b9d00d02fc08cbb2d.js → da008d6a3afb30d18392.js} +1 -1
  59. package/assets/esri/core/workers/chunks/dde94664110ff231a52d.js +1 -0
  60. package/assets/esri/core/workers/chunks/de3e5d82502ee15b7eae.js +1 -0
  61. package/assets/esri/core/workers/chunks/defac06f9e2b43090677.js +2 -0
  62. package/assets/esri/core/workers/chunks/e6fe8b5fbe95de01453b.js +1 -0
  63. package/assets/esri/core/workers/chunks/ee7e9bca57160694b3c4.js +1 -0
  64. package/assets/esri/core/workers/chunks/f36345ebb9851ab92453.js +1 -0
  65. package/assets/esri/core/workers/chunks/{add000f51c778114c028.js → f37e4ae0e9be80210db0.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{c503c79ba5761f7abbeb.js → fa869bfe4366f7f49cca.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{d8de7fe49dba9ed589df.js → fade7b878a9498382bb2.js} +1 -1
  68. package/assets/esri/core/workers/chunks/fe30e61652716fcccf16.js +2 -0
  69. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  70. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  71. package/assets/esri/libs/text/pkg/bundle_bg.wasm +0 -0
  72. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ar.json +1 -1
  73. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_bg.json +1 -1
  74. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_bs.json +1 -1
  75. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ca.json +1 -1
  76. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_cs.json +1 -1
  77. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_da.json +1 -1
  78. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_de.json +1 -1
  79. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_el.json +1 -1
  80. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_es.json +1 -1
  81. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_et.json +1 -1
  82. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fi.json +1 -1
  83. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fr.json +1 -1
  84. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_he.json +1 -1
  85. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_hr.json +1 -1
  86. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_hu.json +1 -1
  87. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_id.json +1 -1
  88. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_it.json +1 -1
  89. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ja.json +1 -1
  90. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ko.json +1 -1
  91. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_lt.json +1 -1
  92. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_lv.json +1 -1
  93. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_nl.json +1 -1
  94. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_no.json +1 -1
  95. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pl.json +1 -1
  96. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pt-BR.json +1 -1
  97. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pt-PT.json +1 -1
  98. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ro.json +1 -1
  99. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ru.json +1 -1
  100. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sk.json +1 -1
  101. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sl.json +1 -1
  102. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sr.json +1 -1
  103. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sv.json +1 -1
  104. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_th.json +1 -1
  105. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_tr.json +1 -1
  106. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_uk.json +1 -1
  107. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_vi.json +1 -1
  108. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-CN.json +1 -1
  109. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-HK.json +1 -1
  110. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-TW.json +1 -1
  111. package/chunks/GlobalIllumination.glsl.js +25 -17
  112. package/chunks/GlowBlur.glsl.js +11 -8
  113. package/chunks/OITBlend.glsl.js +1 -1
  114. package/chunks/bundle2.js +1 -1
  115. package/config.js +1 -1
  116. package/core/has.js +1 -1
  117. package/interfaces.d.ts +0 -3
  118. package/kernel.js +1 -1
  119. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  120. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  121. package/layers/graphics/data/QueryEngineResult.js +1 -1
  122. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  123. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  124. package/layers/mixins/ArcGISImageService.js +1 -1
  125. package/layers/support/SubtypeSublayer.js +1 -1
  126. package/layers/support/capabilities.js +1 -1
  127. package/layers/support/layerUtils.js +1 -1
  128. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  129. package/networks/CircuitManager.d.ts +33 -25
  130. package/networks/CircuitManager.js +1 -1
  131. package/networks/support/typeUtils.d.ts +4 -1
  132. package/networks/support/typeUtils.js +1 -1
  133. package/package.json +3 -3
  134. package/renderers/ClassBreaksRenderer.js +1 -1
  135. package/renderers/UniqueValueRenderer.js +1 -1
  136. package/renderers/support/scaleDependentSymbolUtils.js +2 -0
  137. package/rest/networks/circuits/queryCircuits.js +1 -1
  138. package/rest/networks/circuits/support/QueryCircuitsParameters.d.ts +21 -15
  139. package/rest/networks/circuits/support/QueryCircuitsParameters.js +1 -1
  140. package/rest/query/operations/query.js +1 -1
  141. package/rest/support/Query.js +1 -1
  142. package/support/revision.js +1 -1
  143. package/third-party-notices.txt +19 -12
  144. package/views/2d/engine/webgl/GlyphSDFCreator.js +1 -1
  145. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  146. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringStore.js +2 -0
  147. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +2 -0
  148. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  149. package/views/3d/analysis/LineOfSight/LineOfSightDrawToolRenderer.js +2 -0
  150. package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +2 -0
  151. package/views/3d/analysis/LineOfSight/LineOfSightPlacementTool.js +2 -0
  152. package/views/3d/analysis/LineOfSight/LineOfSightRootPlugin.js +2 -0
  153. package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +2 -0
  154. package/views/3d/analysis/LineOfSight/LineOfSightTool2.js +1 -1
  155. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  156. package/views/3d/layers/FeatureLikeLayerViewBase3D.js +1 -1
  157. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  158. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +149 -0
  159. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +2 -2
  160. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  161. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  162. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
  163. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  164. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  165. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  166. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  167. package/webmap/utils.js +1 -1
  168. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  169. package/assets/esri/core/workers/chunks/0c074c46d106ca4d3bad.js +0 -1
  170. package/assets/esri/core/workers/chunks/1f16bc8c02d8c4b2f693.js +0 -1
  171. package/assets/esri/core/workers/chunks/29878b52aa12b3815230.js +0 -1
  172. package/assets/esri/core/workers/chunks/2c916b93d8a6e6b9c0d7.js +0 -1
  173. package/assets/esri/core/workers/chunks/3ea5a18b264628dc37f0.js +0 -1
  174. package/assets/esri/core/workers/chunks/41913575dd45c65d645e.js +0 -1
  175. package/assets/esri/core/workers/chunks/46e622857ba92a72a317.js +0 -1
  176. package/assets/esri/core/workers/chunks/49e8144effc299dfcd66.js +0 -1
  177. package/assets/esri/core/workers/chunks/4d0f793dee4ad919221b.js +0 -1
  178. package/assets/esri/core/workers/chunks/65ac73de5bb133c6bf89.js +0 -1
  179. package/assets/esri/core/workers/chunks/67ec1694d6e18b7c234c.js +0 -1
  180. package/assets/esri/core/workers/chunks/6e526c06825ecc6c99c0.js +0 -1
  181. package/assets/esri/core/workers/chunks/6f7aaba26773fe416ac2.js +0 -1
  182. package/assets/esri/core/workers/chunks/7acf82763aeba44049d0.js +0 -1
  183. package/assets/esri/core/workers/chunks/88eb1e4320c4ada01711.js +0 -1
  184. package/assets/esri/core/workers/chunks/8af9a78cf316581ea482.js +0 -1
  185. package/assets/esri/core/workers/chunks/96bba4d93a32ad34a1c8.js +0 -1
  186. package/assets/esri/core/workers/chunks/97719271a3e4c9f2b2c9.js +0 -1
  187. package/assets/esri/core/workers/chunks/9ea23cd4b2664c08b670.js +0 -1
  188. package/assets/esri/core/workers/chunks/a1a12552d34ea9eea130.js +0 -1
  189. package/assets/esri/core/workers/chunks/a844547bf33a8527ee9f.js +0 -2
  190. package/assets/esri/core/workers/chunks/ac5999c88c27b49cd760.js +0 -1
  191. package/assets/esri/core/workers/chunks/b575292013bceef9b015.js +0 -1
  192. package/assets/esri/core/workers/chunks/bbc27d9285162696d089.js +0 -1
  193. package/assets/esri/core/workers/chunks/bc8a74da48b08309875f.js +0 -1
  194. package/assets/esri/core/workers/chunks/cd7159600ce132e32d04.js +0 -1
  195. package/assets/esri/core/workers/chunks/ce66c551b7083913eee5.js +0 -1
  196. package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +0 -1
  197. package/assets/esri/core/workers/chunks/d9c3f14eee4db7a7137b.js +0 -1
  198. package/assets/esri/core/workers/chunks/db3c484bfa607dec6050.js +0 -1
  199. package/assets/esri/core/workers/chunks/dcc719e15b2e0cce1f3b.js +0 -1
  200. package/assets/esri/core/workers/chunks/ded2f19a1685db2137f4.js +0 -2
  201. package/assets/esri/core/workers/chunks/f43d628d47eec7d530c7.js +0 -1
  202. package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +0 -1
  203. package/assets/esri/core/workers/chunks/fcf51697c361e0075cc2.js +0 -1
  204. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +0 -132
  205. /package/assets/esri/core/workers/chunks/{ded2f19a1685db2137f4.js.LICENSE.txt → defac06f9e2b43090677.js.LICENSE.txt} +0 -0
  206. /package/assets/esri/core/workers/chunks/{a844547bf33a8527ee9f.js.LICENSE.txt → fe30e61652716fcccf16.js.LICENSE.txt} +0 -0
@@ -1,132 +0,0 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform as t}from"../../shaderModules/Float2BindUniform.js";import{FloatBindUniform as o}from"../../shaderModules/FloatBindUniform.js";import{glsl as r}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as a}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as i}from"../../shaderModules/Texture2DBindUniform.js";function d(d,n){if(!n.screenSpaceReflections)return;const c=d.fragment;c.include(e),c.uniforms.add(new t("nearFar",e=>e.camera.nearFar),new i("depthMap",e=>e.depth?.attachment),new a("proj",e=>e.camera.projectionMatrix),new o("invResolutionHeight",e=>1/e.camera.height),new a("reprojectionMatrix",e=>e.reprojection.matrix)).code.add(r`
3
- vec2 reprojectionCoordinate(vec3 projectionCoordinate)
4
- {
5
- vec4 zw = proj * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
6
- vec4 reprojectedCoord = reprojectionMatrix * vec4(zw.w * (projectionCoordinate.xy * 2.0 - 1.0), zw.z, zw.w);
7
- reprojectedCoord.xy /= reprojectedCoord.w;
8
- return reprojectedCoord.xy * 0.5 + 0.5;
9
- }
10
-
11
- vec4 applyProjectionMat(mat4 projectionMat, vec3 x)
12
- {
13
- vec4 projectedCoord = projectionMat * vec4(x, 1.0);
14
- projectedCoord.xy /= projectedCoord.w;
15
- projectedCoord.xy = projectedCoord.xy*0.5 + 0.5;
16
- return projectedCoord;
17
- }
18
-
19
- vec3 screenSpaceIntersection(vec3 dir, vec3 startPosition, vec3 viewDir, vec3 normal, float offset, bool globalIllumination)
20
- {
21
- vec3 viewPos = startPosition;
22
- vec3 viewPosEnd = startPosition;
23
-
24
- // Project the start position to the screen
25
- vec4 projectedCoordStart = applyProjectionMat(proj, viewPos);
26
- vec3 Q0 = viewPos / projectedCoordStart.w; // homogeneous camera space
27
- float k0 = 1.0/ projectedCoordStart.w;
28
-
29
- // advance the position in the direction of the reflection
30
- viewPos += dir;
31
-
32
- vec4 projectedCoordVanishingPoint = applyProjectionMat(proj, dir);
33
-
34
- // Project the advanced position to the screen
35
- vec4 projectedCoordEnd = applyProjectionMat(proj, viewPos);
36
- vec3 Q1 = viewPos / projectedCoordEnd.w; // homogeneous camera space
37
- float k1 = 1.0/ projectedCoordEnd.w;
38
-
39
- // calculate the reflection direction in the screen space
40
- vec2 projectedCoordDir = (projectedCoordEnd.xy - projectedCoordStart.xy);
41
- vec2 projectedCoordDistVanishingPoint = (projectedCoordVanishingPoint.xy - projectedCoordStart.xy);
42
-
43
- float maxReach = globalIllumination ? 0.15 : 1.0;
44
- float distMod = min(globalIllumination ? length(projectedCoordDistVanishingPoint.xy) : abs(projectedCoordDistVanishingPoint.y), maxReach);
45
-
46
- float projectedCoordDirLength = length(projectedCoordDir);
47
- int maxSteps = globalIllumination ? 16 : ${n.highStepCount?"150":"75"};
48
- float maxSt = float(maxSteps);
49
-
50
- // normalize the projection direction depending on maximum steps
51
- // this determines how blocky the reflection looks
52
- vec2 dP = distMod * (projectedCoordDir)/(maxSt * projectedCoordDirLength);
53
-
54
- // Normalize the homogeneous camera space coordinates
55
- vec3 dQ = distMod * (Q1 - Q0)/(maxSt * projectedCoordDirLength);
56
- float dk = distMod * (k1 - k0)/(maxSt * projectedCoordDirLength);
57
-
58
- // initialize the variables for ray marching
59
- vec2 P = projectedCoordStart.xy;
60
- vec3 Q = Q0;
61
- float k = k0;
62
- float rayStartZ = -startPosition.z; // estimated ray start depth value
63
- float rayEndZ = -startPosition.z; // estimated ray end depth value
64
- float prevEstimateZ = -startPosition.z;
65
- float rayDiffZ = 0.0;
66
- float dDepth;
67
- float depth;
68
- float rayDiffZOld = 0.0;
69
-
70
- // early outs
71
- if (dot(normal, dir) < 0.0 || dot(-viewDir, normal) < 0.0)
72
- return vec3(P, 0.0);
73
- float dDepthBefore = 0.0;
74
-
75
- P = clamp(P + offset * dP, vec2(0.0), vec2(0.999));
76
- Q.z += offset * dQ.z;
77
- k += offset * dk;
78
-
79
- for(int i = 0; i < maxSteps-1; i++)
80
- {
81
- depth = -linearDepthFromTexture(depthMap, P); // get linear depth from the depth buffer
82
-
83
- // estimate depth of the marching ray
84
- rayStartZ = prevEstimateZ;
85
- dDepth = -rayStartZ - depth;
86
- rayEndZ = (dQ.z * 0.5 + Q.z)/ ((dk * 0.5 + k));
87
- rayDiffZ = rayEndZ- rayStartZ;
88
- prevEstimateZ = rayEndZ;
89
-
90
- if(-rayEndZ > nearFar[1] || -rayEndZ < nearFar[0] || P.y < 0.0 || P.y > 1.0 )
91
- {
92
- return vec3(P, 0.);
93
- }
94
-
95
- // If we detect a hit - return the intersection point, two conditions:
96
- // - dDepth > 0.0 - sampled point depth is in front of estimated depth
97
- // - if difference between dDepth and rayDiffZOld is not too large
98
- // - if difference between dDepth and 0.025/abs(k) is not too large
99
- // - if the sampled depth is not behind far plane or in front of near plane
100
-
101
- if((dDepth) < 0.025/abs(k) + abs(rayDiffZ) && dDepth > 0.0 && depth > nearFar[0] && depth < nearFar[1] && abs(P.y - projectedCoordStart.y) > invResolutionHeight)
102
- {
103
- float weight = dDepth / (dDepth - dDepthBefore);
104
- vec2 Pf = mix(P - dP, P, 1.0 - weight);
105
- if (abs(Pf.y - projectedCoordStart.y) > invResolutionHeight) {
106
- return vec3(Pf, depth);
107
- }
108
- else {
109
- return vec3(P, depth);
110
- }
111
- }
112
-
113
- if (globalIllumination && (P.x <= 0.0 || P.x >= 1.0)) {
114
- return vec3(P, 0.0);
115
- }
116
-
117
- // continue with ray marching
118
- // Clamp to 0.999 to avoid sampling edge artifacts for water reflections
119
- P = P + dP;
120
- Q.z += dQ.z;
121
- k += dk;
122
- rayDiffZOld = rayDiffZ;
123
- dDepthBefore = dDepth;
124
-
125
- // Clamp to 0.999 to avoid sampling edge artifacts for water reflections
126
- if (!globalIllumination) {
127
- P = clamp(P, vec2(0.0), vec2(0.999));
128
- }
129
- }
130
- return vec3(P, 0.0);
131
- }
132
- `)}export{d as ScreenSpaceReflections};