@arcgis/core 4.33.0-next.20250428 → 4.33.0-next.20250430

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 (292) hide show
  1. package/analysis/AreaMeasurementAnalysis.js +1 -1
  2. package/applications/Components/baUtils.js +5 -0
  3. package/assets/components/assets/icon/mosaicMethodBlend16.json +1 -1
  4. package/assets/components/assets/icon/mosaicMethodBlend24.json +1 -1
  5. package/assets/components/assets/icon/mosaicMethodBlend32.json +1 -1
  6. package/assets/components/assets/icon/mosaicMethodNorthWest32.json +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/{9a1c058d3ecd1db0e996.js → 0c338364cb55afdbd580.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{4351b3e54b309935faed.js → 173737c60fa54f7d82bb.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{90dc783a617ff053e862.js → 181ad3cee0b30a72e7c7.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{6d230c55cde66ee905b3.js → 1a0d4b7de2f98ff9cc01.js} +1 -1
  12. package/assets/esri/core/workers/chunks/210e057fe5e66abea984.js +1 -0
  13. package/assets/esri/core/workers/chunks/{9850ff14bd9c7da81c65.js → 23c76963481e38f39653.js} +1 -1
  14. package/assets/esri/core/workers/chunks/2433b22749a088735262.js +1 -0
  15. package/assets/esri/core/workers/chunks/278280121528fa1059de.js +1 -0
  16. package/assets/esri/core/workers/chunks/2ad47c0ba1680f7d5e03.js +1 -0
  17. package/assets/esri/core/workers/chunks/2c3920ad82b9d86c3f05.js +1 -0
  18. package/assets/esri/core/workers/chunks/{4da99f058cca83937e9b.js → 2c92f6f268aa2de5432c.js} +1 -1
  19. package/assets/esri/core/workers/chunks/37619d28b0441199c320.js +1 -0
  20. package/assets/esri/core/workers/chunks/{92836e3a2c5226296fec.js → 3a205f87f100832ef9f5.js} +1 -1
  21. package/assets/esri/core/workers/chunks/543eb46b55cacd6e1dbc.js.LICENSE.txt +1 -1
  22. package/assets/esri/core/workers/chunks/{2fd5b48976cefe7cc0ab.js → 581180668e0229dcdc14.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{c054198c6438cb57f188.js → 5c2299f22a69e58cc4dd.js} +1 -1
  24. package/assets/esri/core/workers/chunks/60eb6dd09080da5653a1.js +1 -0
  25. package/assets/esri/core/workers/chunks/6210346dc9d064ac90af.js +1 -0
  26. package/assets/esri/core/workers/chunks/{3cf001abca8ad933bccf.js → 670a66617249f2d15a62.js} +2 -2
  27. package/assets/esri/core/workers/chunks/{3cf001abca8ad933bccf.js.LICENSE.txt → 670a66617249f2d15a62.js.LICENSE.txt} +1 -1
  28. package/assets/esri/core/workers/chunks/6b9110ec7da0fef1be31.js +1 -0
  29. package/assets/esri/core/workers/chunks/710e03feaa25e357f17a.js +1 -0
  30. package/assets/esri/core/workers/chunks/{a6de903f22f76d875005.js → 7496c4c33c2d8f60a434.js} +1 -1
  31. package/assets/esri/core/workers/chunks/7b4523ab392966624d97.js +2 -0
  32. package/assets/esri/core/workers/chunks/{30551c1d3e4fa7be86c1.js.LICENSE.txt → 7b4523ab392966624d97.js.LICENSE.txt} +1 -1
  33. package/assets/esri/core/workers/chunks/{50ffb2620cdbcfd75723.js → 81b3351ea9627bb631d4.js} +1 -1
  34. package/assets/esri/core/workers/chunks/84d7ed2cf5fe23a0888f.js +1 -0
  35. package/assets/esri/core/workers/chunks/84f972d7851d982701a0.js +319 -0
  36. package/assets/esri/core/workers/chunks/{f52e597dca4b32a81881.js → 867c6c5b2ee1db977c99.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{c5d786166a5609b85276.js → 8a87c181b85d0b86b9bb.js} +2 -2
  38. package/assets/esri/core/workers/chunks/{c5d786166a5609b85276.js.LICENSE.txt → 8a87c181b85d0b86b9bb.js.LICENSE.txt} +1 -1
  39. package/assets/esri/core/workers/chunks/{a0c51c4c30a5f749dfc6.js → 8bf2e2fe5e3e8b4a1fa0.js} +1 -1
  40. package/assets/esri/core/workers/chunks/8c8d812a7f2d29c29676.js +1 -0
  41. package/assets/esri/core/workers/chunks/{213adc87c843d627c5d6.js → 8f2e0277c66247bd40b4.js} +1 -1
  42. package/assets/esri/core/workers/chunks/8fc5b1c17e841362dd15.js +1 -0
  43. package/assets/esri/core/workers/chunks/9cac00d4bfac14aaae12.js +1 -0
  44. package/assets/esri/core/workers/chunks/{a600194cfe26aedc21dd.js → 9d32f41f8f69b8a507c3.js} +1 -1
  45. package/assets/esri/core/workers/chunks/ac9c6779771ec855da79.js.LICENSE.txt +1 -1
  46. package/assets/esri/core/workers/chunks/{899f197556b6ced6eddf.js → ad9b4e0164706c53b872.js} +2 -2
  47. package/assets/esri/core/workers/chunks/{9661ee8569ee208e6237.js → ada9694498549f56dff1.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{1a6d2d090b643a87408a.js → b780c7062b1b18a5ae19.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{72097a8247101018dcdf.js → ba4aafa8dfa76006c3e7.js} +1 -1
  50. package/assets/esri/core/workers/chunks/c2594024d72133d3ed7b.js +2 -0
  51. package/assets/esri/core/workers/chunks/{e524462c63834fae7e01.js.LICENSE.txt → c2594024d72133d3ed7b.js.LICENSE.txt} +1 -1
  52. package/assets/esri/core/workers/chunks/{360c8cff7c3b25d2b2d2.js → c607d618b64d3accecc4.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{b8b8425e8b1246cdc86d.js → c6b0dda0540c9db12d0e.js} +1 -1
  54. package/assets/esri/core/workers/chunks/c819535525e9a27bae1f.js +39 -0
  55. package/assets/esri/core/workers/chunks/{87dcfbbcf290e0fa5c0f.js → cb25b45a6b385e60c68d.js} +315 -378
  56. package/assets/esri/core/workers/chunks/{577f24923fa4d08360e4.js → ce9de24cb96b56d20562.js} +2 -2
  57. package/assets/esri/core/workers/chunks/{577f24923fa4d08360e4.js.LICENSE.txt → ce9de24cb96b56d20562.js.LICENSE.txt} +1 -1
  58. package/assets/esri/core/workers/chunks/d30fae6233d3426615ed.js +1 -0
  59. package/assets/esri/core/workers/chunks/d8dc922f7466300b668f.js.LICENSE.txt +1 -1
  60. package/assets/esri/core/workers/chunks/d92ea6b0674f34206ab6.js +1 -0
  61. package/assets/esri/core/workers/chunks/{345993291540433d3d92.js → e93222c65bd28203ddf7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/f1222bf7232c4a168312.js +1 -0
  63. package/assets/esri/themes/base/widgets/_Legend.scss +2 -1
  64. package/assets/esri/themes/base/widgets/_SelectionList.scss +5 -17
  65. package/assets/esri/themes/dark/main.css +1 -1
  66. package/assets/esri/themes/light/main.css +1 -1
  67. package/assets/esri/themes/light/view.css +1 -1
  68. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  69. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  70. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  71. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  72. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  73. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  74. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  75. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  76. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  77. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  78. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  79. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  80. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  81. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  82. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  83. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  84. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  85. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  86. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  87. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  88. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  89. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  90. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  91. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  92. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  93. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  94. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  95. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  96. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  97. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  98. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  99. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  100. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  101. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  102. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  103. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  104. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  105. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  106. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  107. package/chunks/BloomBlur.glsl.js +1 -1
  108. package/chunks/BloomComposition.glsl.js +2 -2
  109. package/chunks/ChapmanAtmosphere.glsl.js +1 -1
  110. package/chunks/CloudsComposition.glsl.js +1 -1
  111. package/chunks/ComponentShader.glsl.js +43 -39
  112. package/chunks/DefaultMaterial.glsl.js +22 -22
  113. package/chunks/Fog.glsl.js +3 -3
  114. package/chunks/Haze.glsl.js +1 -1
  115. package/chunks/Path.glsl.js +22 -18
  116. package/chunks/RealisticTree.glsl.js +9 -9
  117. package/chunks/RibbonLine.glsl.js +1 -1
  118. package/chunks/ShadowCastAccumulate.glsl.js +5 -5
  119. package/chunks/ShadowHighlight.glsl.js +4 -4
  120. package/chunks/Terrain.glsl.js +1 -1
  121. package/chunks/Viewshed.glsl.js +1 -1
  122. package/core/Collection.js +1 -1
  123. package/core/CollectionFlattener.js +1 -1
  124. package/core/MemCache.js +1 -1
  125. package/geometry/support/PolylineBuilder.js +1 -1
  126. package/geometry/support/curves/bezierCurveUtils.js +5 -0
  127. package/geometry/support/curves/circleUtils.js +5 -0
  128. package/geometry/support/curves/circularArcUtils.js +5 -0
  129. package/geometry/support/curves/closestPointOnCurve.js +5 -0
  130. package/geometry/support/curves/curveUtils.js +5 -0
  131. package/geometry/support/curves/densifyCurvedGeometry.js +5 -0
  132. package/geometry/support/curves/ellipticArc4Utils.js +5 -0
  133. package/geometry/support/curves/ellipticArc7Utils.js +5 -0
  134. package/geometry/support/curves/mathUtils.js +5 -0
  135. package/geometry/support/curves/splitCurveAtPoint.js +5 -0
  136. package/identity/IdentityManagerBase.js +1 -1
  137. package/interfaces.d.ts +485 -20
  138. package/layers/LinkChartLayer.js +1 -1
  139. package/layers/VideoLayer.js +1 -1
  140. package/package.json +3 -3
  141. package/portal/schemas/definitions.js +1 -1
  142. package/request.js +1 -1
  143. package/rest/knowledgeGraph/GraphAddNamedTypesResult.js +5 -0
  144. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.js +5 -0
  145. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.js +1 -1
  146. package/rest/knowledgeGraph/wasmInterface/updateToWasmEncodedFactories.js +1 -1
  147. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelChangeResponseFactories.js +5 -0
  148. package/rest/knowledgeGraph/wasmInterface/wasmUtils.js +1 -1
  149. package/rest/knowledgeGraphService.js +1 -1
  150. package/rest/networks/circuits/alterCircuit.js +5 -0
  151. package/rest/networks/circuits/createCircuit.js +5 -0
  152. package/rest/networks/circuits/deleteCircuits.js +5 -0
  153. package/rest/networks/circuits/queryCircuits.js +5 -0
  154. package/rest/networks/circuits/support/CircuitVerifyResult.js +5 -0
  155. package/rest/networks/circuits/support/CreateAlterCircuitParameters.js +5 -0
  156. package/rest/networks/circuits/support/DeleteCircuitsParameters.js +5 -0
  157. package/rest/networks/circuits/support/QueryCircuitsParameters.js +5 -0
  158. package/rest/networks/circuits/support/QueryCircuitsResult.js +5 -0
  159. package/rest/networks/circuits/support/VerifyCircuitsParameters.js +5 -0
  160. package/rest/networks/circuits/support/VerifyCircuitsResult.js +5 -0
  161. package/rest/networks/circuits/verifyCircuits.js +5 -0
  162. package/smartMapping/renderers/support/spikeUtils.js +1 -1
  163. package/support/revision.js +1 -1
  164. package/symbols/cim/CIMOperators.js +1 -1
  165. package/symbols/cim/effects/EffectSuppress.js +5 -0
  166. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  167. package/views/2d/layers/MediaLayerView2D.js +1 -1
  168. package/views/2d/layers/TileLayerView2D.js +1 -1
  169. package/views/2d/layers/VideoLayerView2D.js +1 -1
  170. package/views/2d/layers/graphics/GraphicStoreItem.js +1 -1
  171. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  172. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  173. package/views/3d/environment/ChapmanAtmosphereTechniqueConfiguration.js +1 -1
  174. package/views/3d/environment/EnvironmentManager.js +1 -1
  175. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  176. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  177. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  178. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  179. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  180. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  181. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  182. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  183. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  184. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  185. package/views/3d/layers/graphics/pipeline/FeatureProcessingContext.js +1 -1
  186. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +5 -0
  187. package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +5 -0
  188. package/views/3d/layers/graphics/pipeline/symbolization/Point3DSymbolRenderer.js +5 -0
  189. package/views/3d/layers/graphics/pipeline/symbolization/SimpleFeatureRenderer.js +1 -1
  190. package/views/3d/layers/graphics/pipeline/symbolization/UniqueValueFeatureRenderer.js +1 -1
  191. package/views/3d/layers/graphics/pipeline/symbolization/factoryUtils.js +5 -0
  192. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  193. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  194. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  195. package/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js +3 -3
  196. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +2 -2
  197. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +20 -19
  198. package/views/3d/webgl-engine/core/shaderLibrary/shading/FoamRendering.glsl.js +3 -3
  199. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +1 -1
  200. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +3 -3
  201. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +10 -11
  202. package/views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js +1 -1
  203. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +30 -125
  204. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +8 -8
  205. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  206. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +27 -0
  207. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js +28 -0
  208. package/views/3d/webgl-engine/effects/RenderNodes.js +1 -1
  209. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  210. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  211. package/views/3d/webgl-engine/effects/haze/HazeTechniqueConfiguration.js +1 -1
  212. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  213. package/views/3d/webgl-engine/effects/weather/SnowCover.glsl.js +12 -0
  214. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  215. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  216. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  217. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  218. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  219. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  220. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  221. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  222. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  223. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  224. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  225. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  226. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  227. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +9 -9
  228. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  229. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  230. package/views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js +1 -1
  231. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  232. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  233. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  234. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  235. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +2 -20
  236. package/views/VideoView.js +1 -1
  237. package/views/support/LayerViewManager.js +1 -1
  238. package/webscene/support/FeatureReference.d.ts +4 -0
  239. package/webscene/support/FeatureReference.js +5 -0
  240. package/webscene/support/FeatureReferenceGlobalId.d.ts +4 -0
  241. package/webscene/support/FeatureReferenceGlobalId.js +5 -0
  242. package/webscene/support/FeatureReferenceId.d.ts +4 -0
  243. package/webscene/support/FeatureReferenceId.js +5 -0
  244. package/webscene/support/FeatureReferenceObjectId.d.ts +4 -0
  245. package/webscene/support/FeatureReferenceObjectId.js +5 -0
  246. package/webscene/support/LayerReference.d.ts +4 -0
  247. package/webscene/support/LayerReference.js +5 -0
  248. package/webscene/support/SlideElements.js +1 -1
  249. package/webscene/support/SlidePopupInfo.d.ts +4 -0
  250. package/webscene/support/SlidePopupInfo.js +5 -0
  251. package/webscene/support/featureReferenceUtils.js +5 -0
  252. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  253. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  254. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  255. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  256. package/widgets/FeatureForm/EditableInput.js +1 -1
  257. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  258. package/widgets/FeatureForm.js +1 -1
  259. package/widgets/FeatureTable.js +1 -1
  260. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  261. package/widgets/VideoPlayer.js +1 -1
  262. package/widgets/support/SelectionList/FeatureItem.js +1 -1
  263. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  264. package/widgets/support/SelectionList.js +1 -1
  265. package/assets/esri/core/workers/chunks/27482132abb939a1cdb7.js +0 -1
  266. package/assets/esri/core/workers/chunks/2e3019ce49e972a815ca.js +0 -1
  267. package/assets/esri/core/workers/chunks/30551c1d3e4fa7be86c1.js +0 -2
  268. package/assets/esri/core/workers/chunks/3293b4041c222299428f.js +0 -1
  269. package/assets/esri/core/workers/chunks/335b539893569e3d7b82.js +0 -1
  270. package/assets/esri/core/workers/chunks/53eaad20c4f55dae21e0.js +0 -1
  271. package/assets/esri/core/workers/chunks/5ac3096139e3eafd0e1d.js +0 -1
  272. package/assets/esri/core/workers/chunks/626ba3a7dee952308566.js +0 -1
  273. package/assets/esri/core/workers/chunks/76575d2c1c56e37c1315.js +0 -319
  274. package/assets/esri/core/workers/chunks/7c4746f60332620f75c5.js +0 -1
  275. package/assets/esri/core/workers/chunks/8221f2e540abe1e0f048.js +0 -1
  276. package/assets/esri/core/workers/chunks/ae156b99e60a2bf940e4.js +0 -1
  277. package/assets/esri/core/workers/chunks/bf4947fe446dcb477031.js +0 -1
  278. package/assets/esri/core/workers/chunks/c6b08fdc0421258efcf5.js +0 -1
  279. package/assets/esri/core/workers/chunks/cd2927b922444880566d.js +0 -1
  280. package/assets/esri/core/workers/chunks/d3a74087e076a3ae76ca.js +0 -1
  281. package/assets/esri/core/workers/chunks/d44e99b4bb1cec6a922b.js +0 -1
  282. package/assets/esri/core/workers/chunks/e524462c63834fae7e01.js +0 -2
  283. package/assets/esri/core/workers/chunks/e64bc4533405af8554ae.js +0 -1
  284. package/assets/esri/core/workers/chunks/e64e0c3240f8e577a61c.js +0 -39
  285. package/assets/esri/core/workers/chunks/fd36b7aaf0d8e0c84471.js +0 -1
  286. package/geometry/support/curveUtils.js +0 -5
  287. package/geometry/support/densifyUtils.js +0 -5
  288. package/views/3d/layers/graphics/pipeline/symbolization/Factory.js +0 -5
  289. package/views/3d/layers/graphics/pipeline/symbolization/TestObjectSymbol.js +0 -5
  290. package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +0 -5
  291. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechniqueConfiguration.js +0 -5
  292. package/widgets/support/InteractiveAnalysisViewModel.js +0 -5
@@ -2,14 +2,14 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{ComponentData as i,ComponentDataType as l}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as t}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as d,isColorOrColorEmission as s}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as g}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as h}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as j,PhysicallyBasedRenderingParameters as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as T}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as $,getIMColorTexture as M}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as W,glsl as P}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as B}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOID as z}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as I}from"../webscene/support/AlphaCutoff.js";function V(V){const F=new E,{vertex:H,fragment:_}=F;F.include(u,V),F.include(v,V),F.include(c,V),F.include(m,V),F.include(n,V),F.include(i,V),F.include(A,V),_.include(g,V),F.include(S,V),F.include(T,V);const{output:G,pbrMode:k,hasNormalTexture:U,snowCover:q,receiveShadows:J,spherical:K,ellipsoidMode:Q,overlayEnabled:X,componentData:Y,vertexDiscardMode:Z,hasBloom:ee}=V,oe=k===j.Normal||k===j.Schematic;oe&&(F.include(O,V),U&&F.include(f,V));const re=G===d.Shadow||G===d.ShadowHighlight||G===d.ShadowExcludeHighlight,ae=re&&Y===l.Varying;if(X){F.include(y,V),F.include($,V);const a=Q===D.Earth,i=Q===D.Earth,l=a?e.radius:i?o.radius:r.radius;H.code.add(`\n ${W(K,`const float invRadius = ${P.float(1/l)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${W(K,"/ (1.0 + invRadius * pos.z);")}; }`)}const ie=X&&s(G)&&k===j.WaterOnIntegratedMesh;ie&&(F.varyings.add("tbnTangent","vec3"),F.varyings.add("tbnBiTangent","vec3"),F.varyings.add("groundNormal","vec3"));const le=Z===t.None,te=Z===t.Opaque,ne=1-1/255;if(H.main.add(P`
5
+ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{ComponentData as i,ComponentDataType as l}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as t}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as d,isColorOrColorEmission as s}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as g}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as h}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L,addMainLightDirection as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as N,PhysicallyBasedRenderingParameters as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as $}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as T}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as M,getIMColorTexture as A}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as W}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as P,glsl as B}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as z}from"../views/3d/webgl-engine/effects/weather/SnowCover.glsl.js";import{outputColorHighlightOID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as V}from"../webscene/support/AlphaCutoff.js";function H(H){const _=new I,{vertex:G,fragment:k}=_;_.include(u,H),_.include(v,H),_.include(c,H),_.include(m,H),_.include(n,H),_.include(i,H),_.include(D,H),k.include(g,H),_.include(O,H),_.include(T,H);const{output:U,pbrMode:q,hasNormalTexture:J,snowCover:K,receiveShadows:Q,shadeNormals:X,spherical:Y,ellipsoidMode:Z,overlayEnabled:ee,componentData:oe,vertexDiscardMode:re,hasBloom:ae}=H,ie=q===N.Normal||q===N.Schematic;ie&&(_.include(S,H),J&&_.include(f,H));const le=U===d.Shadow||U===d.ShadowHighlight||U===d.ShadowExcludeHighlight,te=le&&oe===l.Varying;if(ee){_.include(y,H),_.include(M,H);const a=Z===W.Earth,i=Z===W.Earth,l=a?e.radius:i?o.radius:r.radius;G.code.add(`\n ${P(Y,`const float invRadius = ${B.float(1/l)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${P(Y,"/ (1.0 + invRadius * pos.z);")}; }`)}const ne=ee&&s(U)&&q===N.WaterOnIntegratedMesh;ne&&(_.varyings.add("tbnTangent","vec3"),_.varyings.add("tbnBiTangent","vec3"),_.varyings.add("groundNormal","vec3"));const de=re===t.None,se=re===t.Opaque,ge=1-1/255;if(G.main.add(B`
6
6
  bool castShadows;
7
7
  vec4 externalColor = forwardExternalColor(castShadows);
8
- ${W(ae,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
8
+ ${P(te,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
9
9
 
10
- ${W(!le,`{ if (externalColor.a ${te?">":"<="} ${P.float(ne)}) { gl_Position = vec4(vec3(1e38), 1.0); return; } }`)}
10
+ ${P(!de,`{ if (externalColor.a ${se?">":"<="} ${B.float(ge)}) { gl_Position = vec4(vec3(1e38), 1.0); return; } }`)}
11
11
 
12
- ${W(G===d.ObjectAndLayerIdColor,"externalColor.a = 1.0;")}
12
+ ${P(U===d.ObjectAndLayerIdColor,"externalColor.a = 1.0;")}
13
13
 
14
14
  forwardPosition(readElevationOffset());
15
15
  forwardViewPosDepth(vPosition_view);
@@ -18,24 +18,24 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
18
18
  forwardVertexColor();
19
19
  forwardLinearDepth();
20
20
  forwardObjectAndLayerIdColor();
21
- ${W(ie,K?P`
22
- groundNormal = normalize(positionWorld());
23
- tbnTangent = normalize(cross(vec3(0.0, 0.0, 1.0), groundNormal));
24
- tbnBiTangent = normalize(cross(groundNormal, tbnTangent));`:P`
25
- groundNormal = vec3(0.0, 0.0, 1.0);
26
- tbnTangent = vec3(1.0, 0.0, 0.0);
27
- tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
28
- ${W(X,"setOverlayVTC(projectOverlay(position));")}
21
+ ${P(ne,Y?B`
22
+ groundNormal = normalize(positionWorld());
23
+ tbnTangent = normalize(cross(vec3(0.0, 0.0, 1.0), groundNormal));
24
+ tbnBiTangent = normalize(cross(groundNormal, tbnTangent));`:B`
25
+ groundNormal = vec3(0.0, 0.0, 1.0);
26
+ tbnTangent = vec3(1.0, 0.0, 0.0);
27
+ tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
28
+ ${P(ee,"setOverlayVTC(projectOverlay(position));")}
29
29
 
30
- if (externalColor.a < ${P.float(I)}) {
30
+ if (externalColor.a < ${B.float(V)}) {
31
31
  // Discard this vertex
32
32
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
33
33
  return;
34
34
  }
35
- `),s(G))return F.include(C,V),F.include(b,V),F.include(y,V),F.include(z,V),J&&F.include(N,V),_.code.add(P`
35
+ `),s(U))return _.include(C,H),_.include(b,H),_.include(y,H),_.include(E,H),k.include(z,H),Q&&_.include($,H),k.code.add(B`
36
36
  float evaluateShadow() {
37
- return ${J?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
38
- }`),X&&_.uniforms.add(new R("ovColorTex",((e,o)=>M(e,o)))),_.main.add(P`
37
+ return ${Q?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
38
+ }`),ee&&k.uniforms.add(new R("ovColorTex",((e,o)=>A(e,o)))),k.main.add(B`
39
39
  discardBySlice(vPositionWorldCameraRelative);
40
40
  discardByTerrainDepth();
41
41
 
@@ -47,45 +47,49 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
47
47
  readExternalColor(externalColor, externalColorMixMode);
48
48
 
49
49
  vec4 materialColor = computeMaterialColor(textureColor, externalColor, externalColorMixMode);
50
- ${W(X,P`vec4 overlayColor = getOverlayColor(ovColorTex, vtcOverlay);`)}
51
- `),oe?(L(_),K&&x(_),_.main.add(P`
50
+ ${P(ee,B`vec4 overlayColor = getOverlayColor(ovColorTex, vtcOverlay);`)}
51
+ `),ie?(L(k),Y&&x(k),k.main.add(B`
52
52
  applyPBRFactors();
53
- ${W(k===j.Normal,P`if (externalColorMixMode == 3) {
53
+ ${P(q===N.Normal,B`if (externalColorMixMode == 3) {
54
54
  mrr = vec3(0.0, 0.6, 0.2);
55
55
  }`)}
56
56
  float additionalIrradiance = 0.02 * mainLightIntensity[2];
57
- ${W(U,"mat3 tangentSpace = computeTangentSpace(fragmentShadingNormal, vPositionWorldCameraRelative, vuv0);")}
58
- vec3 shadingNormal = ${U?"computeTextureNormal(tangentSpace, vuv0)":"fragmentShadingNormal"};
59
- vec3 normalGround = ${K?P`normalize(positionWorld())`:P`vec3(0.0, 0.0, 1.0)`};
57
+ ${P(J,"mat3 tangentSpace = computeTangentSpace(fragmentFaceNormal, vPositionWorldCameraRelative, vuv0);")}
58
+ vec3 shadingNormal = ${J?"computeTextureNormal(tangentSpace, vuv0)":"fragmentShadingNormal"};
59
+ vec3 groundNormal = ${Y?B`normalize(positionWorld())`:B`vec3(0.0, 0.0, 1.0)`};
60
60
 
61
61
  vec3 viewDir = normalize(vPositionWorldCameraRelative);
62
62
  float ssao = 1.0 - occlusion * evaluateAmbientOcclusionInverse();
63
- ${W(q,P`float snow = smoothstep(0.5, 0.55, dot(fragmentFaceNormal, normalize(positionWorld())));
63
+ ${P(K,B`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
64
64
  materialColor.rgb = mix(materialColor.rgb, vec3(1.1), snow);
65
65
  ssao = mix(ssao, 0.5 * ssao, snow);
66
66
  shadingNormal = mix(shadingNormal, fragmentFaceNormal, snow);`)}
67
- ${W(X,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
67
+ ${P(ee,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
68
68
 
69
69
  vec3 additionalLight = evaluateAdditionalLighting(ssao, positionWorld());
70
- vec4 emission = ${ee?"vec4(0.0)":"getEmissions(materialColor.rgb)"};
71
- ${W(K,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
72
- ${K?P`float shadow = max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow());`:"float shadow = evaluateShadow();"}
73
- vec4 shadedColor = vec4(evaluateSceneLightingPBR(shadingNormal, materialColor.rgb, shadow, ssao, additionalLight, viewDir, normalGround, mrr, emission, additionalIrradiance), materialColor.a);
74
- `)):(K&&x(_),ie&&_.uniforms.add(new B("ovNormalTex",(e=>e.overlay?.getTexture(a.WaterNormal)))),_.main.add(P`
75
- ${W(K,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
76
- float shadow = ${J?K?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow())":"evaluateShadow()":K?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
70
+ vec4 emission = ${ae?"vec4(0.0)":"getEmissions(materialColor.rgb)"};
71
+ ${P(Y,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
72
+ ${Y?B`float shadow = max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow());`:"float shadow = evaluateShadow();"}
73
+ vec4 shadedColor = vec4(evaluateSceneLightingPBR(shadingNormal, materialColor.rgb, shadow, ssao, additionalLight, viewDir, groundNormal, mrr, emission, additionalIrradiance), materialColor.a);
74
+ `)):(j(k),Y&&x(k),ne&&k.uniforms.add(new F("ovNormalTex",(e=>e.overlay?.getTexture(a.WaterNormal)))),k.main.add(B`
75
+ ${P(Y,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
76
+ float shadow = ${Q?Y?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow())":"evaluateShadow()":Y?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
77
77
 
78
- ${W(q,P`float snow = smoothstep(0.5, 0.55, dot(fragmentFaceNormal, normalize(positionWorld())));
78
+ ${P(Q&&!X,B`
79
+ float dotFL = dot(fragmentFaceNormal, mainLightDirection);
80
+ if( dotFL <= 0.0) shadow = 1.0;
81
+ `)}
82
+ ${P(K,B`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
79
83
  materialColor.rgb = mix(materialColor.rgb, vec3(1), snow);`)}
80
84
 
81
85
  // At global scale we create some additional ambient light based on the main light to simulate global illumination
82
86
  float ssao = evaluateAmbientOcclusion();
83
87
  vec3 additionalLight = evaluateAdditionalLighting(ssao, positionWorld());
84
88
 
85
- ${W(X,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
89
+ ${P(ee,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
86
90
 
87
91
  vec4 shadedColor = vec4(evaluateSceneLighting(fragmentShadingNormal, materialColor.rgb, shadow, ssao, additionalLight), materialColor.a);
88
- ${W(ie,P`vec4 overlayWaterMask = getOverlayColor(ovNormalTex, vtcOverlay);
92
+ ${P(ne,B`vec4 overlayWaterMask = getOverlayColor(ovNormalTex, vtcOverlay);
89
93
  float waterNormalLength = length(overlayWaterMask);
90
94
  if (waterNormalLength > 0.95) {
91
95
  mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, groundNormal);
@@ -94,13 +98,13 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
94
98
  // un-gamma the ground color to mix in linear space
95
99
  shadedColor = mix(shadedColor, waterColorNonLinear, waterColorLinear.w);
96
100
  }`)}
97
- `)),_.main.add("outputColorHighlightOID(shadedColor, vPositionWorldCameraRelative, materialColor.rgb);"),F;const de=G===d.Normal,se=G===d.ObjectAndLayerIdColor,ge=G===d.Highlight,me=re||G===d.ViewshedShadow;return me&&F.include(h,V),de&&F.include(b,V),X&&F.include(p,V),F.include(w,V),_.main.add(P`
101
+ `)),k.main.add(`outputColorHighlightOID(shadedColor, vPositionWorldCameraRelative, materialColor.rgb ${P(K,", snow")});`),_;const me=U===d.Normal,ce=U===d.ObjectAndLayerIdColor,ve=U===d.Highlight,ue=le||U===d.ViewshedShadow;return ue&&_.include(h,H),me&&_.include(b,H),ee&&_.include(p,H),_.include(w,H),k.main.add(B`
98
102
  discardBySlice(vPositionWorldCameraRelative);
99
103
 
100
104
  vec4 textureColor = readBaseColorTexture();
101
105
  discardOrAdjustAlpha(textureColor);
102
106
 
103
- ${W(me,"outputDepth(linearDepth);")}
104
- ${W(de,P`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
105
- ${W(se,X?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
106
- ${W(ge,W(X,P`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,P`calculateOcclusionAndOutputHighlight();`))}`),F}const F=Object.freeze(Object.defineProperty({__proto__:null,build:V},Symbol.toStringTag,{value:"Module"}));export{F as C,V as b};
107
+ ${P(ue,"outputDepth(linearDepth);")}
108
+ ${P(me,B`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
109
+ ${P(ce,ee?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
110
+ ${P(ve,P(ee,B`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,B`calculateOcclusionAndOutputHighlight();`))}`),_}const _=Object.freeze(Object.defineProperty({__proto__:null,build:H},Symbol.toStringTag,{value:"Module"}));export{_ as C,H as b};
@@ -2,10 +2,10 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ForwardLinearDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColorOrColorEmission as i}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as a}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as l}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as n,NormalType as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as b}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{ComputeNormalTexture as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as h,addAmbientBoostFactor as p,addLightingGlobalFactor as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{PhysicallyBasedRendering as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as C,PBRMode as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as P,ReadShadowMapDraw as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{colorTextureUV as S,normalTextureUV as T,emissiveTextureUV as V,occlusionTextureUV as A,metallicRoughnessTextureUV as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js";import{VisualVariables as $}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as E}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as I,addCameraPosition as B}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as U}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as _}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as R,If as z}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as G}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{VertexAttribute as W}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{outputColorHighlightOID as k}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as H}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as q}from"../webscene/support/AlphaCutoff.js";function J(J){const K=new H,{attributes:Q,vertex:X,fragment:Y,varyings:Z}=K,{output:ee,normalType:re,offsetBackfaces:oe,instancedColor:ie,spherical:ae,receiveShadows:le,snowCover:se,pbrMode:ne,textureAlphaPremultiplied:te,instancedDoublePrecision:de,hasVertexColors:ce,hasVertexTangents:me,hasColorTexture:ge,hasNormalTexture:ve,hasNormalTextureTransform:be,hasColorTextureTransform:ue,hasBloom:we}=J;if(I(X,J),Q.add(W.POSITION,"vec3"),Z.add("vpos","vec3",{invariant:!0}),K.include($,J),K.include(s,J),K.include(v,J),K.include(S,J),!i(ee))return K.include(b,J),K;K.include(T,J),K.include(V,J),K.include(A,J),K.include(M,J),B(X,J),K.include(n,J),K.include(l,J);const he=re===t.Attribute||re===t.Compressed;return he&&oe&&K.include(o),K.include(u,J),K.include(g,J),ie&&K.attributes.add(W.INSTANCECOLOR,"vec4"),Z.add("vPositionLocal","vec3"),K.include(c,J),K.include(r,J),K.include(d,J),K.include(m,J),X.uniforms.add(new F("externalColor",(r=>"ignore"===r.colorMixMode?e:r.externalColor))),Z.add("vcolorExt","vec4"),K.include(N,J),X.main.add(R`
5
+ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ForwardLinearDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColorOrColorEmission as i}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as a}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as l}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as n,NormalType as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as b}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{ComputeNormalTexture as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as p,addAmbientBoostFactor as h,addLightingGlobalFactor as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{PhysicallyBasedRendering as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as L,PBRMode as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as P,ReadShadowMapDraw as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{colorTextureUV as T,normalTextureUV as N,emissiveTextureUV as M,occlusionTextureUV as V,metallicRoughnessTextureUV as A}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js";import{VisualVariables as $}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as E}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as I,addCameraPosition as B}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as U}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as _}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as R,If as z}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as G}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as W}from"../views/3d/webgl-engine/effects/weather/SnowCover.glsl.js";import{VertexAttribute as k}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{outputColorHighlightOID as H}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as q}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as J}from"../webscene/support/AlphaCutoff.js";function K(K){const Q=new q,{attributes:X,vertex:Y,fragment:Z,varyings:ee}=Q,{output:re,normalType:oe,offsetBackfaces:ie,instancedColor:ae,spherical:le,receiveShadows:se,snowCover:ne,pbrMode:te,textureAlphaPremultiplied:de,instancedDoublePrecision:ce,hasVertexColors:me,hasVertexTangents:ge,hasColorTexture:ve,hasNormalTexture:be,hasNormalTextureTransform:ue,hasColorTextureTransform:we,hasBloom:pe}=K;if(I(Y,K),X.add(k.POSITION,"vec3"),ee.add("vpos","vec3",{invariant:!0}),Q.include($,K),Q.include(s,K),Q.include(v,K),Q.include(T,K),!i(re))return Q.include(b,K),Q;Q.include(N,K),Q.include(M,K),Q.include(V,K),Q.include(A,K),B(Y,K),Q.include(n,K),Q.include(l,K);const he=oe===t.Attribute||oe===t.Compressed;return he&&ie&&Q.include(o),Q.include(u,K),Q.include(g,K),ae&&Q.attributes.add(k.INSTANCECOLOR,"vec4"),ee.add("vPositionLocal","vec3"),Q.include(c,K),Q.include(r,K),Q.include(d,K),Q.include(m,K),Y.uniforms.add(new F("externalColor",(r=>"ignore"===r.colorMixMode?e:r.externalColor))),ee.add("vcolorExt","vec4"),Q.include(O,K),Y.main.add(R`
6
6
  forwardNormalizedVertexColor();
7
7
  vcolorExt = externalColor;
8
- ${z(ie,"vcolorExt *= instanceColor * 0.003921568627451;")}
8
+ ${z(ae,"vcolorExt *= instanceColor * 0.003921568627451;")}
9
9
  vcolorExt *= vvColor();
10
10
  vcolorExt *= getSymbolColor();
11
11
  forwardColorMixMode();
@@ -15,9 +15,9 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
15
15
  vpos = subtractOrigin(vpos);
16
16
  ${z(he,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
17
17
  vpos = addVerticalOffset(vpos, localOrigin);
18
- ${z(me,"vTangent = dpTransformVertexTangent(tangent);")}
18
+ ${z(ge,"vTangent = dpTransformVertexTangent(tangent);")}
19
19
  gl_Position = transformPosition(proj, view, vpos);
20
- ${z(he&&oe,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
20
+ ${z(he&&ie,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
21
21
 
22
22
  forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
23
23
  forwardLinearDepth();
@@ -28,18 +28,18 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
28
28
  forwardOcclusionUV();
29
29
  forwardMetallicRoughnessUV();
30
30
 
31
- if (vcolorExt.a < ${R.float(q)}) {
31
+ if (vcolorExt.a < ${R.float(J)}) {
32
32
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
33
33
  }
34
- `),K.include(h,J),K.include(w,J),K.include(D,J),K.include(de?P:O,J),K.fragment.include(a,J),K.include(k,J),B(Y,J),Y.uniforms.add(X.uniforms.get("localOrigin"),new U("ambient",(e=>e.ambient)),new U("diffuse",(e=>e.diffuse)),new _("opacity",(e=>e.opacity)),new _("layerOpacity",(e=>e.layerOpacity))),ge&&Y.uniforms.add(new G("tex",(e=>e.texture))),K.include(C,J),K.include(L,J),Y.include(E),K.include(y,J),p(Y),f(Y),x(Y),Y.main.add(R`
34
+ `),Q.include(p,K),Z.include(w,K),Q.include(D,K),Q.include(ce?P:S,K),Z.include(a,K),Q.include(H,K),B(Z,K),Z.uniforms.add(Y.uniforms.get("localOrigin"),new U("ambient",(e=>e.ambient)),new U("diffuse",(e=>e.diffuse)),new _("opacity",(e=>e.opacity)),new _("layerOpacity",(e=>e.layerOpacity))),ve&&Z.uniforms.add(new G("tex",(e=>e.texture))),Q.include(L,K),Z.include(C,K),Z.include(E),Q.include(y,K),Z.include(W,K),h(Z),f(Z),x(Z),Z.main.add(R`
35
35
  discardBySlice(vpos);
36
36
  discardByTerrainDepth();
37
- ${ge?R`
38
- vec4 texColor = texture(tex, ${ue?"colorUV":"vuv0"});
39
- ${z(te,"texColor.rgb /= texColor.a;")}
37
+ ${ve?R`
38
+ vec4 texColor = texture(tex, ${we?"colorUV":"vuv0"});
39
+ ${z(de,"texColor.rgb /= texColor.a;")}
40
40
  discardOrAdjustAlpha(texColor);`:R`vec4 texColor = vec4(1.0);`}
41
41
  shadingParams.viewDirection = normalize(vpos - cameraPosition);
42
- ${re===t.ScreenDerivative?R`vec3 normal = screenDerivativeNormal(vPositionLocal);`:R`shadingParams.normalView = vNormalWorld;
42
+ ${oe===t.ScreenDerivative?R`vec3 normal = screenDerivativeNormal(vPositionLocal);`:R`shadingParams.normalView = vNormalWorld;
43
43
  vec3 normal = shadingNormal(shadingParams);`}
44
44
  applyPBRFactors();
45
45
  float ssao = evaluateAmbientOcclusionInverse() * getBakedOcclusion();
@@ -47,27 +47,27 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
47
47
  vec3 posWorld = vpos + localOrigin;
48
48
 
49
49
  float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
50
- float shadow = ${le?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":z(ae,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
50
+ float shadow = ${se?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":z(le,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
51
51
 
52
52
  vec3 matColor = max(ambient, diffuse);
53
- vec3 albedo = mixExternalColor(${z(ce,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
54
- float opacity_ = layerOpacity * mixExternalOpacity(${z(ce,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
55
- ${ve?`mat3 tangentSpace = computeTangentSpace(${me?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${be?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
56
- vec3 normalGround = ${ae?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
53
+ vec3 albedo = mixExternalColor(${z(me,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
54
+ float opacity_ = layerOpacity * mixExternalOpacity(${z(me,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
55
+ ${be?`mat3 tangentSpace = computeTangentSpace(${ge?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${ue?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
56
+ vec3 normalGround = ${le?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
57
57
 
58
- ${z(se,R`
59
- float snow = smoothstep(0.5, 0.55, dot(normal, normalGround));
58
+ ${z(ne,R`
59
+ float snow = getSnow(normal, normalGround);
60
60
  albedo = mix(albedo, vec3(1), snow);
61
61
  shadingNormal = mix(shadingNormal, normal, snow);
62
62
  ssao = mix(ssao, 1.0, snow);`)}
63
63
 
64
64
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
65
65
 
66
- ${ne===j.Normal||ne===j.Schematic?R`
66
+ ${te===j.Normal||te===j.Schematic?R`
67
67
  float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
68
- vec4 emission = ${we?"vec4(0.0)":"getEmissions(albedo)"};
69
- ${z(se,"mrr = mix(mrr, vec3(0.0, 1.0, 0.04), snow);\n emission = mix(emission, vec4(0.0), snow);")}
68
+ vec4 emission = ${pe?"vec4(0.0)":"getEmissions(albedo)"};
69
+ ${z(ne,"mrr = applySnowToMRR(mrr, snow);\n emission = snowCoverForEmissions(emission, snow);")}
70
70
  vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:R`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
71
71
  vec4 finalColor = vec4(shadedColor, opacity_);
72
- outputColorHighlightOID(finalColor, vpos, albedo);
73
- `),K}const K=Object.freeze(Object.defineProperty({__proto__:null,build:J},Symbol.toStringTag,{value:"Module"}));export{K as D,J as b};
72
+ outputColorHighlightOID(finalColor, vpos, albedo ${z(ne,", snow")});
73
+ `),Q}const Q=Object.freeze(Object.defineProperty({__proto__:null,build:K},Symbol.toStringTag,{value:"Module"}));export{Q as D,K as b};
@@ -2,12 +2,12 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{Float3BindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float3PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ScreenSpacePassAtmosphere as m}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{SphereIntersect as l}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{ToneMapping as d,ToneMappingFunction as g}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{NoParameters as p}from"../views/webgl/NoParameters.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";class f extends p{constructor(){super(...arguments),this.color=e(),this.strength=4e-6,this.atmosphereC=1,this.amount=0}}function h(){const e=new c;e.include(m,{needUVs:!0,needEyeDirection:!0});const p=e.fragment;return p.uniforms.add(new s("atmosphereC",(e=>e.atmosphereC)),new a("cameraPosition",(e=>e.camera.eye)),new n("depthTexture",(e=>e.mainDepth)),new s("fogStrength",(e=>e.strength)),new s("fogAmount",(e=>e.amount)),new t("fogColor",(e=>e.color))),e.include(o),p.include(l),p.include(d,{toneMapping:g.ACES}),p.include(r),p.code.add(i`float getFogAmount(float dist, vec3 rayDir) {
5
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{Float3BindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float3PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ScreenSpacePassAtmosphere as m}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{SphereIntersect as l}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{ToneMapping as d}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{NoParameters as g}from"../views/webgl/NoParameters.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";class c extends g{constructor(){super(...arguments),this.color=e(),this.strength=4e-6,this.atmosphereC=1,this.amount=0}}function f(){const e=new p;e.include(m,{needUVs:!0,needEyeDirection:!0});const g=e.fragment;return g.uniforms.add(new s("atmosphereC",(e=>e.atmosphereC)),new a("cameraPosition",(e=>e.camera.eye)),new n("depthTexture",(e=>e.mainDepth)),new s("fogStrength",(e=>e.strength)),new s("fogAmount",(e=>e.amount)),new t("fogColor",(e=>e.color))),g.include(o),g.include(l),g.include(d),g.include(r),g.code.add(i`float getFogAmount(float dist, vec3 rayDir) {
6
6
  if(dist == -1.0){
7
7
  dist = 0.055 * sphereIntersect(cameraPosition, rayDir, atmosphereC).y;
8
8
  }
9
9
  return fogAmount * (1.0 - exp(-dist * fogStrength));
10
- }`),p.main.add(i`vec3 rayDir = normalize(worldRay);
10
+ }`),g.main.add(i`vec3 rayDir = normalize(worldRay);
11
11
  float terrainDepth = -1.0;
12
12
  float depthSample = depthFromTexture(depthTexture, uv);
13
13
  if(depthSample < 1.0 && depthSample > 0.0){
@@ -18,4 +18,4 @@ terrainDepth = max(0.0, length(cameraSpaceRay));
18
18
  }
19
19
  float fogAmount = getFogAmount(terrainDepth, rayDir);
20
20
  vec4 fog = vec4(fogColor, 1.0) * fogAmount;
21
- fragColor = delinearizeGamma(vec4(tonemapACES(fog.rgb), fog.a));`),e}const u=Object.freeze(Object.defineProperty({__proto__:null,FogPassParameters:f,build:h},Symbol.toStringTag,{value:"Module"}));export{f as F,u as a,h as b};
21
+ fragColor = delinearizeGamma(vec4(tonemapACES(fog.rgb), fog.a));`),e}const h=Object.freeze(Object.defineProperty({__proto__:null,FogPassParameters:c,build:f},Symbol.toStringTag,{value:"Module"}));export{c as F,h as a,f as b};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ChapmanRaymarching as e}from"../views/3d/environment/ChapmanRaymarching.glsl.js";import{ReadDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n,If as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ScreenSpacePassAtmosphere as d}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{SphereIntersect as s}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{ToneMapping as p}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";function h(h){const m=new c,{fragment:g}=m;m.include(d),a(g),m.include(t),g.include(r),g.include(s),g.include(p,h),g.include(e,!0),g.uniforms.add(new l("depthTexture",(e=>e.mainDepth)),new i("hazeStrength",(e=>e.hazeStrength)));const{reduced:u}=h;return u&&g.code.add(n`float getDepth(vec2 uv){
5
+ import{ChapmanRaymarching as e}from"../views/3d/environment/ChapmanRaymarching.glsl.js";import{ReadDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n,If as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ScreenSpacePassAtmosphere as d}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{SphereIntersect as s}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{ToneMapping as p}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";function h(h){const m=new c,{fragment:g}=m;m.include(d),a(g),g.include(t),g.include(r),g.include(s),g.include(p),g.include(e,!0),g.uniforms.add(new l("depthTexture",(e=>e.mainDepth)),new i("hazeStrength",(e=>e.hazeStrength)));const{reduced:u}=h;return u&&g.code.add(n`float getDepth(vec2 uv){
6
6
  return linearDepthFromTexture(depthTexture, uv);
7
7
  }
8
8
  float textureBilinear(vec2 uv) {
@@ -2,17 +2,17 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ForwardLinearDepth as e,addNearFar as i}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{isColorOrColorEmission as a,ShaderOutput as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as l}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{PathVertexPosition as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{OutputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as m,addAmbientBoostFactor as g,addLightingGlobalFactor as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{NormalUtils as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PhysicallyBasedRenderingParameters as b,PBRMode as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDraw as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as j}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as L,addViewNormal as P,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as O}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as A,If as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOID as I}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as B}from"../views/webgl/ShaderBuilder.js";function F(F){const V=new B,{vertex:_,fragment:x,varyings:z}=V;L(_,F),z.add("vpos","vec3",{invariant:!0}),V.include(s,F);const{output:M,spherical:H,pbrMode:N,receiveShadows:$,hasBloom:k}=F,E=a(M);switch((E||M===o.ObjectAndLayerIdColor)&&(V.include(l,F),V.include(f,F),V.include(e,F),V.include(n,F),V.include(y,F),z.add("vnormal","vec3"),z.add("vcolor","vec4"),_.main.add(A`
5
+ import{ForwardLinearDepth as e,addNearFar as i}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{isColorOrColorEmission as o,ShaderOutput as a}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as n}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{PathVertexPosition as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{OutputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as m,addAmbientBoostFactor as g,addLightingGlobalFactor as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{NormalUtils as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PhysicallyBasedRenderingParameters as b,PBRMode as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDraw as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as j}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as L,addViewNormal as P,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as O}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as A,If as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{SnowCover as I}from"../views/3d/webgl-engine/effects/weather/SnowCover.glsl.js";import{outputColorHighlightOID as B}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as F}from"../views/webgl/ShaderBuilder.js";function x(x){const V=new F,{vertex:_,fragment:M,varyings:$}=V;L(_,x),$.add("vpos","vec3",{invariant:!0}),V.include(s,x);const{output:z,spherical:H,pbrMode:N,receiveShadows:E,hasBloom:G,snowCover:T}=x,k=o(z);switch((k||z===a.ObjectAndLayerIdColor)&&(V.include(n,x),V.include(f,x),V.include(e,x),V.include(l,x),V.include(y,x),$.add("vnormal","vec3"),$.add("vcolor","vec4"),_.main.add(A`
6
6
  vpos = calculateVPos();
7
7
  vnormal = normalize(localNormal());
8
8
  forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
9
9
 
10
10
  gl_Position = transformPosition(proj, view, vpos);
11
11
 
12
- ${E?"forwardLinearDepth();":""}
12
+ ${k?"forwardLinearDepth();":""}
13
13
  forwardObjectAndLayerIdColor();
14
14
 
15
- vcolor = getColor();`)),M){case o.ColorEmission:case o.Color:V.include(b,F),V.include(m,F),V.include(c,F),V.include(f,F),V.include(p,F),V.fragment.include(r,F),V.include(I,F),S(x,F),g(x),h(x),x.uniforms.add(_.uniforms.get("localOrigin"),new O("ambient",(e=>e.ambient)),new O("diffuse",(e=>e.diffuse)),new O("specular",(e=>e.specular)),new C("opacity",(e=>e.opacity))),x.include(j),v(x),x.main.add(A`
15
+ vcolor = getColor();`)),z){case a.ColorEmission:case a.Color:V.include(b,x),V.include(m,x),M.include(c,x),V.include(f,x),V.include(p,x),M.include(r,x),V.include(B,x),S(M,x),g(M),v(M),M.uniforms.add(_.uniforms.get("localOrigin"),new O("ambient",(e=>e.ambient)),new O("diffuse",(e=>e.diffuse)),new C("opacity",(e=>e.opacity))),M.include(j),M.include(I,x),h(M),M.main.add(A`
16
16
  discardBySlice(vpos);
17
17
  discardByTerrainDepth();
18
18
 
@@ -24,26 +24,30 @@ import{ForwardLinearDepth as e,addNearFar as i}from"../views/3d/webgl-engine/cor
24
24
  vec3 posWorld = vpos + localOrigin;
25
25
  vec3 normalGround = ${H?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
26
26
 
27
- float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
28
- vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
29
- float shadow = ${$?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth));":H?"lightingGlobalFactor * (1.0 - additionalAmbientScale);":"0.0;"}
30
27
  vec3 albedo = vcolor.rgb * max(ambient, diffuse); // combine the old material parameters into a single one
31
28
  float combinedOpacity = vcolor.a * opacity;
32
- albedo += 0.25 * specular; // don't completely ignore specular for now
33
29
 
34
- ${D(N===w.Schematic,`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];\n vec4 emission = ${k?"vec4(0.0)":"getEmissions(albedo)"};`)}
30
+ ${D(T,A`float snow = getSnow(normal, normalGround);
31
+ albedo = mix(albedo, vec3(1), snow);
32
+ ssao = mix(ssao, 1.0, snow);`)}
33
+
34
+ float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
35
+ vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
36
+ float shadow = ${E?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth));":H?"lightingGlobalFactor * (1.0 - additionalAmbientScale);":"0.0;"}
37
+
38
+ ${D(N===u.Schematic,`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];\n vec4 emission = ${G?"vec4(0.0)":"getEmissions(albedo)"};\n ${D(T,"mrr = applySnowToMRR(mrr, snow);\n emission = snowCoverForEmissions(emission, snow);")}`)}
35
39
 
36
- vec3 shadedColor = ${N===w.Schematic?"evaluateSceneLightingPBR(normal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);":"evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight);"}
40
+ vec3 shadedColor = ${N===u.Schematic?"evaluateSceneLightingPBR(normal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);":"evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight);"}
37
41
  vec4 finalColor = vec4(shadedColor, combinedOpacity);
38
- outputColorHighlightOID(finalColor, vpos, albedo);`);break;case o.Depth:V.include(l,F),_.main.add(A`vpos = calculateVPos();
39
- gl_Position = transformPosition(proj, view, vpos);`),V.fragment.include(r,F),x.main.add(A`discardBySlice(vpos);`);break;case o.Shadow:case o.ShadowHighlight:case o.ShadowExcludeHighlight:case o.ViewshedShadow:V.include(l,F),i(V),z.add("depth","float"),_.main.add(A`vpos = calculateVPos();
40
- gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);`),V.fragment.include(r,F),V.include(d,F),x.main.add(A`discardBySlice(vpos);
41
- outputDepth(depth);`);break;case o.ObjectAndLayerIdColor:V.fragment.include(r,F),x.main.add(A`discardBySlice(vpos);
42
- outputObjectAndLayerIdColor();`);break;case o.Normal:V.include(l,F),V.include(u,F),P(_),z.add("vnormal","vec3"),_.main.add(A`vpos = calculateVPos();
42
+ outputColorHighlightOID(finalColor, vpos, albedo ${D(T,", snow")});`);break;case a.Depth:V.include(n,x),_.main.add(A`vpos = calculateVPos();
43
+ gl_Position = transformPosition(proj, view, vpos);`),V.fragment.include(r,x),M.main.add(A`discardBySlice(vpos);`);break;case a.Shadow:case a.ShadowHighlight:case a.ShadowExcludeHighlight:case a.ViewshedShadow:V.include(n,x),i(V),$.add("depth","float"),_.main.add(A`vpos = calculateVPos();
44
+ gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);`),V.fragment.include(r,x),V.include(d,x),M.main.add(A`discardBySlice(vpos);
45
+ outputDepth(depth);`);break;case a.ObjectAndLayerIdColor:V.fragment.include(r,x),M.main.add(A`discardBySlice(vpos);
46
+ outputObjectAndLayerIdColor();`);break;case a.Normal:V.include(n,x),V.include(w,x),P(_),$.add("vnormal","vec3"),_.main.add(A`vpos = calculateVPos();
43
47
  vnormal = normalize((viewNormal * vec4(localNormal(), 1.0)).xyz);
44
- gl_Position = transformPosition(proj, view, vpos);`),V.fragment.include(r,F),x.main.add(A`discardBySlice(vpos);
48
+ gl_Position = transformPosition(proj, view, vpos);`),V.fragment.include(r,x),M.main.add(A`discardBySlice(vpos);
45
49
  vec3 normal = normalize(vnormal);
46
50
  if (gl_FrontFacing == false) normal = -normal;
47
- fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case o.Highlight:V.include(l,F),V.include(u,F),z.add("vnormal","vec3"),_.main.add(A`vpos = calculateVPos();
48
- gl_Position = transformPosition(proj, view, vpos);`),V.fragment.include(r,F),V.include(t,F),x.main.add(A`discardBySlice(vpos);
49
- calculateOcclusionAndOutputHighlight();`)}return V}const V=Object.freeze(Object.defineProperty({__proto__:null,build:F},Symbol.toStringTag,{value:"Module"}));export{V as P,F as b};
51
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case a.Highlight:V.include(n,x),V.include(w,x),$.add("vnormal","vec3"),_.main.add(A`vpos = calculateVPos();
52
+ gl_Position = transformPosition(proj, view, vpos);`),V.fragment.include(r,x),V.include(t,x),M.main.add(A`discardBySlice(vpos);
53
+ calculateOcclusionAndOutputHighlight();`)}return V}const V=Object.freeze(Object.defineProperty({__proto__:null,build:x},Symbol.toStringTag,{value:"Module"}));export{V as P,x as b};
@@ -2,10 +2,10 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColorOrColorEmission as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as a}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as g}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as v,addAmbientBoostFactor as b,addLightingGlobalFactor as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as h,addMainLightIntensity as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PBRMode as f,PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as y,ReadShadowMapDraw as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as M,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as N}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{VertexAttribute as I}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{outputColorHighlightOID as V}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as T}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as B}from"../webscene/support/AlphaCutoff.js";function R(R){const _=new T,{attributes:z,vertex:k,fragment:G,varyings:U}=_,{output:W,offsetBackfaces:H,instancedColor:q,pbrMode:J,snowCover:K,spherical:Q,hasBloom:X}=R,Y=J===f.Normal||J===f.Schematic;if(M(k,R),z.add(I.POSITION,"vec3"),U.add("vpos","vec3",{invariant:!0}),_.include(j,R),_.include(l,R),_.include(c,R),_.include(L,R),r(W)&&(S(_.vertex,R),_.include(t,R),_.include(a,R),H&&_.include(o),q&&_.attributes.add(I.INSTANCECOLOR,"vec4"),U.add("vNormalWorld","vec3"),U.add("localvpos","vec3",{invariant:!0}),_.include(n,R),_.include(e,R),_.include(s,R),_.include(d,R),k.uniforms.add(new E("externalColor",(e=>e.externalColor))),U.add("vcolorExt","vec4"),k.main.add(F`
5
+ import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColorOrColorEmission as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as a}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as g}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as v,addAmbientBoostFactor as b,addLightingGlobalFactor as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as p,addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PBRMode as f,PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as y,ReadShadowMapDraw as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as M}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as P,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{VertexAttribute as I}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{outputColorHighlightOID as T}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as V}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as B}from"../webscene/support/AlphaCutoff.js";function R(R){const _=new V,{attributes:z,vertex:k,fragment:G,varyings:U}=_,{output:W,offsetBackfaces:H,instancedColor:q,pbrMode:J,snowCover:K,spherical:Q,hasBloom:X}=R,Y=J===f.Normal||J===f.Schematic;if(P(k,R),z.add(I.POSITION,"vec3"),U.add("vpos","vec3",{invariant:!0}),_.include(j,R),_.include(l,R),_.include(c,R),_.include(L,R),r(W)&&(S(_.vertex,R),_.include(t,R),_.include(a,R),H&&_.include(o),q&&_.attributes.add(I.INSTANCECOLOR,"vec4"),U.add("vNormalWorld","vec3"),U.add("localvpos","vec3",{invariant:!0}),_.include(n,R),_.include(e,R),_.include(s,R),_.include(d,R),k.uniforms.add(new E("externalColor",(e=>e.externalColor))),U.add("vcolorExt","vec4"),k.main.add(F`
6
6
  forwardNormalizedVertexColor();
7
7
  vcolorExt = externalColor;
8
- ${N(q,"vcolorExt *= instanceColor * 0.003921568627451;")}
8
+ ${$(q,"vcolorExt *= instanceColor * 0.003921568627451;")}
9
9
  vcolorExt *= vvColor();
10
10
  vcolorExt *= getSymbolColor();
11
11
  forwardColorMixMode();
@@ -23,12 +23,12 @@ import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/
23
23
  forwardTextureCoordinates();
24
24
 
25
25
  gl_Position = alphaCut ? vec4(1e38, 1e38, 1e38, 1.0) :
26
- ${N(H,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
27
- `)),r(W)){const{hasColorTexture:e,hasColorTextureTransform:o,receiveShadows:r}=R;_.include(v,R),_.include(m,R),_.include(O,R),_.include(R.instancedDoublePrecision?y:C,R),_.fragment.include(i,R),_.include(V,R),S(_.fragment,R),h(G),b(G),w(G),G.uniforms.add(k.uniforms.get("localOrigin"),k.uniforms.get("view"),new A("ambient",(e=>e.ambient)),new A("diffuse",(e=>e.diffuse)),new D("opacity",(e=>e.opacity)),new D("layerOpacity",(e=>e.layerOpacity))),e&&G.uniforms.add(new $("tex",(e=>e.texture))),_.include(x,R),_.include(u,R),G.include(P),p(G),G.main.add(F`
26
+ ${$(H,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
27
+ `)),r(W)){const{hasColorTexture:e,hasColorTextureTransform:o,receiveShadows:r}=R;_.include(v,R),G.include(m,R),_.include(O,R),_.include(R.instancedDoublePrecision?y:C,R),G.include(i,R),_.include(T,R),S(G,R),p(G),b(G),w(G),G.uniforms.add(k.uniforms.get("localOrigin"),k.uniforms.get("view"),new A("ambient",(e=>e.ambient)),new A("diffuse",(e=>e.diffuse)),new D("opacity",(e=>e.opacity)),new D("layerOpacity",(e=>e.layerOpacity))),e&&G.uniforms.add(new N("tex",(e=>e.texture))),_.include(x,R),G.include(u,R),G.include(M),h(G),G.main.add(F`
28
28
  discardBySlice(vpos);
29
29
  discardByTerrainDepth();
30
30
  vec4 texColor = ${e?`texture(tex, ${o?"colorUV":"vuv0"})`:" vec4(1.0)"};
31
- ${N(e,`${N(R.textureAlphaPremultiplied,"texColor.rgb /= texColor.a;")}\n discardOrAdjustAlpha(texColor);`)}
31
+ ${$(e,`${$(R.textureAlphaPremultiplied,"texColor.rgb /= texColor.a;")}\n discardOrAdjustAlpha(texColor);`)}
32
32
  vec3 viewDirection = normalize(vpos - cameraPosition);
33
33
  applyPBRFactors();
34
34
  float ssao = evaluateAmbientOcclusionInverse();
@@ -41,7 +41,7 @@ import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/
41
41
  ${R.hasVertexColors?F`vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
42
42
  float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:F`vec3 albedo = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
43
43
  float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));`}
44
- ${N(K,"albedo = mix(albedo, vec3(1), 0.9);")}
44
+ ${$(K,"albedo = mix(albedo, vec3(1), 0.9);")}
45
45
  ${F`vec3 shadingNormal = normalize(vNormalWorld);
46
46
  albedo *= 1.2;
47
47
  vec3 viewForward = vec3(view[0][2], view[1][2], view[2][2]);
@@ -50,10 +50,10 @@ import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/
50
50
  float treeRadialFalloff = vColor.r;
51
51
  float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow);
52
52
  additionalLight += backLightFactor * mainLightIntensity;`}
53
- ${N(Y,`vec3 normalGround = ${Q?"normalize(vpos + localOrigin)":"vec3(0.0, 0.0, 1.0)"};`)}
53
+ ${$(Y,`vec3 normalGround = ${Q?"normalize(vpos + localOrigin)":"vec3(0.0, 0.0, 1.0)"};`)}
54
54
  ${Y?F`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
55
- ${N(K,F`mrr = vec3(0.0, 1.0, 0.04);`)}
55
+ ${$(K,F`mrr = applySnowToMRR(mrr, 1.0)`)}
56
56
  vec4 emission = ${K||X?"vec4(0.0)":"getEmissions(albedo)"};
57
57
  vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:F`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
58
58
  vec4 finalColor = vec4(shadedColor, opacity_);
59
- outputColorHighlightOID(finalColor, vpos, albedo);`)}return _.include(g,R),_}const _=Object.freeze(Object.defineProperty({__proto__:null,build:R},Symbol.toStringTag,{value:"Module"}));export{_ as R,R as b};
59
+ outputColorHighlightOID(finalColor, vpos, albedo ${$(K,", 1.0")});`)}return _.include(g,R),_}const _=Object.freeze(Object.defineProperty({__proto__:null,build:R},Symbol.toStringTag,{value:"Module"}));export{_ as R,R as b};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ShaderOutput as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as r,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addPixelRatio as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{VertexAttribute as u}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{LineMarkerSpace as x}from"../views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js";import{outputColorHighlightOID as L}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{CapType as w}from"../views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as y}from"../webscene/support/AlphaCutoff.js";const j=1;function P(P){const C=new b,{attributes:F,varyings:A,vertex:R,fragment:z}=C,{applyMarkerOffset:T,draped:V,output:W,capType:E,stippleEnabled:O,falloffEnabled:M,roundJoins:N,wireframe:_,innerColorEnabled:I}=P;C.include(s),C.include(n,P),C.include(r,P),C.include(t,P),C.include(l,P);const k=T&&!V;k&&(R.uniforms.add(new h("markerScale",(e=>e.markerScale))),C.include(a,{space:x.World})),p(R,P),R.uniforms.add(new S("inverseProjectionMatrix",(e=>e.camera.inverseProjectionMatrix)),new m("nearFar",(e=>e.camera.nearFar)),new h("miterLimit",(e=>"miter"!==e.join?0:e.miterLimit)),new v("viewport",(e=>e.camera.fullViewport))),R.constants.add("LARGE_HALF_FLOAT","float",65500),F.add(u.POSITION,"vec3"),F.add(u.PREVIOUSDELTA,"vec4"),F.add(u.NEXTDELTA,"vec4"),F.add(u.LINEPARAMETERS,"vec2"),F.add(u.U0,"float"),A.add("vColor","vec4"),A.add("vpos","vec3",{invariant:!0}),A.add("vLineDistance","float"),A.add("vLineWidth","float");const U=O;U&&A.add("vLineSizeInv","float");const B=E===w.ROUND,$=O&&B,H=M||$;H&&A.add("vLineDistanceNorm","float"),B&&(A.add("vSegmentSDF","float"),A.add("vReverseSegmentSDF","float")),R.code.add(D`vec2 perpendicular(vec2 v) {
5
+ import{ShaderOutput as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as r,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addPixelRatio as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{VertexAttribute as u}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{LineMarkerSpace as x}from"../views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js";import{outputColorHighlightOID as L}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{CapType as w}from"../views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as y}from"../webscene/support/AlphaCutoff.js";const j=1;function P(P){const C=new b,{attributes:F,varyings:A,vertex:R,fragment:z}=C,{applyMarkerOffset:T,draped:V,output:W,capType:E,stippleEnabled:O,falloffEnabled:M,roundJoins:N,wireframe:_,innerColorEnabled:I}=P;z.include(s),C.include(n,P),C.include(r,P),C.include(t,P),C.include(l,P);const k=T&&!V;k&&(R.uniforms.add(new h("markerScale",(e=>e.markerScale))),C.include(a,{space:x.World})),p(R,P),R.uniforms.add(new S("inverseProjectionMatrix",(e=>e.camera.inverseProjectionMatrix)),new m("nearFar",(e=>e.camera.nearFar)),new h("miterLimit",(e=>"miter"!==e.join?0:e.miterLimit)),new v("viewport",(e=>e.camera.fullViewport))),R.constants.add("LARGE_HALF_FLOAT","float",65500),F.add(u.POSITION,"vec3"),F.add(u.PREVIOUSDELTA,"vec4"),F.add(u.NEXTDELTA,"vec4"),F.add(u.LINEPARAMETERS,"vec2"),F.add(u.U0,"float"),A.add("vColor","vec4"),A.add("vpos","vec3",{invariant:!0}),A.add("vLineDistance","float"),A.add("vLineWidth","float");const U=O;U&&A.add("vLineSizeInv","float");const B=E===w.ROUND,$=O&&B,H=M||$;H&&A.add("vLineDistanceNorm","float"),B&&(A.add("vSegmentSDF","float"),A.add("vReverseSegmentSDF","float")),R.code.add(D`vec2 perpendicular(vec2 v) {
6
6
  return vec2(v.y, -v.x);
7
7
  }
8
8
  float interp(float ncp, vec4 a, vec4 b) {
@@ -2,16 +2,16 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{invert as e,translate as a}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadShadowMapPass as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ReadShadowMapConfiguration as n}from"../views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js";import{ShadowCastAccumulateIndex as l}from"../views/3d/webgl-engine/shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";const p=255,w=1/p;function u(o){const n=new m,{fragment:p}=n;n.include(r),n.include(s,c),p.uniforms.add(new d("shadowMap",(e=>e.shadowMap.depthTexture)),new d("depthMap",(e=>e.depth?.attachment)),new i("inverseViewMatrix",(o=>e(h,a(h,o.camera.viewMatrix,o.camera.center))))),p.constants.add("sampleValue","float",w);const u=o.index===l.CONTEXT?"vec2":"float";return n.outputs.add("sampleCount",u),p.main.add(t`
6
- sampleCount = ${u}(0.0);
5
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ReadShadowMapPass as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{glsl as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ReadShadowMapConfiguration as r}from"../views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js";import{ShadowCastAccumulateIndex as t}from"../views/3d/webgl-engine/shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShaderBuilder as n}from"../views/webgl/ShaderBuilder.js";const i=255,l=1/i;function u(r){const i=new n,{fragment:u}=i;i.include(e),i.include(a),i.include(o,w),u.uniforms.add(new d("shadowMap",(e=>e.shadowMap.depthTexture)),new d("depthMap",(e=>e.depth?.attachment))),u.constants.add("sampleValue","float",l);const h=r.index===t.CONTEXT?"vec2":"float";return i.outputs.add("sampleCount",h),u.main.add(s`
6
+ sampleCount = ${h}(0.0);
7
7
 
8
- vec3 uvzShadow = calculateShadowmapUVZFromDepthMap(uv, shadowMap, depthMap);
8
+ vec3 uvzShadow = calculateUVZShadowFromDepth(uv, textureSize(shadowMap,0), depthMap);
9
9
  if (uvzShadow.z < 0.0) {
10
10
  return;
11
11
  }
12
12
 
13
13
  bool shadow = posIsInShadowF(uvzShadow, shadowMap);
14
14
  if (shadow) {
15
- sampleCount = ${u}(sampleValue); // Add 1 to the sample count
15
+ sampleCount = ${h}(sampleValue); // Add 1 to the sample count
16
16
  }
17
- `),n}const h=o(),c=new n,g=Object.freeze(Object.defineProperty({__proto__:null,ShadowCastMaxSamples:p,build:u},Symbol.toStringTag,{value:"Module"}));export{p as S,g as a,u as b};
17
+ `),i}const w=new r,h=Object.freeze(Object.defineProperty({__proto__:null,ShadowCastMaxSamples:i,build:u},Symbol.toStringTag,{value:"Module"}));export{i as S,h as a,u as b};