@arcgis/core 6.0.0-next.8 → 6.0.0-next.9
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.
- package/arcade/featureSetUtils.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{85908e6e9c50749cee60.js → 037a8cc19debbaaa4e10.js} +1 -1
- package/assets/esri/core/workers/chunks/066550852483ab8f77bc.js +1 -0
- package/assets/esri/core/workers/chunks/0f725cf79ce00e790a7d.js +1 -0
- package/assets/esri/core/workers/chunks/12a7997a40c77f5c9160.js +1 -0
- package/assets/esri/core/workers/chunks/1b077c92345ffb5916c2.js +1 -0
- package/assets/esri/core/workers/chunks/{6dd0b79fa3a629ab4f27.js → 1bca39e0e651426bdbb5.js} +1 -1
- package/assets/esri/core/workers/chunks/{1b35ec54968fbeec17ce.js → 2686fe5b62dd0be699c0.js} +1 -1
- package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +1 -0
- package/assets/esri/core/workers/chunks/2e2e33ec50e97b91b178.js +1 -0
- package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
- package/assets/esri/core/workers/chunks/{776ae25a34352d3468bc.js → 3081ee6d8019494fc21e.js} +1 -1
- package/assets/esri/core/workers/chunks/37d6a264a3f1d8072aa0.js +1 -0
- package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +1 -0
- package/assets/esri/core/workers/chunks/{ded8b64a46992c3ae693.js → 40a584cb952e94326e9e.js} +1 -1
- package/assets/esri/core/workers/chunks/{1ba0dfbe0958cdbd7c9f.js → 42fd2a7b22b03dacc6a7.js} +1 -1
- package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
- package/assets/esri/core/workers/chunks/{d201fbf3ceff946d2bd6.js → 44d5508042cacdfcac47.js} +1 -1
- package/assets/esri/core/workers/chunks/{09a63cc1987f8636c5b0.js → 4503b20ca6a80fb63d72.js} +1 -1
- package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
- package/assets/esri/core/workers/chunks/45800373650fbc8262e6.js +1 -0
- package/assets/esri/core/workers/chunks/{6a7ab1ef9a37e87db5ae.js → 46a7da93a63663878583.js} +1 -1
- package/assets/esri/core/workers/chunks/{f43a50d4bd9636e68ae5.js → 46b4fb6a7fe4877b0efc.js} +63 -61
- package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
- package/assets/esri/core/workers/chunks/{257910cca66dc5df465e.js → 4911ce62421a6c3320b0.js} +1 -1
- package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +1 -0
- package/assets/esri/core/workers/chunks/4debf2d9c3465250ef7a.js +1 -0
- package/assets/esri/core/workers/chunks/4e8e322b469657ac22e2.js +1 -0
- package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +1 -0
- package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +1 -0
- package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +1 -0
- package/assets/esri/core/workers/chunks/{ceb680688fe7e570a774.js → 608be1172a908e92b9f1.js} +1 -1
- package/assets/esri/core/workers/chunks/{6f358116f79021ff9687.js → 612104dff305ff062dfa.js} +2 -2
- package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
- package/assets/esri/core/workers/chunks/6400446b7615b97c3521.js +1 -0
- package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +1 -0
- package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
- package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
- package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +1 -0
- package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
- package/assets/esri/core/workers/chunks/78472a57c2ba146fec65.js +1 -0
- package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
- package/assets/esri/core/workers/chunks/{56a24061589f4a968818.js → 814751e705c05099f864.js} +1 -1
- package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +1 -0
- package/assets/esri/core/workers/chunks/836bb3673ab30fc66f1e.js +1 -0
- package/assets/esri/core/workers/chunks/8487727f1197cf7dbf50.js +1 -0
- package/assets/esri/core/workers/chunks/{ceb112fe7aef354f8051.js → 88e54449261ef94e390d.js} +1 -1
- package/assets/esri/core/workers/chunks/8b0d5551978ab0aac0d1.js +1 -0
- package/assets/esri/core/workers/chunks/8d0c2de92770a1567536.js +1 -0
- package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
- package/assets/esri/core/workers/chunks/{86a051e9fe71aa356108.js → 9e3e442a9874ed23a043.js} +1 -1
- package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
- package/assets/esri/core/workers/chunks/aaba33611753c6aada68.js +1 -0
- package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
- package/assets/esri/core/workers/chunks/{ecaac39dde7ec4213264.js → af75747b06d79446a855.js} +1 -1
- package/assets/esri/core/workers/chunks/b564ec4e03478f5659db.js +1 -0
- package/assets/esri/core/workers/chunks/bc0f54a2c15502b630ec.js +1 -0
- package/assets/esri/core/workers/chunks/c1c534e08fc21842670b.js +1 -0
- package/assets/esri/core/workers/chunks/{9ab25ee06041f907b9a2.js → c2c1f51a4668055c2838.js} +1 -1
- package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
- package/assets/esri/core/workers/chunks/{a7985d20fa6e8d4878e7.js → d0f5bee9db1ad51ae687.js} +1 -1
- package/assets/esri/core/workers/chunks/dba280c370df13196711.js +1 -0
- package/assets/esri/core/workers/chunks/{19b9d393046a780e6c3f.js → de5ecb567bd69c613e9d.js} +1 -1
- package/assets/esri/core/workers/chunks/{534186fc921a0ccf58dc.js → e1f5d00878f27e1d413e.js} +1 -1
- package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +1 -0
- package/assets/esri/core/workers/chunks/e932951598499befabf5.js +1 -0
- package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
- package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +1 -0
- package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
- package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
- package/assets/esri/core/workers/chunks/{3b737dae6efed627406e.js → fc44d45598a7476bc606.js} +1 -1
- package/assets/esri/themes/base/_mixins.scss +2 -2
- package/assets/esri/themes/base/widgets/_Attribution.scss +1 -1
- package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +2 -2
- package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -5
- package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -1
- package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +2 -2
- package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +5 -5
- package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +1 -1
- package/assets/esri/themes/base/widgets/_Compass.scss +0 -2
- package/assets/esri/themes/base/widgets/_DirectionalPad.scss +4 -10
- package/assets/esri/themes/base/widgets/_Directions.scss +40 -40
- package/assets/esri/themes/base/widgets/_Editor.scss +7 -7
- package/assets/esri/themes/base/widgets/_Expand.scss +1 -1
- package/assets/esri/themes/base/widgets/_Feature.scss +1 -1
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +6 -6
- package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +1 -1
- package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationList.scss +1 -1
- package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationSettings.scss +3 -3
- package/assets/esri/themes/base/widgets/_FeatureTable.scss +27 -27
- package/assets/esri/themes/base/widgets/_FeatureTemplates.scss +1 -1
- package/assets/esri/themes/base/widgets/_Features.scss +5 -5
- package/assets/esri/themes/base/widgets/_FilterBuilder.scss +1 -1
- package/assets/esri/themes/base/widgets/_FilterCondition.scss +1 -1
- package/assets/esri/themes/base/widgets/_Grid.scss +18 -18
- package/assets/esri/themes/base/widgets/_GridControls.scss +11 -11
- package/assets/esri/themes/base/widgets/_LayerList.scss +1 -1
- package/assets/esri/themes/base/widgets/_Legend.scss +5 -5
- package/assets/esri/themes/base/widgets/_NavigationToggle.scss +4 -1
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +18 -19
- package/assets/esri/themes/base/widgets/_ResponsiveToolbar.scss +0 -2
- package/assets/esri/themes/base/widgets/_SearchResultRenderer.scss +1 -1
- package/assets/esri/themes/base/widgets/_SelectionList.scss +15 -15
- package/assets/esri/themes/base/widgets/_SelectionToolbar.scss +2 -2
- package/assets/esri/themes/base/widgets/_ShadowCast.scss +11 -11
- package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
- package/assets/esri/themes/base/widgets/_Slice.scss +3 -3
- package/assets/esri/themes/base/widgets/_SnappingControls.scss +1 -1
- package/assets/esri/themes/base/widgets/_TimeSlider.scss +5 -5
- package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +5 -4
- package/assets/esri/themes/base/widgets/_Tooltip.scss +14 -17
- package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +2 -2
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
- package/assets/esri/themes/base/widgets/_UtilityNetworkValidateTopology.scss +2 -2
- package/assets/esri/themes/base/widgets/_ValuePicker.scss +2 -2
- package/assets/esri/themes/base/widgets/_VideoPlayer.scss +5 -5
- package/assets/esri/themes/base/widgets/_Widget.scss +5 -1
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/AtmosphereCompositing.glsl.js +1 -1
- package/chunks/ChapmanAtmosphere.glsl.js +3 -3
- package/chunks/CloudsComposition.glsl.js +1 -1
- package/chunks/Component.glsl.js +41 -41
- package/chunks/DefaultMaterial.glsl.js +2 -2
- package/chunks/EdgeShader.glsl.js +9 -9
- package/chunks/Fog.glsl.js +5 -5
- package/chunks/GaussianSplat.glsl.js +2 -2
- package/chunks/GlobalIllumination.glsl.js +9 -9
- package/chunks/HUDMaterial.glsl.js +13 -13
- package/chunks/Haze.glsl.js +6 -6
- package/chunks/HazeCompositing.glsl.js +1 -1
- package/chunks/LaserlinePath.glsl.js +6 -6
- package/chunks/LineCallout.glsl.js +1 -1
- package/chunks/LineMarker.glsl.js +5 -5
- package/chunks/NavigationDepth.glsl.js +2 -2
- package/chunks/Path.glsl.js +1 -1
- package/chunks/Pattern.glsl.js +26 -26
- package/chunks/Precipitation.glsl.js +7 -7
- package/chunks/RealisticTree.glsl.js +2 -2
- package/chunks/RibbonLine.glsl.js +60 -60
- package/chunks/ShadowCastAccumulate.glsl.js +1 -1
- package/chunks/ShadowHighlight.glsl.js +5 -5
- package/chunks/ShadowHighlightBuffer.glsl.js +1 -1
- package/chunks/SimpleAtmosphere.glsl.js +4 -4
- package/chunks/Terrain.glsl.js +29 -32
- package/chunks/Viewshed.glsl.js +2 -2
- package/chunks/Water.glsl.js +2 -2
- package/config.js +1 -1
- package/core/Loadable.js +1 -1
- package/geometry/HeightModelInfo.js +1 -1
- package/geometry/support/meshUtils.d.ts +1 -1
- package/kernel.js +1 -1
- package/layers/BaseDynamicLayer.d.ts +1 -0
- package/layers/BaseElevationLayer.d.ts +2 -0
- package/layers/BaseTileLayer.d.ts +12 -9
- package/layers/CSVLayer.d.ts +0 -15
- package/layers/FeatureLayer.d.ts +2 -15
- package/layers/GeoJSONLayer.d.ts +0 -52
- package/layers/GeoRSSLayer.d.ts +0 -44
- package/layers/ParquetLayer.d.ts +92 -12
- package/layers/ParquetLayer.js +1 -1
- package/layers/SketchLayer.d.ts +0 -1
- package/layers/VectorTileLayer.d.ts +2 -12
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/mixins/PortalLayer.js +1 -1
- package/layers/mixins/RefreshableLayer.d.ts +1 -3
- package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
- package/layers/raster/datasets/TIFFRaster.js +1 -1
- package/layers/raster/formats/tiffParser.js +1 -1
- package/layers/support/ParquetPortalItemData.d.ts +2 -0
- package/layers/support/ParquetPortalItemData.js +1 -1
- package/layers/support/PortalItemData.d.ts +21 -0
- package/layers/support/PortalItemData.js +1 -1
- package/layers/support/layersLoader.js +1 -1
- package/layers/support/parquetUtils.d.ts +1 -1
- package/layers/support/types.d.ts +1 -1
- package/package.json +2 -2
- package/popup/FeaturesModel.d.ts +1 -1
- package/popup/FeaturesModel.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/rest/print.js +1 -1
- package/views/2d/layers/features/sources/FeatureSource.js +1 -1
- package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
- package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DBufferGraphicLayer.js +2 -0
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DDrapedBufferGraphicLayer.js +2 -0
- package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayerBase.js +2 -0
- package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DStageObjectGraphicLayer.js +2 -0
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/graphics/LabelInfo.js +1 -1
- package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
- package/views/3d/layers/graphics/pointUtils.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js +2 -0
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/lastFrameUniforms.js +2 -0
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -7
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +29 -27
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +14 -14
- package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +8 -8
- package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js +2 -0
- package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js +3 -3
- package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +5 -5
- package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/affectsGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/bufferGeometryUtils.js +2 -0
- package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +5 -5
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +11 -11
- package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/lineUniforms.js +2 -0
- package/views/DOMContainer.d.ts +27 -9
- package/views/DOMContainer.js +1 -1
- package/views/PopupView.d.ts +6 -0
- package/views/VideoView.d.ts +27 -9
- package/views/View.d.ts +16 -7
- package/views/View.js +1 -1
- package/views/View2D.d.ts +1 -1
- package/views/interactive/snapping/SnappingManagerPool.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
- package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
- package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
- package/views/layers/FeatureLikeLayerView.d.ts +1 -2
- package/views/layers/ParquetLayerView.d.ts +15 -0
- package/views/layers/ParquetLayerView.js +1 -1
- package/webdoc/support/saveUtils.js +1 -1
- package/webdoc/support/unsupportedErrors.js +1 -1
- package/widgets/Legend.d.ts +1 -0
- package/widgets/support/SnappingControls.d.ts +1 -1
- package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
- package/assets/esri/core/workers/chunks/06ab24a083c3229228dd.js +0 -1
- package/assets/esri/core/workers/chunks/122111703528381539cc.js +0 -1
- package/assets/esri/core/workers/chunks/15cc2c295682f48030f9.js +0 -1
- package/assets/esri/core/workers/chunks/17b76e0d401c7e396d10.js +0 -1
- package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
- package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
- package/assets/esri/core/workers/chunks/27da9ece2afaeec39f59.js +0 -1
- package/assets/esri/core/workers/chunks/2b6c74646ff475a6e302.js +0 -1
- package/assets/esri/core/workers/chunks/340621182db9e8edbec2.js +0 -1
- package/assets/esri/core/workers/chunks/347bf269c2b1583d2dca.js +0 -1
- package/assets/esri/core/workers/chunks/384ae10053d35940de73.js +0 -1
- package/assets/esri/core/workers/chunks/451d7d456df0f4466563.js +0 -1
- package/assets/esri/core/workers/chunks/4cddd217383b9333f32e.js +0 -1
- package/assets/esri/core/workers/chunks/4fa59f8ed3b7b6239548.js +0 -1
- package/assets/esri/core/workers/chunks/5a5d80c2519aa3ea8878.js +0 -1
- package/assets/esri/core/workers/chunks/5b434e8c98e7119d4a3b.js +0 -1
- package/assets/esri/core/workers/chunks/5e4d6c283c2fa28db022.js +0 -1
- package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
- package/assets/esri/core/workers/chunks/604344e45c0f27497188.js +0 -1
- package/assets/esri/core/workers/chunks/64770e2cf41211b63fd2.js +0 -1
- package/assets/esri/core/workers/chunks/658b2642ab6880770e4e.js +0 -1
- package/assets/esri/core/workers/chunks/6ef647b7769d27529f9c.js +0 -1
- package/assets/esri/core/workers/chunks/8313c626596a76c7449d.js +0 -1
- package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
- package/assets/esri/core/workers/chunks/84e9258a57d8c365f361.js +0 -1
- package/assets/esri/core/workers/chunks/8730e7e6e0296f43f10b.js +0 -1
- package/assets/esri/core/workers/chunks/87b4e916b2668203a6b0.js +0 -1
- package/assets/esri/core/workers/chunks/8fcfd515ee1b18c902e5.js +0 -1
- package/assets/esri/core/workers/chunks/9001e9a1e81bce175ddd.js +0 -1
- package/assets/esri/core/workers/chunks/966d0832a3c1f03668a0.js +0 -1
- package/assets/esri/core/workers/chunks/97dbbedea9fe03bd1306.js +0 -1
- package/assets/esri/core/workers/chunks/9a28a66807a1e3557018.js +0 -1
- package/assets/esri/core/workers/chunks/9bf48a907f91ea004648.js +0 -1
- package/assets/esri/core/workers/chunks/9c0fd8baa00ee9733ba4.js +0 -1
- package/assets/esri/core/workers/chunks/9c7fa9d324fa0bf64d9c.js +0 -1
- package/assets/esri/core/workers/chunks/a20526996d01386ec3b7.js +0 -1
- package/assets/esri/core/workers/chunks/a7edf7541569fef77cb3.js +0 -1
- package/assets/esri/core/workers/chunks/b1008bdfca995ebf98ed.js +0 -1
- package/assets/esri/core/workers/chunks/bfd85e8d54062a590f0e.js +0 -1
- package/assets/esri/core/workers/chunks/c8ba0673d1b87216e619.js +0 -1
- package/assets/esri/core/workers/chunks/d4926545193414cf2f16.js +0 -1
- package/assets/esri/core/workers/chunks/da18d96b35af20e73b3b.js +0 -1
- package/assets/esri/core/workers/chunks/df0481bcc1613ee4b7af.js +0 -1
- package/assets/esri/core/workers/chunks/e1af43e2a8f2ef1059e3.js +0 -1
- package/assets/esri/core/workers/chunks/eaf6d587477399a83088.js +0 -1
- package/assets/esri/core/workers/chunks/ec28e18275d36e71b438.js +0 -1
- package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
- package/assets/esri/core/workers/chunks/f31b424a3667686af10c.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{evaluateSceneLightingFragment as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{LineStipple as r,computePixelSize as i}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{NormalUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{metersPerRenderUnit as l,screenPixelSizePerDistance as u,inverseProjectionMatrix as d,nearFar as f,viewport as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as h,NoPerspectiveRead as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as _
|
|
2
|
+
import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{evaluateSceneLightingFragment as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{LineStipple as r,computePixelSize as i}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{NormalUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{metersPerRenderUnit as l,screenPixelSizePerDistance as u,inverseProjectionMatrix as d,nearFar as f,viewport as p,pixelRatio as ee}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as h,NoPerspectiveRead as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as _}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as b,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as S}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as C}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{groundMetersToScreenRatio as w,planarDistanceToScreenRatio as T}from"../views/3d/webgl-engine/shaders/lineUniforms.js";import{outputColorHighlightOLID as te}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as E}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";const O=1;function k(O){let k=new D,{attributes:A,varyings:j,vertex:M,fragment:N}=k,{applyMarkerOffset:P,draped:F,shadingEnabled:I,output:L,capType:R,stippleEnabled:z,falloffEnabled:B,wireframe:V,innerColorEnabled:H,hasAnimation:U,hasScreenSizePerspective:W,worldSized:G,imagePattern:K}=O,q=R===2,J=z&&q,Y=B||J,X=z||q,Z=O.usePerspectiveCorrectStipple,Q=E(O).createBuilder(k,O);M.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),O.hasVVSize?M.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):M.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),O.hasVVOpacity&&M.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),O.hasVVColor?M.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):M.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),N.include(s),k.include(t,O),k.include(r,O),L===11?(k.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),M.code.add(b`
|
|
3
3
|
vec4 getOlidColor() {
|
|
4
4
|
return ${Q.getTextureAttribute(`olidColor`)};
|
|
5
5
|
}
|
|
@@ -7,9 +7,9 @@ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.gls
|
|
|
7
7
|
void forwardObjectAndLayerIdColor() {
|
|
8
8
|
objectAndLayerIdColorVarying = getOlidColor();
|
|
9
9
|
}
|
|
10
|
-
`),N.code.add(
|
|
10
|
+
`),N.code.add(b`void outputObjectAndLayerIdColor() {
|
|
11
11
|
fragColor = objectAndLayerIdColorVarying;
|
|
12
|
-
}`)):(M.code.add(
|
|
12
|
+
}`)):(M.code.add(b`void forwardObjectAndLayerIdColor() {}`),N.code.add(b`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;return $&&k.include(a,O),_(M,O),F&&(G||z)&&M.uniforms.add(G?w:T),G&&!F&&M.uniforms.add(l,u),M.uniforms.add(d,f,p,new y(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),z||(j.add(`vIsInsideJoin`,`int`),j.add(`vStretchFactor`,`float`),j.add(`vJoinCenterLineSDFs`,`vec2`),j.add(`vSubdivisionFactor`,`float`)),z&&j.add(`vLineSizeInv`,`float`),Y&&j.add(`vLineDistanceNorm`,`float`),q&&(j.add(`vSegmentSDF`,`float`),j.add(`vReverseSegmentSDF`,`float`)),M.code.add(b`vec3 perpendicular(vec3 v) {
|
|
13
13
|
return vec3(v.y, -v.x, 0.0);
|
|
14
14
|
}
|
|
15
15
|
float nearPlaneInterpolationFactor(float nearPlaneDistance, vec4 start, vec4 end) {
|
|
@@ -20,17 +20,17 @@ float s = sin(a);
|
|
|
20
20
|
float c = cos(a);
|
|
21
21
|
mat2 m = mat2(c, -s, s, c);
|
|
22
22
|
return vec3(m * v.xy, v.z);
|
|
23
|
-
}`),M.code.add(
|
|
23
|
+
}`),M.code.add(b`vec4 projectAndScale(vec4 pos) {
|
|
24
24
|
vec4 posNdc = proj * pos;
|
|
25
25
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
26
26
|
posNdc.z /= posNdc.w;
|
|
27
27
|
return posNdc;
|
|
28
|
-
}`),M.code.add(
|
|
28
|
+
}`),M.code.add(b`
|
|
29
29
|
void clip(
|
|
30
30
|
inout vec4 pos,
|
|
31
31
|
inout vec4 prev,
|
|
32
32
|
inout vec4 next,
|
|
33
|
-
${
|
|
33
|
+
${x(Z,b`inout float u0, inout float prevU0, inout float nextU0,`)}
|
|
34
34
|
bool isStartVertex
|
|
35
35
|
) {
|
|
36
36
|
float adjustedNearPlaneDistance = nearFar[0] * 0.99;
|
|
@@ -41,7 +41,7 @@ return posNdc;
|
|
|
41
41
|
if (prev.z < -nearFar[0]) {
|
|
42
42
|
// Previous position in front of near plane
|
|
43
43
|
float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, prev, pos);
|
|
44
|
-
${
|
|
44
|
+
${x(Z,b`u0 = mix(prevU0, u0, clipFactor); nextU0 = u0;`)}
|
|
45
45
|
pos = mix(prev, pos, clipFactor);
|
|
46
46
|
next = pos;
|
|
47
47
|
} else {
|
|
@@ -51,7 +51,7 @@ return posNdc;
|
|
|
51
51
|
if (next.z < -nearFar[0]) {
|
|
52
52
|
// Next position in front of near plane
|
|
53
53
|
float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, pos, next);
|
|
54
|
-
${
|
|
54
|
+
${x(Z,b`u0 = mix(u0, nextU0, clipFactor); prevU0 = u0;`)}
|
|
55
55
|
pos = mix(pos, next, clipFactor);
|
|
56
56
|
prev = pos;
|
|
57
57
|
} else {
|
|
@@ -63,25 +63,25 @@ return posNdc;
|
|
|
63
63
|
if (prev.z > -nearFar[0]) {
|
|
64
64
|
// Previous position behind near plane
|
|
65
65
|
float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, pos, prev);
|
|
66
|
-
${
|
|
66
|
+
${x(Z,b`prevU0 = mix(u0, prevU0, clipFactor);`)}
|
|
67
67
|
prev = mix(pos, prev, clipFactor);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
if (next.z > -nearFar[0]) {
|
|
71
71
|
// Next position behind near plane
|
|
72
72
|
float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, next, pos);
|
|
73
|
-
${
|
|
73
|
+
${x(Z,b`nextU0 = mix(nextU0, u0, clipFactor);`)}
|
|
74
74
|
next = mix(next, pos, clipFactor);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
`),
|
|
78
|
+
`),M.uniforms.add(ee).constants.add(`aaWidth`,`float`,+!z).main.add(b`
|
|
79
79
|
vec3 position = ${Q.getTextureAttribute(`position`)};
|
|
80
80
|
float u0 = ${Q.getTextureAttribute(`u0`)};
|
|
81
|
-
${
|
|
81
|
+
${x(G,b`
|
|
82
82
|
float prevU0 = ${Q.getTextureAttribute(`u0`,-1)};
|
|
83
83
|
float nextU0 = ${Q.getTextureAttribute(`u0`,1)};
|
|
84
|
-
${
|
|
84
|
+
${x(!F,b`
|
|
85
85
|
u0 *= metersPerRenderUnit;
|
|
86
86
|
prevU0 *= metersPerRenderUnit;
|
|
87
87
|
nextU0 *= metersPerRenderUnit;
|
|
@@ -108,11 +108,11 @@ return posNdc;
|
|
|
108
108
|
vec4 next = view * vec4(nextPosition, 1.0);
|
|
109
109
|
|
|
110
110
|
bool isJoin = vertexType < 3.0;
|
|
111
|
-
`),$&&M.main.add(
|
|
111
|
+
`),$&&M.main.add(b`vec4 other = isStartVertex ? next : prev;
|
|
112
112
|
bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
|
|
113
113
|
if (!isJoin && !markersHidden) {
|
|
114
114
|
pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
115
|
-
}`),k.include(h),M.code.add(
|
|
115
|
+
}`),k.include(h),M.code.add(b`
|
|
116
116
|
vec2 computeJoinAndCapDisplacement(
|
|
117
117
|
bool isJoin,
|
|
118
118
|
bool isStartVertex,
|
|
@@ -157,7 +157,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
${
|
|
160
|
+
${x(!z,b`
|
|
161
161
|
// Compute stretch compensation for feathering.
|
|
162
162
|
if (subdivisionFactor > 0.0) {
|
|
163
163
|
vIsInsideJoin = 1;
|
|
@@ -192,14 +192,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
192
192
|
`)}
|
|
193
193
|
|
|
194
194
|
if (isOutside && displacementLen > miterLimit * lineWidth) {
|
|
195
|
-
${
|
|
195
|
+
${x(O.roundJoins,b`
|
|
196
196
|
vec3 startDir = perpendicular(leftLen < EPS ? right : left);
|
|
197
197
|
vec3 endDir = perpendicular(rightLen < EPS ? left : right);
|
|
198
|
-
float factor = ${z?
|
|
198
|
+
float factor = ${z?b`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:b`subdivisionFactor`};
|
|
199
199
|
|
|
200
200
|
float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
|
|
201
201
|
joinDisplacementDir = rotateZ(startDir, -lineSide * factor * rotationAngle);
|
|
202
|
-
`,
|
|
202
|
+
`,b`
|
|
203
203
|
/**
|
|
204
204
|
* Convert to bevel join if miterLimit is exceeded.
|
|
205
205
|
* Here vertices with a subdivisionFactor > 0 are either START vertices or
|
|
@@ -211,19 +211,19 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
211
211
|
vec3 startDir = perpendicular(leftLen < EPS ? right : left);
|
|
212
212
|
vec3 endDir = perpendicular(rightLen < EPS ? left : right);
|
|
213
213
|
|
|
214
|
-
${
|
|
214
|
+
${x(z,b`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,b`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
|
|
215
215
|
`)}
|
|
216
216
|
displacementLen = lineWidth;
|
|
217
217
|
}
|
|
218
218
|
} else {
|
|
219
219
|
joinDisplacementDir = perpendicular(isStartVertex ? right : left);
|
|
220
|
-
${R===0?``:
|
|
220
|
+
${R===0?``:b`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
|
|
224
224
|
}
|
|
225
|
-
`),M.main.add(
|
|
226
|
-
clip(pos, prev, next, ${
|
|
225
|
+
`),M.main.add(b`
|
|
226
|
+
clip(pos, prev, next, ${x(Z,b`u0, prevU0, nextU0,`)} isStartVertex);
|
|
227
227
|
|
|
228
228
|
vec3 clippedPos = pos.xyz;
|
|
229
229
|
vec3 clippedCenter = mix(pos.xyz, isStartVertex ? next.xyz : prev.xyz, 0.5);
|
|
@@ -235,12 +235,12 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
235
235
|
vec3 left = (pos.xyz - prev.xyz);
|
|
236
236
|
vec3 right = (next.xyz - pos.xyz);
|
|
237
237
|
|
|
238
|
-
float lineSize = getSize(${
|
|
239
|
-
${
|
|
240
|
-
${
|
|
238
|
+
float lineSize = getSize(${x(W,`clippedPos`)});
|
|
239
|
+
${x(z&&W,`float patternLineSize = getSize(clippedCenter);`)}
|
|
240
|
+
${x(z&&!W,`float patternLineSize = lineSize;`)}
|
|
241
241
|
|
|
242
|
-
${
|
|
243
|
-
${
|
|
242
|
+
${x(G,b`
|
|
243
|
+
${x(F,b`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,b`
|
|
244
244
|
float metersPerScreenPixel = max(-clippedPos.z, nearFar[0]) * metersPerRenderUnit * screenPixelSizePerDistance;
|
|
245
245
|
float lineSizeScreen = lineSize / metersPerScreenPixel;
|
|
246
246
|
`)}
|
|
@@ -251,7 +251,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
251
251
|
|
|
252
252
|
lineSizeScreen += aaWidth;
|
|
253
253
|
float lineWidth = lineSizeScreen * pixelRatio;
|
|
254
|
-
`,
|
|
254
|
+
`,b`
|
|
255
255
|
if (lineSize < 1.0) {
|
|
256
256
|
coverage = lineSize; // convert sub-pixel coverage to alpha
|
|
257
257
|
lineSize = 1.0;
|
|
@@ -262,14 +262,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
262
262
|
`)}
|
|
263
263
|
|
|
264
264
|
vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
|
|
265
|
-
${z?
|
|
266
|
-
`),X&&M.main.add(
|
|
265
|
+
${z?b`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:``}
|
|
266
|
+
`),X&&M.main.add(b`
|
|
267
267
|
float isEndVertex = float(!isStartVertex);
|
|
268
268
|
vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
|
|
269
269
|
vec3 segment = mix(right, left, isEndVertex);
|
|
270
|
-
${q?
|
|
271
|
-
`),M.main.add(
|
|
272
|
-
${
|
|
270
|
+
${q?b`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
|
|
271
|
+
`),M.main.add(b`
|
|
272
|
+
${x(!z,b`
|
|
273
273
|
vIsInsideJoin = 0;
|
|
274
274
|
vStretchFactor = 1.0;
|
|
275
275
|
vSubdivisionFactor = 0.0;
|
|
@@ -300,10 +300,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
300
300
|
float lineDistNorm = noPerspectiveWrite(lineSide, pos.w);
|
|
301
301
|
|
|
302
302
|
vLineDistance = lineWidth * lineDistNorm;
|
|
303
|
-
${Y?
|
|
303
|
+
${Y?b`vLineDistanceNorm = lineDistNorm;`:``}
|
|
304
304
|
|
|
305
305
|
pos.xyz += displacement;
|
|
306
|
-
`),z||M.main.add(
|
|
306
|
+
`),z||M.main.add(b`if (isJoin) {
|
|
307
307
|
vec2 joinCenterToVertex = displacementXY;
|
|
308
308
|
vec2 leftCenterlineDir = left.xy;
|
|
309
309
|
vec2 rightCenterlineDir = right.xy;
|
|
@@ -318,36 +318,36 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
|
|
|
318
318
|
),
|
|
319
319
|
pos.w
|
|
320
320
|
);
|
|
321
|
-
}`),q&&M.main.add(
|
|
321
|
+
}`),q&&M.main.add(b`vec2 segmentDir = normalize(segment.xy);
|
|
322
322
|
vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
|
|
323
|
-
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(F?M.main.add(
|
|
324
|
-
float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),M.main.add(
|
|
323
|
+
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(F?M.main.add(`float stippleDistanceToScreenRatio = ${G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):M.main.add(b`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
|
|
324
|
+
float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),M.main.add(b`
|
|
325
325
|
float segmentLengthScreenDouble = length(segment.xy);
|
|
326
326
|
float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
|
|
327
327
|
float discreteStippleDistanceToScreenRatio = discretizeStippleDistanceToScreenRatio(stippleDistanceToScreenRatio);
|
|
328
|
-
float segmentLengthRender = ${
|
|
328
|
+
float segmentLengthRender = ${x(G,b`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,b`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
|
|
329
329
|
|
|
330
|
-
${
|
|
331
|
-
float segmentStartRender = ${
|
|
330
|
+
${x(!F||G,b`
|
|
331
|
+
float segmentStartRender = ${x(G,b`mix(u0, prevU0, isEndVertex)`,b`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
|
|
332
332
|
`)}
|
|
333
333
|
|
|
334
334
|
vStipplePatternStretch = stippleDistanceToScreenRatio / discreteStippleDistanceToScreenRatio;
|
|
335
|
-
`),F?M.main.add(
|
|
336
|
-
float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):M.main.add(
|
|
337
|
-
float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),M.uniforms.add(new
|
|
335
|
+
`),F?M.main.add(b`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
|
|
336
|
+
float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):M.main.add(b`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
|
|
337
|
+
float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),M.uniforms.add(new y(`stipplePatternPixelSize`,e=>i(e))),M.main.add(b`
|
|
338
338
|
float patternLength = patternLineSize * stipplePatternPixelSize;
|
|
339
339
|
vec2 stippleDistanceLimits;
|
|
340
340
|
|
|
341
|
-
${
|
|
341
|
+
${x(G,b`
|
|
342
342
|
stippleDistanceLimits = vec2(segmentStartRender, segmentStartRender + segmentLengthRender);
|
|
343
343
|
vStipplePatternStretch = 1.0;
|
|
344
344
|
|
|
345
|
-
${
|
|
345
|
+
${x(K,b`
|
|
346
346
|
// The v-coordinate used in case of an image pattern.
|
|
347
347
|
bool isLeft = lineSide < 0.0;
|
|
348
348
|
vStippleV = isLeft ? 0.0 : 1.0;
|
|
349
349
|
`)}
|
|
350
|
-
`,
|
|
350
|
+
`,b`
|
|
351
351
|
// Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
|
|
352
352
|
// fragment shader
|
|
353
353
|
stippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
|
|
@@ -367,7 +367,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
|
|
|
367
367
|
vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (stippleDistanceLimits.y - stippleDistanceLimits.x);
|
|
368
368
|
}
|
|
369
369
|
|
|
370
|
-
${
|
|
370
|
+
${x(Z,b`
|
|
371
371
|
float segmentStartInverseW = 1.0 / mix(pos.w, prev.w, isEndVertex);
|
|
372
372
|
float segmentEndInverseW = 1.0 / mix(next.w, pos.w, isEndVertex);
|
|
373
373
|
vStipplePerspective = noPerspectiveWrite(
|
|
@@ -383,7 +383,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
|
|
|
383
383
|
// Disable stipple distance limits on caps
|
|
384
384
|
vStippleLimitsAndCaps.zw = isJoin ? vec2(0.0) :
|
|
385
385
|
isStartVertex ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
|
|
386
|
-
`)),M.main.add(
|
|
386
|
+
`)),M.main.add(b`
|
|
387
387
|
// Convert back into NDC
|
|
388
388
|
pos.xy = (pos.xy / viewport.zw) * pos.w;
|
|
389
389
|
pos.z = pos.z * pos.w;
|
|
@@ -397,7 +397,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
|
|
|
397
397
|
vpos = (inverseProjectionMatrix * pos).xyz;
|
|
398
398
|
gl_Position = pos;
|
|
399
399
|
forwardObjectAndLayerIdColor();
|
|
400
|
-
}`),k.include(
|
|
400
|
+
}`),k.include(te,O),k.include(g),N.include(m),N.include(S),N.include(e,O),N.main.add(`discardBySlice(vpos);`),z||N.code.add(b`float lineFeatheringFactor(float lineWidth, float lineDistance) {
|
|
401
401
|
float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
|
|
402
402
|
float featherWidth = 2.0;
|
|
403
403
|
float featherStartDistance = max(lineWidth - featherWidth / stretchFactor, 0.0);
|
|
@@ -409,29 +409,29 @@ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joi
|
|
|
409
409
|
float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
|
|
410
410
|
feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
|
|
411
411
|
return 1.0 - clamp(feather, 0.0, 1.0);
|
|
412
|
-
}`),N.main.add(
|
|
412
|
+
}`),N.main.add(b`
|
|
413
413
|
float lineWidth = noPerspectiveRead(vLineWidth);
|
|
414
414
|
float lineDistance = noPerspectiveRead(vLineDistance);
|
|
415
|
-
${
|
|
416
|
-
`),V?N.main.add(
|
|
417
|
-
vec4 finalColor = albedo;`):(q&&N.main.add(
|
|
415
|
+
${x(Y,b`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
|
|
416
|
+
`),V?N.main.add(b`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
|
|
417
|
+
vec4 finalColor = albedo;`):(q&&N.main.add(b`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
|
|
418
418
|
vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
|
|
419
419
|
float fragmentRadius = length(fragmentPosition);
|
|
420
420
|
float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
|
|
421
421
|
float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
|
|
422
422
|
if (capCoverage < alphaCutoff) {
|
|
423
423
|
discard;
|
|
424
|
-
}`),J?N.main.add(
|
|
424
|
+
}`),J?N.main.add(b`
|
|
425
425
|
vec2 stipplePosition = vec2(
|
|
426
426
|
min(getStippleCapDistance(), 0.0),
|
|
427
|
-
${Z?
|
|
427
|
+
${Z?b`lineDistance / lineWidth`:b`lineDistanceNorm`}
|
|
428
428
|
);
|
|
429
429
|
float stippleRadius = length(stipplePosition * lineWidth);
|
|
430
430
|
float stippleCapSDF = (stippleRadius - lineWidth) * 0.5; // Divide by 2 to transform from double pixel scale
|
|
431
431
|
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
432
432
|
float stippleAlpha = step(alphaCutoff, stippleCoverage);
|
|
433
|
-
`):N.main.add(
|
|
434
|
-
color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new
|
|
433
|
+
`):N.main.add(b`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&N.main.add(b`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),N.uniforms.add(new v(`intrinsicColor`,e=>e.color)).main.add(b`vec4 color = intrinsicColor * vColor;
|
|
434
|
+
color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new v(`innerColor`,e=>e.innerColor??e.color),new y(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(b`float distToInner = abs(lineDistance) - innerWidth;
|
|
435
435
|
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
436
436
|
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
437
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new
|
|
437
|
+
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new y(`falloff`,e=>e.falloff)),N.main.add(b`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),z||N.main.add(b`albedo.a *= lineFeatheringFactor(lineWidth, lineDistance);`),U&&(M.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),k.include(C,O),N.main.add(`albedo.a *= animatedAlpha();`)),I?(j.add(`vnormal`,`vec3`),M.include(o,O),M.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),k.include(n,O),N.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):N.main.add(`vec4 finalColor = albedo;`)),N.main.add(b`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const A=Object.freeze(Object.defineProperty({__proto__:null,build:k,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{A as R,k as b,O as n};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{depthMap as e}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{readShadowMaps as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";const o=255;function s(o){let s=new a,{fragment:c}=s;s.include(t),s.include(n),c.include(r,!1),c.constants.add(`sampleValue`,`float`,.00392156862745098);let l=o.index===1?`vec2`:`float`;return s.outputs.add(`sampleCount`,l),c.uniforms.add(e).main.add(i`
|
|
3
3
|
sampleCount = ${l}(0.0);
|
|
4
4
|
|
|
5
5
|
vec3 uvzShadow = calculateUVZShadowFromDepth(uv, textureSize(shadowMap,0), depthMap);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{
|
|
2
|
+
import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{shadowHighlight as r,mainDepth as i}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{NormalFromDepth as a}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{blendEmission as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/blendEmission.glsl.js";import{Float3BindUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as u}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}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DShadowBindUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";function g(n){let g=new h;g.include(s),g.include(o),g.include(a);let{fragment:v,outputs:y}=g;return y.add(`fragColor`,`vec4`,0),v.uniforms.add(new p(`shadowMapExcludingHighlight`,({shadowMap:e})=>e.getOutput(7)),r,i,new m(`highlightTexture`,e=>e.highlightTexture),new u(`uColor`,e=>e.shadowColor),new d(`opacity`,e=>e.shadowOpacity),new d(`occludedOpacity`,e=>e.occludedShadowOpacity),new d(`terminationFactor`,e=>e.opacityElevation*e.dayNightTerminator),new l(`lightingMainDirectionView`,({lighting:n,camera:r})=>e(_,t(_,n.mainLight.direction,r.viewInverseTransposeMatrix)))),v.main.add(f`
|
|
3
3
|
ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
|
|
4
4
|
ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
|
|
5
5
|
uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
|
|
@@ -25,7 +25,7 @@ import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3
|
|
|
25
25
|
vec3 uvzShadow = calculateUVZShadowAndPixelPosFromDepth(
|
|
26
26
|
uv,
|
|
27
27
|
textureSize(shadowMapExcludingHighlight, 0),
|
|
28
|
-
|
|
28
|
+
mainDepth,
|
|
29
29
|
currentPixelPos
|
|
30
30
|
);
|
|
31
31
|
if (uvzShadow.z < 0.0) {
|
|
@@ -34,10 +34,10 @@ import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3
|
|
|
34
34
|
|
|
35
35
|
float shadowExcludingHighlightFactor = texture(shadowMapExcludingHighlight, uvzShadow);
|
|
36
36
|
|
|
37
|
-
vec3 normal = normalFromDepth(
|
|
38
|
-
bool shaded = dot(normal, lightingMainDirectionView) < ${
|
|
37
|
+
vec3 normal = normalFromDepth(mainDepth, currentPixelPos.xyz, gl_FragCoord.xy, uv);
|
|
38
|
+
bool shaded = dot(normal, lightingMainDirectionView) < ${f.float(.025)};
|
|
39
39
|
|
|
40
40
|
float occludedFactor = max(shadowExcludingHighlightFactor, shaded ? 1.0 : 0.0);
|
|
41
41
|
float fragOpacity = mix(opacity, occludedOpacity, occludedFactor);
|
|
42
42
|
fragColor = vec4(uColor.rgb, uColor.a * fragOpacity * terminationFactor);
|
|
43
|
-
`),
|
|
43
|
+
`),g.include(c,n),g}const _=n(),v=Object.freeze(Object.defineProperty({__proto__:null,build:g},Symbol.toStringTag,{value:`Module`}));export{v as S,g as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{depthMap as e}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DShadowBindUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";function o(){let o=new a;return o.include(t),o.include(n),o.outputs.add(`fragShadow`,`float`),o.fragment.uniforms.add(new i(`shadowMapHighlight`,({shadowMap:e})=>e.getOutput(6)),e).main.add(r`fragShadow = 0.0;
|
|
3
3
|
vec3 uvzShadow = calculateUVZShadowFromDepth(uv, textureSize(shadowMapHighlight, 0), depthMap);
|
|
4
4
|
if (uvzShadow.z >= 0.0) {
|
|
5
5
|
fragShadow = texture(shadowMapHighlight, uvzShadow);
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as t}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Transform as n}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/
|
|
2
|
+
import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as t}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Transform as n}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{cameraPosition as i,projMatrix as a,viewMatrix as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{Float2PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as f}from"../views/webgl/NoParameters.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";class m extends f{constructor(){super(...arguments),this.texV=e(),this.altitudeFade=0,this.innerScale=0,this.undergroundFadeAlpha=0,this.silhouette=new h}}class h{constructor(){this.center=t(),this.v1=t(),this.v2=t()}}function g(e){let t=new p,{vertex:f,fragment:m}=t;if(f.uniforms.add(r),e.geometry===2)t.attributes.add(`position`,`vec2`),t.varyings.add(`color`,`vec4`),f.uniforms.add(i,new l(`undergroundFadeAlpha`,e=>e.undergroundFadeAlpha)),f.main.add(u`float ndotl = dot(normalize(cameraPosition), mainLightDirection);
|
|
3
3
|
float lighting = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));
|
|
4
4
|
color = vec4(vec3(lighting), undergroundFadeAlpha);
|
|
5
|
-
gl_Position = vec4(position.xy, 1.0, 1.0);`),m.main.add(u`fragColor = color;`);else{t.include(n),t.attributes.add(`position`,`vec3`),t.varyings.add(`vtc`,`vec2`),t.varyings.add(`falloff`,`float`);let r=e.geometry===1;f.uniforms.add(
|
|
5
|
+
gl_Position = vec4(position.xy, 1.0, 1.0);`),m.main.add(u`fragColor = color;`);else{t.include(n),t.attributes.add(`position`,`vec3`),t.varyings.add(`vtc`,`vec2`),t.varyings.add(`falloff`,`float`);let r=e.geometry===1;f.uniforms.add(a,o),r||(t.varyings.add(`innerFactor`,`float`),f.uniforms.add(new c(`silCircleCenter`,e=>e.silhouette.center),new c(`silCircleV1`,e=>e.silhouette.v1),new c(`silCircleV2`,e=>e.silhouette.v2),new s(`texV`,e=>e.texV),new l(`innerScale`,e=>e.innerScale)));let i=1/128;f.main.add(u`
|
|
6
6
|
${r?u`
|
|
7
7
|
vec3 pos = position;
|
|
8
8
|
float ndotl = mainLightDirection.z;
|
|
9
9
|
vtc = vec2(0.0, position.z + 0.05);`:u`
|
|
10
10
|
innerFactor = clamp(-position.z, 0.0, 1.0);
|
|
11
11
|
float scale = position.y * (1.0 + innerFactor * innerScale);
|
|
12
|
-
float phi = position.x * ${u.float(6.2831853*
|
|
12
|
+
float phi = position.x * ${u.float(6.2831853*i)} + 1.0;
|
|
13
13
|
vec3 pos = (silCircleCenter + sin(phi) * silCircleV1 + cos(phi) * silCircleV2) * scale;
|
|
14
14
|
float ndotl = dot(normalize(position.y > 0.0 ? pos: silCircleCenter), mainLightDirection);
|
|
15
|
-
vtc.x = position.x * ${u.float(
|
|
15
|
+
vtc.x = position.x * ${u.float(i)};
|
|
16
16
|
vtc.y = texV.x * (1.0 - position.z) + texV.y * position.z;
|
|
17
17
|
`}
|
|
18
18
|
falloff = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));
|
package/chunks/Terrain.glsl.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{
|
|
2
|
+
import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{waterNormals as a}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{addLinearDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as s}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as c}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as g,addAmbientBoostFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{lightingGlobalFactor as v,mainLightDirection as y,mainLightIntensity as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{NormalUtils as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowDraw as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as C}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as w,TerrainTexture as T}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as E,nearFar as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as O,addCameraPosition as k}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as j,If as M}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends w{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:w,vertex:L,fragment:R,varyings:V}=i;w.add(`position`,`vec3`),i.include(l,t),i.include(u,t);function H(){L.include(x,t),L.code.add(j`vec3 getNormal() {
|
|
3
3
|
float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
|
|
4
4
|
vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
|
|
5
5
|
normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
|
|
6
6
|
return normalize(n);
|
|
7
|
-
}`)}
|
|
7
|
+
}`)}O(L,t),i.include(c),R.include(P);let{output:U,overlayMode:W,tileBorders:G,transparencyMode:K,overlayEnabled:q,renderOccluded:J}=t,Y=K===2||K===3,X=q&&Y;switch(U){case 0:case 1:case 2:{i.include(T,t),R.include(g,t),q&&i.include(C,t);let o=W===2;o&&i.include(d,t),V.add(`vnormal`,`vec3`),V.add(`vpos`,`vec3`,{invariant:!0}),V.add(`upNormal`,`vec3`),H(),L.main.add(j`
|
|
8
8
|
vpos = position;
|
|
9
9
|
vec3 positionWorld = position + localOrigin;
|
|
10
10
|
gl_Position = transformPosition(proj, view, vpos);
|
|
11
11
|
vnormal = getNormal();
|
|
12
12
|
upNormal = getLocalUp(position, localOrigin);
|
|
13
|
-
${
|
|
13
|
+
${M(o,j`forwardVertexTangent(vnormal);`)}
|
|
14
14
|
|
|
15
15
|
forwardTextureCoordinatesWithTransform(uv0);
|
|
16
|
-
${
|
|
17
|
-
${
|
|
16
|
+
${M(q,`setOverlayVTC(uv0);`)}
|
|
17
|
+
${M(G,`forwardTextureCoordinates();`)}
|
|
18
18
|
forwardLinearDepthToReadShadow();
|
|
19
|
-
`)
|
|
19
|
+
`);let c=U===0&&!J?``:`discard`;i.include(S,t),R.include(s,t),R.include(g,t),R.include(h,t),i.include(F,t),k(R,t),_(R),R.uniforms.add(v),R.uniforms.add(L.uniforms.get(`localOrigin`),new A(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),o&&R.uniforms.add(a,new N(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(y,b).main.add(j`
|
|
20
20
|
vec3 normal = normalize(vnormal);
|
|
21
21
|
float lightAlignment = dot(normal, mainLightDirection);
|
|
22
22
|
|
|
@@ -25,13 +25,13 @@ return normalize(n);
|
|
|
25
25
|
float ssao = evaluateAmbientOcclusionInverse();
|
|
26
26
|
vec4 tileColor = getTileColor();
|
|
27
27
|
|
|
28
|
-
${
|
|
28
|
+
${M(q,j`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
|
|
29
29
|
vec4 overlayColor = overlayOpacity * overlayColorOpaque;
|
|
30
|
-
${
|
|
30
|
+
${M(Y,`if (overlayColor.a < alphaCutoff) ${c};`)}
|
|
31
31
|
vec4 groundColor = tileColor;
|
|
32
32
|
tileColor = blendColorsPremultiplied(overlayColor, tileColor);`)}
|
|
33
33
|
|
|
34
|
-
if(tileColor.a < alphaCutoff) ${
|
|
34
|
+
if(tileColor.a < alphaCutoff) ${c};
|
|
35
35
|
|
|
36
36
|
bool sliced = rejectBySlice(vpos);
|
|
37
37
|
if (sliced) {
|
|
@@ -44,39 +44,36 @@ return normalize(n);
|
|
|
44
44
|
// heuristic shading function used in the old terrain, now used to add ambient lighting
|
|
45
45
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
46
46
|
vec4 finalColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, upNormal), tileColor.a);
|
|
47
|
-
${
|
|
47
|
+
${M(o,j`vec4 overlayWaterMask = getOverlayColor(waterNormals, vtcOverlay);
|
|
48
48
|
float waterNormalLength = length(overlayWaterMask);
|
|
49
49
|
if (waterNormalLength > 0.95) {
|
|
50
|
-
mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent,
|
|
50
|
+
mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, normal);
|
|
51
51
|
vec4 waterOverlayColor = vec4(overlayColor.w > 0.0 ? overlayColorOpaque.xyz/overlayColor.w : vec3(1.0), overlayColor.w);
|
|
52
52
|
vec4 viewPosition = view * vec4(vpos, 1.0);
|
|
53
|
-
vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, waterOverlayColor, -normalize(vpos - cameraPosition), shadow,
|
|
53
|
+
vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, waterOverlayColor, -normalize(vpos - cameraPosition), shadow, normal, tbnMatrix, viewPosition.xyz, vpos + localOrigin);
|
|
54
54
|
vec4 waterColorNonLinear = delinearizeGamma(vec4(waterColorLinear.xyz, 1.0));
|
|
55
55
|
float opacity = sliced ? groundSliceOpacity : 1.0;
|
|
56
56
|
// un-gamma the ground color to mix in linear space
|
|
57
57
|
finalColor = mix(groundColor, waterColorNonLinear, waterColorLinear.w) * opacity;
|
|
58
58
|
}`)}
|
|
59
|
-
${
|
|
59
|
+
${M(G,j`vec2 dVuv = fwidth(vuv0);
|
|
60
60
|
vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
|
|
61
61
|
float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
|
|
62
62
|
finalColor = mix(finalColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
|
|
63
|
-
outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:X&&i.include(
|
|
64
|
-
${
|
|
65
|
-
gl_Position = transformPosition(proj, view, position);`),R.main.add(`${
|
|
66
|
-
${
|
|
63
|
+
outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:X&&i.include(C,t),L.main.add(j`
|
|
64
|
+
${M(X,`setOverlayVTC(uv0);`)}
|
|
65
|
+
gl_Position = transformPosition(proj, view, position);`),R.main.add(`${M(X,`if (getCombinedOverlayColor().a < alphaCutoff) discard;`)}`);break;case 5:case 6:case 7:case 8:i.include(f,t),R.main.add(`outputDepth(linearDepth);`);case 9:o(i),L.uniforms.add(D).main.add(`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),R.main.add(``);break;case 4:X&&i.include(C,t),V.add(`vnormal`,`vec3`),L.uniforms.add(E),H(),L.main.add(j`
|
|
66
|
+
${M(X,`setOverlayVTC(uv0);`)}
|
|
67
67
|
gl_Position = transformPosition(proj, view, position);
|
|
68
|
-
vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
${j(q,`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,`calculateOcclusionAndOutputHighlight();`)}
|
|
81
|
-
`);break;case 11:if(q)i.include(S,t),L.main.add(A`gl_Position = transformPosition(proj, view, position);
|
|
82
|
-
setOverlayVTC(uv0);`),R.main.add(A`fragColor = getOverlayColorTexel();`);else{let e=K===0;L.main.add(A`${j(e,`gl_Position = transformPosition(proj, view, position);`)}`),R.main.add(A`fragColor = vec4(0.0);`)}}return i}const z=t(),B=i(),V=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:L,build:R},Symbol.toStringTag,{value:`Module`}));export{L as T,V as a,R as b};
|
|
68
|
+
vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);
|
|
69
|
+
`),R.main.add(`float opacity = 1.0;`),X&&R.main.add(j`opacity = getCombinedOverlayColor().a;
|
|
70
|
+
if (opacity < alphaCutoff) discard;`),R.main.add(j`vec3 normal = normalize(vnormal);
|
|
71
|
+
if (gl_FrontFacing == false) {
|
|
72
|
+
normal = -normal;
|
|
73
|
+
}
|
|
74
|
+
fragColor = vec4(vec3(0.5) + 0.5 * normal, opacity);`);break;case 10:q&&(i.include(C,t),i.include(m,t)),L.main.add(j`
|
|
75
|
+
${M(q,`setOverlayVTC(uv0);`)}
|
|
76
|
+
gl_Position = transformPosition(proj, view, position);`),i.include(p,t),R.main.add(j`
|
|
77
|
+
${M(q,`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,`calculateOcclusionAndOutputHighlight();`)}
|
|
78
|
+
`);break;case 11:if(q)i.include(C,t),L.main.add(j`gl_Position = transformPosition(proj, view, position);
|
|
79
|
+
setOverlayVTC(uv0);`),R.main.add(j`fragColor = getOverlayColorTexel();`);else{let e=K===0;L.main.add(j`${M(e,`gl_Position = transformPosition(proj, view, position);`)}`),R.main.add(j`fragColor = vec4(0.0);`)}}return i}const z=t(),B=i(),V=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:L,build:R},Symbol.toStringTag,{value:`Module`}));export{L as T,V as a,R as b};
|