@arcgis/core 5.2.0-next.111 → 5.2.0-next.112
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/assets/components/assets/icon/alignBottom16.json +1 -0
- package/assets/components/assets/icon/alignBottom24.json +1 -0
- package/assets/components/assets/icon/alignBottom32.json +1 -0
- package/assets/components/assets/icon/alignCenterHorizontal16.json +1 -0
- package/assets/components/assets/icon/alignCenterHorizontal24.json +1 -0
- package/assets/components/assets/icon/alignCenterHorizontal32.json +1 -0
- package/assets/components/assets/icon/alignCenterVertical16.json +1 -0
- package/assets/components/assets/icon/alignCenterVertical24.json +1 -0
- package/assets/components/assets/icon/alignCenterVertical32.json +1 -0
- package/assets/components/assets/icon/alignLeft16.json +1 -0
- package/assets/components/assets/icon/alignLeft24.json +1 -0
- package/assets/components/assets/icon/alignLeft32.json +1 -0
- package/assets/components/assets/icon/alignRight16.json +1 -0
- package/assets/components/assets/icon/alignRight24.json +1 -0
- package/assets/components/assets/icon/alignRight32.json +1 -0
- package/assets/components/assets/icon/alignTop16.json +1 -0
- package/assets/components/assets/icon/alignTop24.json +1 -0
- package/assets/components/assets/icon/alignTop32.json +1 -0
- package/assets/components/assets/icon/columnGroup16.json +1 -0
- package/assets/components/assets/icon/columnGroup24.json +1 -0
- package/assets/components/assets/icon/columnGroup32.json +1 -0
- package/assets/components/assets/icon/columnRemove16.json +1 -0
- package/assets/components/assets/icon/columnRemove24.json +1 -0
- package/assets/components/assets/icon/columnRemove32.json +1 -0
- package/assets/components/assets/icon/columnUngroup16.json +1 -0
- package/assets/components/assets/icon/columnUngroup24.json +1 -0
- package/assets/components/assets/icon/columnUngroup32.json +1 -0
- package/assets/components/assets/icon/envelopeOpen16.json +1 -0
- package/assets/components/assets/icon/envelopeOpen24.json +1 -0
- package/assets/components/assets/icon/envelopeOpen32.json +1 -0
- package/assets/components/assets/icon/handDraw16.json +1 -0
- package/assets/components/assets/icon/handDraw24.json +1 -0
- package/assets/components/assets/icon/handDraw32.json +1 -0
- package/assets/components/assets/icon/monitorShare16.json +1 -0
- package/assets/components/assets/icon/monitorShare24.json +1 -0
- package/assets/components/assets/icon/monitorShare32.json +1 -0
- package/assets/components/assets/icon/pi16.json +1 -0
- package/assets/components/assets/icon/pi24.json +1 -0
- package/assets/components/assets/icon/pi32.json +1 -0
- package/assets/components/assets/icon/rowGroup16.json +1 -0
- package/assets/components/assets/icon/rowGroup24.json +1 -0
- package/assets/components/assets/icon/rowGroup32.json +1 -0
- package/assets/components/assets/icon/rowRemove16.json +1 -0
- package/assets/components/assets/icon/rowRemove24.json +1 -0
- package/assets/components/assets/icon/rowRemove32.json +1 -0
- package/assets/components/assets/icon/rowUngroup16.json +1 -0
- package/assets/components/assets/icon/rowUngroup24.json +1 -0
- package/assets/components/assets/icon/rowUngroup32.json +1 -0
- package/assets/components/assets/icon/sdCard16.json +1 -0
- package/assets/components/assets/icon/sdCard24.json +1 -0
- package/assets/components/assets/icon/sdCard32.json +1 -0
- package/assets/components/assets/icon/spaceAroundHorizontal16.json +1 -0
- package/assets/components/assets/icon/spaceAroundHorizontal24.json +1 -0
- package/assets/components/assets/icon/spaceAroundHorizontal32.json +1 -0
- package/assets/components/assets/icon/spaceAroundVertical16.json +1 -0
- package/assets/components/assets/icon/spaceAroundVertical24.json +1 -0
- package/assets/components/assets/icon/spaceAroundVertical32.json +1 -0
- package/assets/components/assets/icon/spaceBetweenHorizontal16.json +1 -0
- package/assets/components/assets/icon/spaceBetweenHorizontal24.json +1 -0
- package/assets/components/assets/icon/spaceBetweenHorizontal32.json +1 -0
- package/assets/components/assets/icon/spaceBetweenVertical16.json +1 -0
- package/assets/components/assets/icon/spaceBetweenVertical24.json +1 -0
- package/assets/components/assets/icon/spaceBetweenVertical32.json +1 -0
- package/assets/components/assets/icon/spacedEvenlyHorizontal16.json +1 -0
- package/assets/components/assets/icon/spacedEvenlyHorizontal24.json +1 -0
- package/assets/components/assets/icon/spacedEvenlyHorizontal32.json +1 -0
- package/assets/components/assets/icon/spacedEvenlyVertical16.json +1 -0
- package/assets/components/assets/icon/spacedEvenlyVertical24.json +1 -0
- package/assets/components/assets/icon/spacedEvenlyVertical32.json +1 -0
- package/assets/components/assets/icon/stretchHorizontal16.json +1 -0
- package/assets/components/assets/icon/stretchHorizontal24.json +1 -0
- package/assets/components/assets/icon/stretchHorizontal32.json +1 -0
- package/assets/components/assets/icon/stretchVertical16.json +1 -0
- package/assets/components/assets/icon/stretchVertical24.json +1 -0
- package/assets/components/assets/icon/stretchVertical32.json +1 -0
- package/assets/components/assets/icon/swatchPalette16.json +1 -0
- package/assets/components/assets/icon/swatchPalette24.json +1 -0
- package/assets/components/assets/icon/swatchPalette32.json +1 -0
- package/assets/components/assets/icon/thermometer16.json +1 -0
- package/assets/components/assets/icon/thermometer24.json +1 -0
- package/assets/components/assets/icon/thermometer32.json +1 -0
- package/assets/components/assets/icon/webCamera16.json +1 -0
- package/assets/components/assets/icon/webCamera24.json +1 -0
- package/assets/components/assets/icon/webCamera32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/078ed48eb055dd213ee6.js +1 -0
- package/assets/esri/core/workers/chunks/186350d720352bd5ff33.js +1 -0
- package/assets/esri/core/workers/chunks/21c0743b2f612e7e7de3.js +1 -0
- package/assets/esri/core/workers/chunks/25cc6d7178a52f2f46b7.js +1 -0
- package/assets/esri/core/workers/chunks/{6010799e05d239073de0.js → 25ecf94d776c3b6db0f3.js} +1 -1
- package/assets/esri/core/workers/chunks/{10d33b4f248864225f85.js → 2728eda8178e02fbca47.js} +1 -1
- package/assets/esri/core/workers/chunks/{4c9df8ae9238454969b8.js → 2c21f4744e19b925a6ae.js} +1 -1
- package/assets/esri/core/workers/chunks/32fc7d1db4b311f6b880.js +1 -0
- package/assets/esri/core/workers/chunks/3acc1299c1382c3b034d.js +1 -0
- package/assets/esri/core/workers/chunks/{c2684fcde2923c9830e0.js → 42c4d0c1c08bf111e5a4.js} +1 -1
- package/assets/esri/core/workers/chunks/430802108b63194b7ddd.js +2 -0
- package/assets/esri/core/workers/chunks/{f5e8ccbd6b4c0a386903.js → 448f068a14f24f2f8a43.js} +1 -1
- package/assets/esri/core/workers/chunks/49c6dc487714f9cd55c7.js +1 -0
- package/assets/esri/core/workers/chunks/{70e0ead69a722fd964b8.js → 49e8ff5ed079a9e3be4b.js} +1 -1
- package/assets/esri/core/workers/chunks/{69921d068add041b5dcb.js → 5134241be1f1bf25231a.js} +1 -1
- package/assets/esri/core/workers/chunks/{54bb3678570ca032f051.js → 5762746cfb02a4119d82.js} +1 -1
- package/assets/esri/core/workers/chunks/{434c5b54e89ace974cbd.js → 5965a947f68b707eaa6b.js} +2 -2
- package/assets/esri/core/workers/chunks/6c25c929bcde7e3a2af1.js +1 -0
- package/assets/esri/core/workers/chunks/7610dd0b46948b7bd840.js +1 -0
- package/assets/esri/core/workers/chunks/7be56ac60e580c806a5d.js +1 -0
- package/assets/esri/core/workers/chunks/7f2ac03efaa4a4898ba2.js +2 -0
- package/assets/esri/core/workers/chunks/{847781aefed049493444.js → 9f760dc4492a03e0504c.js} +1 -1
- package/assets/esri/core/workers/chunks/{013c9cc198736a72f7f2.js → 9fb46ccd4be4c3b61c31.js} +1 -1
- package/assets/esri/core/workers/chunks/bdcca906fdfb8e179abb.js +2 -0
- package/assets/esri/core/workers/chunks/c5ceceb0683671f92efa.js +1 -0
- package/assets/esri/core/workers/chunks/c5e288d57bacb8451e2d.js +2 -0
- package/assets/esri/core/workers/chunks/{b92b7d6c1e693c97a3eb.js → d1f54b0079fb71a15612.js} +1 -1
- package/assets/esri/core/workers/chunks/{72be81c1394285b51ed3.js → d45483dd0dc2853b18b7.js} +212 -216
- package/assets/esri/core/workers/chunks/d5e3f8e5b8d2576d3cb3.js +2 -0
- package/assets/esri/core/workers/chunks/{21d4219844ae5654618b.js → d926bffc3ff9f87e9081.js} +1 -1
- package/assets/esri/core/workers/chunks/{abcda435bc83ef4240f9.js → e6dae16208f6978b59e0.js} +1 -1
- package/assets/esri/core/workers/chunks/e755075ac2e02e881fad.js +1 -0
- package/assets/esri/core/workers/chunks/{058d4c927486a361e633.js → ea9e770efc85594e4dd2.js} +1 -1
- package/assets/esri/core/workers/chunks/eff99e45d818e58fd443.js +1 -0
- package/assets/esri/core/workers/chunks/{a49147203e55609630cc.js → f453dc4a075d2f900c7d.js} +1 -1
- package/assets/esri/core/workers/chunks/f465fb26541372fdc908.js +2 -0
- package/assets/esri/core/workers/chunks/{b7809ef3e1dabd921339.js → f72f4413fc7461e11a2a.js} +1 -1
- package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +1 -0
- package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -0
- 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/ChapmanAtmosphere.glsl.js +1 -1
- package/chunks/Component.glsl.js +57 -56
- package/chunks/DefaultMaterial.glsl.js +19 -23
- package/chunks/GaussianSplat.glsl.js +13 -11
- package/chunks/GlobalIllumination.glsl.js +1 -1
- package/chunks/Haze.glsl.js +1 -1
- package/chunks/Path.glsl.js +21 -24
- package/chunks/RealisticTree.glsl.js +42 -41
- package/chunks/RibbonLine.glsl.js +65 -56
- package/chunks/SimpleAtmosphere.glsl.js +1 -1
- package/chunks/Terrain.glsl.js +25 -25
- package/chunks/Water.glsl.js +4 -4
- package/config.js +1 -1
- package/core/units.js +1 -1
- package/geometry/support/heightModelInfoUtils.js +1 -1
- package/kernel.js +1 -1
- package/layers/GaussianSplatLayer.js +1 -1
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/mixins/TiledImagery.d.ts +6 -0
- package/layers/mixins/TiledImagery.js +1 -1
- package/layers/raster/datasets/ImageServerRaster.js +1 -1
- package/layers/raster/datasets/RasterFactory.js +1 -1
- package/layers/support/domainUtils.d.ts +2 -0
- package/layers/support/domainUtils.js +1 -1
- package/layers/support/fieldUtils.d.ts +10 -0
- package/layers/support/fieldUtils.js +1 -1
- package/package.json +6 -6
- package/support/revision.js +1 -1
- package/symbols/LineStyleMarker3D.d.ts +3 -4
- package/symbols/LineSymbol3D.d.ts +19 -2
- package/symbols/LineSymbol3D.js +1 -1
- package/symbols/LineSymbol3DLayer.d.ts +13 -6
- package/symbols/Symbol3DLayer.d.ts +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/clipping.js +2 -0
- package/views/2d/input/MapViewInputManager.js +1 -1
- package/views/2d/input/handlers/KeyPan.js +1 -1
- package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
- package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
- package/views/3d/support/MemoryController.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentDrawParameters.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/output/getEmissions.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +57 -58
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -3
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +7 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -10
- package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +10 -48
- package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +16 -22
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +5 -3
- package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +19 -0
- package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrShadingInfo.glsl.js +24 -0
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +2 -2
- package/views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js +4 -4
- package/views/3d/webgl-engine/lib/GaussianSplatDepthRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/VisualVariablePassParameters.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +19 -22
- package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechniqueConfiguration.js +1 -1
- package/views/MapView.d.ts +1 -0
- package/views/SceneView.d.ts +1 -0
- package/views/View.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BatchAttributeForm/ReactiveContingentValuesManager.js +1 -1
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/MultipleChoiceController.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/FeatureForm/featureFormUtils.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/Search/LocatorSearchSource.d.ts +4 -3
- package/widgets/support/forms/formUtils.d.ts +5 -0
- package/widgets/support/forms/formUtils.js +1 -1
- package/widgets/support/forms/types.d.ts +7 -1
- package/assets/esri/core/workers/chunks/075eb62465edb9cbf907.js +0 -1
- package/assets/esri/core/workers/chunks/0ff13f7a18b0123d253e.js +0 -1
- package/assets/esri/core/workers/chunks/1082bb0858585bd4fa21.js +0 -2
- package/assets/esri/core/workers/chunks/19ac6f4664f97fb3821c.js +0 -1
- package/assets/esri/core/workers/chunks/1ec01fd6330d011c76d6.js +0 -1
- package/assets/esri/core/workers/chunks/2e2349387a2b9903f13c.js +0 -2
- package/assets/esri/core/workers/chunks/349e9f3d3e3267d02988.js +0 -1
- package/assets/esri/core/workers/chunks/3ffc852db1a820ed143b.js +0 -1
- package/assets/esri/core/workers/chunks/411bbdecba340df11d95.js +0 -2
- package/assets/esri/core/workers/chunks/4490dd8bae0dd2769d99.js +0 -1
- package/assets/esri/core/workers/chunks/476535cfb06ced74d611.js +0 -2
- package/assets/esri/core/workers/chunks/5e56a004b4407b8066eb.js +0 -1
- package/assets/esri/core/workers/chunks/6df29716f75696434807.js +0 -1
- package/assets/esri/core/workers/chunks/a322afbb48898ce35851.js +0 -1
- package/assets/esri/core/workers/chunks/b82b523b6837ed1f28d3.js +0 -2
- package/assets/esri/core/workers/chunks/c7b762bae945f383c723.js +0 -1
- package/assets/esri/core/workers/chunks/ef24fd6c0322e5de9fdf.js +0 -2
- package/assets/esri/core/workers/chunks/f9e5740b05de24ba81be.js +0 -1
- package/assets/esri/core/workers/chunks/fc622f9e33e3b48113c8.js +0 -1
- /package/assets/esri/core/workers/chunks/{476535cfb06ced74d611.js.LICENSE.txt → 430802108b63194b7ddd.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{b82b523b6837ed1f28d3.js.LICENSE.txt → 7f2ac03efaa4a4898ba2.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{ef24fd6c0322e5de9fdf.js.LICENSE.txt → bdcca906fdfb8e179abb.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{1082bb0858585bd4fa21.js.LICENSE.txt → c5e288d57bacb8451e2d.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{2e2349387a2b9903f13c.js.LICENSE.txt → d5e3f8e5b8d2576d3cb3.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{411bbdecba340df11d95.js.LICENSE.txt → f465fb26541372fdc908.js.LICENSE.txt} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{Gamma as e}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{
|
|
2
|
+
import{Gamma as e}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{BooleanPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js";import{Float2PassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3BindUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float3PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as d}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{getHeightParameters as c}from"../views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js";import{ChapmanRaymarching as g}from"../views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js";import{ScreenSpacePassAtmosphere as u}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{SphereIntersect as h}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 f}from"../views/webgl/ShaderBuilder.js";function w(){const w=new f;w.include(u);const{fragment:y}=w;return y.include(e),y.include(h),y.include(p),y.include(g,!1),y.uniforms.add(r,new a("reduced",({reduced:e})=>e),new l("heightParameters",5,(e,r)=>c(r,e)),new o("radii",e=>e.radii),new i("cameraPosition",e=>e.camera.eye),new s("innerFadeDistance",e=>e.innerFadeDistance),new n("undergroundColor",e=>e.undergroundColor),new s("altitudeFade",e=>e.altitudeFade)).code.add(d`vec4 applyUndergroundAtmosphere(vec3 rayDir, vec3 lightDirection, vec4 fragColor) {
|
|
3
3
|
float rayPlanetDistance = heightParameters[3];
|
|
4
4
|
vec2 rayPlanetIntersect = sphereIntersect(cameraPosition, rayDir, rayPlanetDistance);
|
|
5
5
|
if (!((rayPlanetIntersect.x <= rayPlanetIntersect.y) && rayPlanetIntersect.y > 0.0)) {
|
package/chunks/Component.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js";import{ForwardLinearDepthToWriteShadowMap as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{isColor as r,isShadow as a}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{DepthConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/DepthConversion.glsl.js";import{outputDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as
|
|
2
|
+
import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js";import{ForwardLinearDepthToWriteShadowMap as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{isColor as r,isShadow as a}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{DepthConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/DepthConversion.glsl.js";import{outputDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as v}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{computeFragmentNormals as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as h,addLightingGlobalFactor as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as y,mainLightDirection as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{pbrGlobals as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js";import{PhysicallyBasedRenderingParameters as x}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{ReadShadowMapPassFragment as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayIM as U}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{BooleanDrawUniform as M}from"../views/3d/webgl-engine/core/shaderModules/BooleanDrawUniform.js";import{FloatDrawUniform as N}from"../views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js";import{If as j,glsl as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as W}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{SnowCover as $}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{alphaCutoff as D}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as T}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getPlanetRadius as P,sphereDepthInterpolate as R}from"../views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js";import{ShaderBuilder as A}from"../views/webgl/ShaderBuilder.js";function F(F){const z=new A,{vertex:B,fragment:E}=z;z.include(s,F),z.include(n,F),z.include(i,F),z.include(t,F),z.include(e,F),z.include(S,F),E.include(l,F),z.include(O,F);const{output:_,pbrMode:H,hasNormalTexture:I,snowCover:G,receiveShadows:k,shadeNormals:q,spherical:J,sphericalSR:K,overlayEnabled:Q,componentDataType:X,vertexDiscardMode:Y,renderOccluded:Z,isGroundSlice:ee,groundTransparencyMode:oe}=F,re=r(_),ae=1===H||2===H,le=2===oe,te=le&&(3===_||4===_);ae&&(z.include(x,F),I&&z.include(u,F));const ie=a(_),ne=11===_,se=10===_,de=4===_,ce=ie&&1===X,ve=P(F),me=(Q||te)&&J,ge=1===K;(re||de)&&(z.include(p,F),E.include(D)),(Q||te)&&(E.include(h,F),z.include(U,F),me?(z.varyings.add("vPositionForDraping","vec3"),E.uniforms.add(new M("useENUForGlobalOverlayUV",e=>e.useENUForGlobalOverlayUV),new N("overlayMapScaleU",e=>e.toMapSpace[2]),new N("overlayReferenceU",e=>e.toMapSpace[0])),E.constants.add("overlayWorldWidth","float",ge?2*Math.PI*ve:360),ge?(E.constants.add("pRadius","float",ve),E.constants.add("halfSemiMajorAxis","float",.5*ve)):E.constants.add("rad2deg1","float",180/Math.PI),E.constants.add("invRadius","float",1/ve).code.add(V`
|
|
3
3
|
vec2 projectOverlay(vec3 pos) { return pos.xy / (1.0 + invRadius * pos.z); }
|
|
4
4
|
|
|
5
5
|
vec2 selectOverlayUVNorm(vec2 normUV, float offsetUNorm) {
|
|
@@ -31,12 +31,12 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
31
31
|
float sinLat = wPos.z / oRadius;
|
|
32
32
|
vec2 posMap;
|
|
33
33
|
|
|
34
|
-
${
|
|
34
|
+
${j(ge,V`
|
|
35
35
|
posMap = vec2(
|
|
36
36
|
oLonRad * pRadius,
|
|
37
37
|
halfSemiMajorAxis * log((1.0 + sinLat) / (1.0 - sinLat))
|
|
38
38
|
);
|
|
39
|
-
`,
|
|
39
|
+
`,V`
|
|
40
40
|
float oLatRad = asin(clamp(sinLat,-1.0,1.0));
|
|
41
41
|
posMap = vec2(rad2deg1 * oLonRad, rad2deg1 * oLatRad);
|
|
42
42
|
`)}
|
|
@@ -49,12 +49,12 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
49
49
|
? selectLocalOverlayUVs(projectOverlay(vPositionForDraping))
|
|
50
50
|
: selectMapOverlayUVs(overlayMapUVFromWorldPosition());
|
|
51
51
|
}
|
|
52
|
-
`)):
|
|
52
|
+
`)):B.code.add("vec2 projectOverlay(vec3 pos) { return pos.xy; }"));const pe=Q&&re&&4===H;pe&&(z.varyings.add("tbnTangent","vec3"),z.varyings.add("tbnBiTangent","vec3"),z.varyings.add("upNormal","vec3"));const ue=0===Y,he=2===Y;if(z.include(L,F),z.include(o,F),B.include(D),B.main.add(V`
|
|
53
53
|
bool castShadows;
|
|
54
54
|
vec4 externalColor = forwardExternalColor(castShadows);
|
|
55
|
-
${
|
|
56
|
-
${
|
|
57
|
-
${
|
|
55
|
+
${j(ce,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
|
|
56
|
+
${j(!ue,`if (externalColor.a ${he?">":"<="} opacityCutoff) {\n gl_Position = vec4(vec3(1e38), 1.0); return;\n }`)}
|
|
57
|
+
${j(ne,"externalColor.a = 1.0;")}
|
|
58
58
|
|
|
59
59
|
forwardPosition(readElevationOffset());
|
|
60
60
|
forwardNormal();
|
|
@@ -64,26 +64,26 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
64
64
|
forwardLinearDepthToWriteShadowMap();
|
|
65
65
|
forwardEmissiveStrength();
|
|
66
66
|
forwardObjectAndLayerIdColor();
|
|
67
|
-
${
|
|
68
|
-
|
|
69
|
-
tbnTangent = normalize(cross(vec3(0.0, 0.0, 1.0),
|
|
70
|
-
tbnBiTangent = normalize(cross(
|
|
71
|
-
|
|
67
|
+
${j(pe,J?V`
|
|
68
|
+
upNormal = normalize(positionWorld());
|
|
69
|
+
tbnTangent = normalize(cross(vec3(0.0, 0.0, 1.0), upNormal));
|
|
70
|
+
tbnBiTangent = normalize(cross(upNormal, tbnTangent));`:V`
|
|
71
|
+
upNormal = vec3(0.0, 0.0, 1.0);
|
|
72
72
|
tbnTangent = vec3(1.0, 0.0, 0.0);
|
|
73
73
|
tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
|
|
74
|
-
${
|
|
74
|
+
${j(Q||te,j(J,"vPositionForDraping = positionForDraping();\n vtcOverlay = vec4(0.0);","setOverlayVTC(projectOverlay(positionForDraping()));"))}
|
|
75
75
|
|
|
76
76
|
if (externalColor.a < alphaCutoff) {
|
|
77
77
|
// Discard this vertex
|
|
78
78
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
`),
|
|
81
|
+
`),re)return z.include(g,F),z.include(T,F),E.include(h,F),E.include($,F),E.include(b,F),E.code.add(V`
|
|
82
82
|
float evaluateShadow() {
|
|
83
|
-
return ${
|
|
83
|
+
return ${k?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
|
|
84
84
|
}
|
|
85
|
-
`).main.add(
|
|
86
|
-
${
|
|
85
|
+
`).main.add(V`
|
|
86
|
+
${j(!ee,"discardBySlice(vPositionWorldCameraRelative);")}
|
|
87
87
|
|
|
88
88
|
vec4 textureColor = readBaseColorTexture();
|
|
89
89
|
discardOrAdjustAlpha(textureColor);
|
|
@@ -91,15 +91,15 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
91
91
|
// When rendering the occluded overlay, we still need to read the base color texture because we need to use the
|
|
92
92
|
// same discard logic. However after that to render only the draped overlay, we simply set the base texture color
|
|
93
93
|
// to zero.
|
|
94
|
-
${
|
|
94
|
+
${j(Z,V`textureColor = vec4(0);`)}
|
|
95
95
|
|
|
96
|
-
${
|
|
97
|
-
vec4 overlayUVs = ${
|
|
96
|
+
${j(Q,V`
|
|
97
|
+
vec4 overlayUVs = ${me?"componentOverlayUVs()":"vtcOverlay"};
|
|
98
98
|
|
|
99
99
|
vec4 overlayColor = getCombinedOverlayColor(overlayUVs);
|
|
100
100
|
|
|
101
101
|
/* Early discard to only emit when we have overlay */
|
|
102
|
-
${
|
|
102
|
+
${j(Z,V`if (overlayColor.a < alphaCutoff) { discard; }`)}
|
|
103
103
|
`)}
|
|
104
104
|
|
|
105
105
|
vec4 externalColor;
|
|
@@ -107,79 +107,80 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
107
107
|
readExternalColor(externalColor, externalColorMixMode);
|
|
108
108
|
|
|
109
109
|
vec4 materialColor = computeMaterialColor(textureColor, externalColor, externalColorMixMode);
|
|
110
|
-
${
|
|
111
|
-
`),
|
|
110
|
+
${j(le,"materialColor = vec4(0.0);")}
|
|
111
|
+
`),ae?(J&&w(E),E.include(C),E.uniforms.add(y).main.add(V`
|
|
112
112
|
applyPBRFactors();
|
|
113
|
-
${
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
${j(1===H,"if (externalColorMixMode == 3) mrr = vec3(0.0, 0.6, 0.2);")}
|
|
114
|
+
${j(I,"mat3 tangentSpace = computeTangentSpace(fragmentFaceNormal, vPositionWorldCameraRelative, vuv0);")}
|
|
115
|
+
|
|
116
|
+
vec3 viewDirection = normalize(vPositionWorldCameraRelative);
|
|
117
|
+
vec3 upNormal = getLocalUp(positionWorld());
|
|
118
118
|
vec3 shadingNormal = ${I?"computeTextureNormal(tangentSpace, vuv0)":"fragmentShadingNormal"};
|
|
119
|
-
vec3 groundNormal = ${k?j`normalize(positionWorld())`:j`vec3(0.0, 0.0, 1.0)`};
|
|
120
119
|
|
|
121
|
-
vec3 viewDir = normalize(vPositionWorldCameraRelative);
|
|
122
120
|
float ssao = 1.0 - occlusion * evaluateAmbientOcclusionInverse();
|
|
123
|
-
${
|
|
121
|
+
${j(G,V`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
|
|
124
122
|
materialColor.rgb = mix(materialColor.rgb, vec3(1.1), snow);
|
|
125
123
|
ssao = mix(ssao, 0.5 * ssao, snow);
|
|
126
124
|
shadingNormal = mix(shadingNormal, fragmentFaceNormal, snow);`)}
|
|
127
|
-
${
|
|
125
|
+
${j(Q,"materialColor = compositeOverlayUnpremultiplied(materialColor, overlayColor);")}
|
|
128
126
|
|
|
129
127
|
vec3 additionalLight = evaluateAdditionalLighting(ssao, positionWorld());
|
|
130
|
-
${
|
|
131
|
-
${
|
|
132
|
-
vec4 shadedColor = vec4(
|
|
133
|
-
|
|
134
|
-
${
|
|
135
|
-
float shadow = ${
|
|
136
|
-
|
|
137
|
-
${
|
|
128
|
+
${j(J,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
|
|
129
|
+
${J?V`float shadow = max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow());`:"float shadow = evaluateShadow();"}
|
|
130
|
+
vec4 shadedColor = vec4(evaluateSceneLighting(shadingNormal, materialColor.rgb, shadow, ssao, additionalLight, viewDirection, upNormal), materialColor.a);
|
|
131
|
+
`)):(J&&w(E),pe&&E.uniforms.add(new W("ovNormalTex",e=>e.overlay?.getTexture(3))),E.uniforms.add(f).main.add(V`
|
|
132
|
+
${j(J,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
|
|
133
|
+
float shadow = ${k?J?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow())":"evaluateShadow()":J?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
|
|
134
|
+
|
|
135
|
+
${j(k&&1!==q,V`
|
|
138
136
|
float dotFL = dot(fragmentFaceNormal, mainLightDirection);
|
|
139
137
|
if( dotFL <= 0.0) shadow = 1.0;
|
|
140
138
|
`)}
|
|
141
|
-
${
|
|
139
|
+
${j(G,V`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
|
|
142
140
|
materialColor.rgb = mix(materialColor.rgb, vec3(1), snow);`)}
|
|
143
141
|
|
|
142
|
+
vec3 viewDirection = normalize(vPositionWorldCameraRelative);
|
|
143
|
+
vec3 upNormal = getLocalUp(positionWorld());
|
|
144
|
+
|
|
144
145
|
// At global scale we create some additional ambient light based on the main light to simulate global illumination
|
|
145
146
|
float ssao = evaluateAmbientOcclusion();
|
|
146
147
|
vec3 additionalLight = evaluateAdditionalLighting(ssao, positionWorld());
|
|
147
148
|
|
|
148
|
-
${
|
|
149
|
+
${j(Q,"materialColor = compositeOverlayUnpremultiplied(materialColor, overlayColor);")}
|
|
149
150
|
|
|
150
|
-
vec4 shadedColor = vec4(evaluateSceneLighting(fragmentShadingNormal, materialColor.rgb, shadow, ssao, additionalLight), materialColor.a);
|
|
151
|
-
${
|
|
151
|
+
vec4 shadedColor = vec4(evaluateSceneLighting(fragmentShadingNormal, materialColor.rgb, shadow, ssao, additionalLight, viewDirection, upNormal), materialColor.a);
|
|
152
|
+
${j(pe,V`vec4 overlayWaterMask = getOverlayColor(ovNormalTex, overlayUVs);
|
|
152
153
|
float waterNormalLength = length(overlayWaterMask);
|
|
153
154
|
if (waterNormalLength > 0.95) {
|
|
154
|
-
mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent,
|
|
155
|
-
vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, overlayColor, -normalize(vPositionWorldCameraRelative), shadow,
|
|
155
|
+
mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, upNormal);
|
|
156
|
+
vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, overlayColor, -normalize(vPositionWorldCameraRelative), shadow, upNormal, tbnMatrix, vPosition_view, positionWorld());
|
|
156
157
|
vec4 waterColorNonLinear = delinearizeGamma(vec4(waterColorLinear.xyz, 1.0));
|
|
157
158
|
// un-gamma the ground color to mix in linear space
|
|
158
159
|
shadedColor = mix(shadedColor, waterColorNonLinear, waterColorLinear.w);
|
|
159
160
|
}`)}
|
|
160
|
-
`)),
|
|
161
|
+
`)),E.main.add(`\n ${j(ee,"if(rejectBySlice(vPositionWorldCameraRelative)) shadedColor.a *= groundSliceOpacity;")}\n\n outputColorHighlightOLID(applySlice(shadedColor, vPositionWorldCameraRelative), materialColor.rgb ${j(G,", snow")});\n `),F.sphereDepthInterpolate&&(z.include(R,F),z.fragment.include(d),E.main.add(V`vec3 worldRay = normalize(vPositionWorldCameraRelative);
|
|
161
162
|
vec3 viewRay = normalize(vPosition_view);
|
|
162
|
-
gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linearizeDepth(gl_FragCoord.z)));`)),
|
|
163
|
-
${
|
|
163
|
+
gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linearizeDepth(gl_FragCoord.z)));`)),z;const we=ie||8===_;return we&&z.include(c,F),de&&z.include(g,F),Q&&z.include(m,F),z.include(v,F),E.main.add(V`
|
|
164
|
+
${j(!ee,"discardBySlice(vPositionWorldCameraRelative);")}
|
|
164
165
|
|
|
165
166
|
vec4 textureColor = readBaseColorTexture();
|
|
166
167
|
discardOrAdjustAlpha(textureColor);
|
|
167
168
|
|
|
168
|
-
${
|
|
169
|
-
vec4 overlayUVs = ${
|
|
169
|
+
${j(te,V`
|
|
170
|
+
vec4 overlayUVs = ${me?"componentOverlayUVs()":"vtcOverlay"};
|
|
170
171
|
if (getCombinedOverlayColor(overlayUVs).a < alphaCutoff) {
|
|
171
172
|
discard;
|
|
172
173
|
}
|
|
173
174
|
`)}
|
|
174
175
|
|
|
175
|
-
${
|
|
176
|
-
${
|
|
176
|
+
${j(we,"outputDepth(linearDepth);")}
|
|
177
|
+
${j(de,V`
|
|
177
178
|
vec4 externalColor;
|
|
178
179
|
int externalColorMixMode;
|
|
179
180
|
readExternalColor(externalColor, externalColorMixMode);
|
|
180
181
|
|
|
181
182
|
vec4 materialColor = computeMaterialColor(textureColor, externalColor, externalColorMixMode);
|
|
182
|
-
${
|
|
183
|
+
${j(ee,V`
|
|
183
184
|
if (rejectBySlice(vPositionWorldCameraRelative)) {
|
|
184
185
|
materialColor.a *= groundSliceOpacity;
|
|
185
186
|
}
|
|
@@ -187,5 +188,5 @@ gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linear
|
|
|
187
188
|
|
|
188
189
|
fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, materialColor.a);
|
|
189
190
|
`)}
|
|
190
|
-
${
|
|
191
|
-
${
|
|
191
|
+
${j(ne,Q?me?"fragColor = getOverlayColorTexel(componentOverlayUVs());":"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
|
|
192
|
+
${j(se,j(Q,me?V`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded(componentOverlayUVs()));`:V`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,V`calculateOcclusionAndOutputHighlight();`))}`),z}const z=Object.freeze(Object.defineProperty({__proto__:null,build:F},Symbol.toStringTag,{value:"Module"}));export{z as C,F as b};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as d}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{DefaultMaterialExternalColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import{ComputeNormalTexturePass as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as u,addAmbientBoostFactor as v,addLightingGlobalFactor as
|
|
2
|
+
import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as d}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{DefaultMaterialExternalColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import{ComputeNormalTexturePass as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as u,addAmbientBoostFactor as v,addLightingGlobalFactor as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{NormalUtils as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PhysicallyBasedRendering as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPassFragment as x,ReadShadowMapDrawFragment as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{colorTextureUV as j,normalTextureUV as C,emissiveTextureUV as N,occlusionTextureUV as T,metallicRoughnessTextureUV as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js";import{VisualVariables as P}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as V,addCameraPosition as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as M}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{If as A,glsl as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as U}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as B}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{outputColorHighlightOLID as _}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as R}from"../views/webgl/ShaderBuilder.js";function E(E){const I=new R,{attributes:W,vertex:F,fragment:k,varyings:z}=I,{output:H,normalType:G,offsetBackfaces:q,snowCover:J,pbrMode:K,textureAlphaPremultiplied:Q,instancedDoublePrecision:X,hasVertexColors:Y,hasVertexTangents:Z,hasColorTexture:ee,hasNormalTexture:re,hasNormalTextureTransform:oe,hasColorTextureTransform:ie}=E;if(V(F,E),W.add("position","vec3"),F.inputs.add("position",()=>"position"),z.add("vpos","vec3",{invariant:!0}),I.include(P,E),I.include(a,E),I.include(t,E),I.include(j,E),!r(H))return I.include(d,E),I;I.include(C,E),I.include(N,E),I.include(T,E),I.include(O,E),D(F,E),I.include(l,E),I.include(i);const ae=0===G||1===G;return ae&&q&&I.include(e),I.include(c,E),I.include(n,E),z.add("vPositionLocal","vec3"),I.include(s,E),I.include(g,E),I.include(X?x:L,E),F.main.add($`
|
|
3
3
|
forwardDefaultMaterialExternalColor();
|
|
4
4
|
|
|
5
5
|
vpos = getVertexInLocalOriginSpace();
|
|
6
6
|
vPositionLocal = vpos - view[3].xyz;
|
|
7
7
|
vpos = subtractOrigin(vpos);
|
|
8
|
-
${
|
|
8
|
+
${A(ae,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
|
|
9
9
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
10
|
-
${
|
|
10
|
+
${A(Z,"vTangent = dpTransformVertexTangent(tangent);")}
|
|
11
11
|
gl_Position = transformPosition(proj, view, vpos);
|
|
12
|
-
${
|
|
12
|
+
${A(ae&&q,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
|
|
13
13
|
|
|
14
14
|
forwardTextureCoordinates();
|
|
15
15
|
forwardColorUV();
|
|
@@ -22,26 +22,25 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
|
|
|
22
22
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
23
23
|
}
|
|
24
24
|
forwardLinearDepthToReadShadowMap();
|
|
25
|
-
`),
|
|
25
|
+
`),k.include(u,E),k.include(m,E),I.include(S,E),k.include(o,E),I.include(_,E),D(k,E),k.uniforms.add(F.uniforms.get("localOrigin"),new M("ambient",e=>e.ambient),new M("diffuse",e=>e.diffuse)),ee&&k.uniforms.add(new U("tex",e=>e.texture)),I.include(y,E),k.include(h,E),I.include(b,E),k.include(B,E),k.include(f,E),v(k),w(k),k.uniforms.add(p).main.add($`
|
|
26
26
|
discardBySlice(vpos);
|
|
27
|
-
${ee
|
|
27
|
+
${ee?$`
|
|
28
28
|
vec4 texColor = texture(tex, ${ie?"colorUV":"vuv0"});
|
|
29
|
-
${
|
|
30
|
-
discardOrAdjustAlpha(texColor);`:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
${A(Q,"texColor.rgb /= texColor.a;")}
|
|
30
|
+
discardOrAdjustAlpha(texColor);`:"vec4 texColor = vec4(1.0);"}
|
|
31
|
+
vec3 viewDirection = normalize(vpos - cameraPosition);
|
|
32
|
+
vec3 posWorld = vpos + localOrigin;
|
|
33
|
+
vec3 upNormal = getLocalUp(posWorld);
|
|
34
|
+
${2===G?"vec3 normal = screenDerivativeNormal(vPositionLocal);":"vec3 normal = shadingNormal(vNormalWorld, viewDirection);"}
|
|
34
35
|
applyPBRFactors();
|
|
35
36
|
float ssao = evaluateAmbientOcclusionInverse() * getBakedOcclusion();
|
|
36
37
|
|
|
37
|
-
vec3 posWorld = vpos + localOrigin;
|
|
38
|
-
|
|
39
38
|
float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
|
|
40
39
|
float shadow = readShadow(additionalAmbientScale, vpos);
|
|
41
40
|
|
|
42
41
|
vec3 matColor = max(ambient, diffuse);
|
|
43
42
|
vec3 albedo = mixExternalColor(
|
|
44
|
-
${
|
|
43
|
+
${A(Y,"vColor.rgb *")} matColor,
|
|
45
44
|
texColor.rgb,
|
|
46
45
|
vExternalColor.rgb,
|
|
47
46
|
colorMixMode
|
|
@@ -49,20 +48,17 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
|
|
|
49
48
|
float opacity_ = getDefaultMaterialOpacity(texColor.a);
|
|
50
49
|
|
|
51
50
|
${re?`mat3 tangentSpace = computeTangentSpace(${Z?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${oe?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
|
|
52
|
-
vec3 normalGround = ${q?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
|
|
53
51
|
|
|
54
|
-
${
|
|
55
|
-
float snow = getSnow(normal,
|
|
52
|
+
${A(J,$`
|
|
53
|
+
float snow = getSnow(normal, upNormal);
|
|
56
54
|
albedo = mix(albedo, vec3(1), snow);
|
|
57
55
|
shadingNormal = mix(shadingNormal, normal, snow);
|
|
58
56
|
ssao = mix(ssao, 1.0, snow);`)}
|
|
59
57
|
|
|
60
58
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
59
|
+
${A((1===K||2===K)&&J,"applySnowToMRR(snow);")}
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
|
|
64
|
-
${M(J,"mrr = applySnowToMRR(mrr, snow);")}
|
|
65
|
-
vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);`:7===K?D`vec3 shadedColor = albedo;`:D`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
|
|
61
|
+
vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, upNormal);
|
|
66
62
|
vec4 finalColor = vec4(shadedColor, opacity_);
|
|
67
|
-
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${
|
|
68
|
-
`),
|
|
63
|
+
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${A(J,", snow")});
|
|
64
|
+
`),I}const I=Object.freeze(Object.defineProperty({__proto__:null,build:E},Symbol.toStringTag,{value:"Module"}));export{I as D,E as b};
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{EvaluateSceneLighting as e,addAmbientBoostFactor as a,addLightingGlobalFactor as
|
|
2
|
+
import{EvaluateSceneLighting as e,addAmbientBoostFactor as a,addLightingGlobalFactor as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{NormalUtils as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapPassFragment as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{RgbNormalizedDepthEncoding as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbNormalizedDepthEncoding.glsl.js";import{Float3BindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as s,If as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{gaussianSplatFirstHitAlpha as d}from"../views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js";import{GaussianSplatPerspectivePass as c,GaussianSplatFading as g,gaussianSplatPerspectiveVertex as h}from"../views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js";import{getGaussianSplatAlphaCutoffValue as p}from"../views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";function u(u){const{receiveShadows:f,spherical:v}=u,b=new m,{varyings:w,vertex:C,fragment:y,outputs:L}=b;w.add("vColor","vec4"),b.include(c,u),u.fadingEnabled&&C.include(g),C.uniforms.add(new r("cameraPosition",e=>e.camera.eye)),f?(y.uniforms.add(new r("cameraPosition",e=>e.camera.eye)),y.include(e,u)):C.include(e,u),C.include(n,u),a(f?y:C),i(f?y:C),f&&b.include(o,u),L.add("fragColor","vec4",0),L.add("fragDepthColor","vec4",1);const S=p(u.alphaCutoff),D=s`float groundLightAlignment = dot(upNormal, mainLightDirection);
|
|
3
3
|
float additionalAmbientScale = additionalDirectedAmbientLight(groundLightAlignment);
|
|
4
|
-
vec3 additionalLight = mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;`,
|
|
5
|
-
vec3
|
|
6
|
-
|
|
4
|
+
vec3 additionalLight = mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;`,P=s`
|
|
5
|
+
vec3 viewDirection = normalize(fragmentPositionCameraRelative - cameraPosition);
|
|
6
|
+
vec3 upNormal = getLocalUp(fragmentPositionCameraRelative, cameraPosition);
|
|
7
|
+
${D}
|
|
7
8
|
float shadow = ${v?s`lightingGlobalFactor * (1.0 - additionalAmbientScale)`:s`0.0`};
|
|
8
|
-
vColor.rgb = evaluateSceneLighting(
|
|
9
|
-
`,
|
|
10
|
-
vec3
|
|
11
|
-
|
|
9
|
+
vColor.rgb = evaluateSceneLighting(upNormal, vColor.rgb, shadow, 0.0, additionalLight, viewDirection, upNormal);
|
|
10
|
+
`,j=s`
|
|
11
|
+
vec3 viewDirection = normalize(fragmentPositionCameraRelative - cameraPosition);
|
|
12
|
+
vec3 upNormal = getLocalUp(fragmentPositionCameraRelative, cameraPosition);
|
|
13
|
+
${D}
|
|
12
14
|
float shadow = readShadow(additionalAmbientScale, fragmentPositionCameraRelative);
|
|
13
|
-
shadedColor = evaluateSceneLighting(
|
|
14
|
-
`;return
|
|
15
|
-
vColor.a = opacity;`)}\n\n ${h(u,
|
|
15
|
+
shadedColor = evaluateSceneLighting(upNormal, vColor.rgb, shadow, 0.0, additionalLight, viewDirection, upNormal);
|
|
16
|
+
`;return C.main.add(`\n uint gaussianIndex = fetchOrderedGaussianIndex(uint(gl_InstanceID));\n uvec4 packedGaussian = fetchPackedGaussian(gaussianIndex);\n\n // Unpack color first so very transparent splats can discard before fetching the page header.\n vColor = unpackColor(packedGaussian);\n float opacity = vColor.a;\n\n // Apply per-page fading before the early alpha rejection.\n ${l(u.fadingEnabled,s`opacity = applyGaussianSplatFading(opacity, gaussianIndex);
|
|
17
|
+
vColor.a = opacity;`)}\n\n ${h(u,S)}\n vColor.a = opacity;\n\n // Handle environment lighting per vertex when no shadow map is active.\n // When shadows are received, defer lighting to the fragment shader for crisp shadow borders.\n ${l(f,"forwardLinearDepth(-viewPos.z);",P)}\n `),y.include(t),y.include(n,u),y.main.add(`\n float gaussianFalloff = exp(gaussianExponent);\n\n // Cap at 0.99 to avoid blending issues, such as seams between overlapping Gaussians.\n float alpha = min(.99f, vColor.a * gaussianFalloff);\n\n vec3 shadedColor = vColor.rgb;\n ${l(f,j)}\n fragColor = vec4(shadedColor * alpha, alpha);\n\n // We simulate first hit based depth using the shared opacity threshold.\n // This works because we render in front-to-back order,\n // i.e. the first hit that counts completely saturates the alpha channel\n // and further splats do not contribute.\n float depthHit = step(${s.float(d)}, alpha);\n vec3 encodedDepth = vec3(0.0);\n if (depthHit > 0.0) {\n encodedDepth = encodeNormalizedDepthToRGB(gaussianSplatDepth());\n }\n fragDepthColor = vec4(encodedDepth, depthHit);\n `),b}const f=Object.freeze(Object.defineProperty({__proto__:null,build:u},Symbol.toStringTag,{value:"Module"}));export{f as G,u as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{mainLightDirection as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatBindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as c,If as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as u}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{floatBlendReductionFactor as p}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as g,SizedPixelFormat as f}from"../views/webgl/enums.js";import{NoParameters as y}from"../views/webgl/NoParameters.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";const v=.01,M=.008,b=5e-4,w=.5,S=.02,B=.1,W=.008,F=.3,I=.008,D=150,C=.095,j=.008,R=60,O=2,z=.0039,G=.25,P=.012,T=6,E=.15,Q=25,L=.15,H=.5,V=1,k=1,U=16;class N extends y{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=L,this.rayMarchMaxReach=H,this.rayMarchWorldReach=Q,this.rayMarchMinReachEmissionWeight=V,this.rayMarchMaxReachEmissionWeight=k,this.rayMarchMaxSteps=U,this.colorBleedWeight=E,this.highQualityIdleColorBlendStart=F}}function _(y){const F=new x,E=F.fragment;F.include(e),F.include(o),E.include(a),E.include(t),E.include(u),F.include(l,y),E.uniforms.add(i,new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new d("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new d("lastFrameDepthTexture",e=>e.reprojection.lastFrameDepth?.attachment),new d("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new d("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(g)),new h("reprojectionProjectionMatrix",e=>e.reprojection.lastFrameCamera.projectionMatrix),new h("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new h("view",e=>e.camera.viewMatrix),new n("accumulatedFrames",e=>e.accumulatedFrames),new n("temporalSampleFrame",e=>e.temporalSampleFrame),new n("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),E.uniforms.add(new n("rayMarchMinReach",e=>e.rayMarchMinReach),new n("rayMarchMaxReach",e=>e.rayMarchMaxReach),new n("rayMarchWorldReach",e=>e.rayMarchWorldReach),new n("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new n("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new n("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new n("colorBleedWeight",e=>e.colorBleedWeight),new n("highQualityIdleColorBlendStart",e=>e.highQualityIdleColorBlendStart));const{hasEmission:Q,hasColor:L}=y;return Q&&E.uniforms.add(new r("inputScale",e=>e.reprojection.lastFrameEmission?.attachment.descriptor.internalFormat===f.RGBA8?p:1),new d("lastFrameEmissionTexture",e=>e.reprojection.lastFrameEmission?.attachment)),E.constants.add("highQualityIdleColorBlendEnd","float",I),E.constants.add("highQualityIdleColorBlendFrames","float",D),E.constants.add("highQualityIdleOcclusionBlendEnd","float",j),E.constants.add("highQualityIdleOcclusionBlendExponent","float",O),E.constants.add("highQualityIdleOcclusionBlendFrames","float",R),E.constants.add("highQualityIdleOcclusionBlendStart","float",C),E.constants.add("fullColorBleedBlendWeight","float",P),E.constants.add("accumulationDitherScale","float",z),E.constants.add("lowQualityColorBlendWeight","float",b),E.constants.add("lowQualityColorDitherScale","float",G),E.constants.add("lowQualityOcclusionBlendWeight","float",M),E.constants.add("reprojectionMismatchThreshold","float",v),E.constants.add("stableHistoryColorBlendWeight","float",W),E.constants.add("strongHistoryOcclusionThreshold","float",S),E.constants.add("weakHistoryOcclusionBlendWeight","float",B),E.constants.add("weakHistoryOcclusionThreshold","float",w),E.constants.add("storedColorBlendWeightScale","float",T),E.code.add(c`float computeIdleColorBlendWeight(float accumulatedFrames) {
|
|
3
3
|
float idleColorBlendProgress = clamp(accumulatedFrames / highQualityIdleColorBlendFrames, 0.0, 1.0);
|
|
4
4
|
return mix(highQualityIdleColorBlendStart, highQualityIdleColorBlendEnd, pow(idleColorBlendProgress, 1./5.)
|
|
5
5
|
);
|
package/chunks/Haze.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ReadDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{
|
|
2
|
+
import{ReadDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{mainLightDirection as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{FloatPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as o,If as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{getHeightParameters as d}from"../views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js";import{ChapmanRaymarching as l}from"../views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js";import{ScreenSpacePassAtmosphere as p}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{SphereIntersect as m}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{ToneMapping as h}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";function g(g){const f=new c,{fragment:u}=f;f.include(p),u.include(r),u.include(e),u.include(m),u.include(h),u.include(l,!0),u.uniforms.add(t,new s("depthTexture",e=>e.mainDepth));const{reduced:v}=g;return v&&u.code.add(o`float getDepth(vec2 uv){
|
|
3
3
|
return linearDepthFromTexture(depthTexture, uv);
|
|
4
4
|
}
|
|
5
5
|
float textureBilinear(vec2 uv) {
|
package/chunks/Path.glsl.js
CHANGED
|
@@ -1,57 +1,54 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{addNearFar as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as
|
|
2
|
+
import{addNearFar as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor 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{PathVertexPosition as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{outputDepth as l}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 n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as s,addAmbientBoostFactor as c,addLightingGlobalFactor as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as v}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 p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDrawFragment as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{ColorConversion as b}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as f,addCameraPosition as h,addViewNormal as y}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as j}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as L,If as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{SnowCover as P}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{outputColorHighlightOLID as C}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as O}from"../views/webgl/ShaderBuilder.js";function S(S){const A=new O,{vertex:I,fragment:_,varyings:B}=A;f(I,S),B.add("vpos","vec3",{invariant:!0}),A.include(d,S);const{output:D,pbrMode:M,snowCover:N,offsetBackfaces:F}=S,k=11===D;switch((r(D)||k)&&(k?(A.varyings.add("objectAndLayerIdColorVarying","vec4"),A.vertex.code.add(L`void forwardObjectAndLayerIdColor() {
|
|
3
3
|
objectAndLayerIdColorVarying = getOlidColor();
|
|
4
|
-
}`),A.fragment.code.add(
|
|
4
|
+
}`),A.fragment.code.add(L`void outputObjectAndLayerIdColor() {
|
|
5
5
|
fragColor = objectAndLayerIdColorVarying;
|
|
6
|
-
}`)):(A.vertex.code.add(
|
|
6
|
+
}`)):(A.vertex.code.add(L`void forwardObjectAndLayerIdColor() {}`),A.fragment.code.add(L`void outputObjectAndLayerIdColor() {}`)),A.include(a),A.include(w,S),F&&(h(I,S),A.include(o)),B.add("vnormal","vec3"),B.add("vcolor","vec4"),I.main.add(L`
|
|
7
7
|
ExtrudedVertex extrudedVertex = evaluateVertex();
|
|
8
8
|
vpos = calculateVPos(extrudedVertex);
|
|
9
9
|
vnormal = normalize(localNormal(extrudedVertex));
|
|
10
10
|
gl_Position = transformPosition(proj, view, vpos);
|
|
11
|
-
${
|
|
11
|
+
${V(F,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vnormal, cameraPosition);")}
|
|
12
12
|
|
|
13
13
|
forwardObjectAndLayerIdColor();
|
|
14
14
|
vcolor = getColor();
|
|
15
|
-
forwardLinearDepthToReadShadowMap();`)),D){case 0:case 1:case 2:A.include(p,
|
|
15
|
+
forwardLinearDepthToReadShadowMap();`)),D){case 0:case 1:case 2:A.include(p,S),_.include(s,S),_.include(n,S),A.include(v,S),_.include(u,S),_.include(i,S),A.include(C,S),h(_,S),c(_),g(_),_.uniforms.add(I.uniforms.get("localOrigin"),new x("ambient",e=>e.ambient),new x("diffuse",e=>e.diffuse),new j("opacity",e=>e.opacity)),_.include(b),_.include(P,S),_.uniforms.add(m).main.add(L`
|
|
16
16
|
discardBySlice(vpos);
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
vec3 normal = shadingNormal(shadingParams);
|
|
18
|
+
vec3 viewDirection = normalize(vpos - cameraPosition);
|
|
19
|
+
vec3 normal = shadingNormal(vnormal, viewDirection);
|
|
21
20
|
float ssao = evaluateAmbientOcclusionInverse();
|
|
22
|
-
|
|
23
|
-
vec3 posWorld = vpos + localOrigin;
|
|
24
|
-
vec3 normalGround = ${M?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
|
|
21
|
+
vec3 upNormal = getLocalUp(vpos, localOrigin);
|
|
25
22
|
|
|
26
23
|
vec3 albedo = vcolor.rgb * max(ambient, diffuse); // combine the old material parameters into a single one
|
|
27
24
|
float combinedOpacity = vcolor.a * opacity;
|
|
28
25
|
|
|
29
|
-
${
|
|
26
|
+
${V(N,L`float snow = getSnow(normal, upNormal);
|
|
30
27
|
albedo = mix(albedo, vec3(1), snow);
|
|
31
28
|
ssao = mix(ssao, 1.0, snow);`)}
|
|
32
29
|
|
|
30
|
+
vec3 posWorld = vpos + localOrigin;
|
|
33
31
|
float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
|
|
34
32
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
35
33
|
float shadow = readShadow(additionalAmbientScale, vpos);
|
|
36
34
|
|
|
37
|
-
${
|
|
38
|
-
|
|
39
|
-
vec3 shadedColor = ${2===F?"evaluateSceneLightingPBR(normal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);":"evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight);"}
|
|
35
|
+
${V(2===M&&N,"applySnowToMRR(snow);")}
|
|
36
|
+
vec3 shadedColor = evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, upNormal);
|
|
40
37
|
vec4 finalColor = vec4(shadedColor, combinedOpacity);
|
|
41
|
-
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${
|
|
38
|
+
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${V(N,", snow")});`);break;case 3:A.include(a),I.main.add(L`ExtrudedVertex extrudedVertex = evaluateVertex();
|
|
42
39
|
vpos = calculateVPos(extrudedVertex);
|
|
43
|
-
gl_Position = transformPosition(proj, view, vpos);`),A.fragment.include(
|
|
40
|
+
gl_Position = transformPosition(proj, view, vpos);`),A.fragment.include(i,S),_.main.add(L`discardBySlice(vpos);`);break;case 5:case 6:case 7:case 8:A.include(a),e(A),B.add("depth","float"),I.main.add(L`ExtrudedVertex extrudedVertex = evaluateVertex();
|
|
44
41
|
vpos = calculateVPos(extrudedVertex);
|
|
45
|
-
gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);`),
|
|
46
|
-
outputDepth(depth);`);break;case 11:A.fragment.include(
|
|
47
|
-
outputObjectAndLayerIdColor();`);break;case 4:A.include(
|
|
42
|
+
gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);`),_.include(i,S),A.include(l,S),_.main.add(L`discardBySlice(vpos);
|
|
43
|
+
outputDepth(depth);`);break;case 11:A.fragment.include(i,S),_.main.add(L`discardBySlice(vpos);
|
|
44
|
+
outputObjectAndLayerIdColor();`);break;case 4:A.include(a),I.include(u,S),y(I),B.add("vnormal","vec3"),B.add("vcolor","vec4"),I.main.add(L`ExtrudedVertex extrudedVertex = evaluateVertex();
|
|
48
45
|
vpos = calculateVPos(extrudedVertex);
|
|
49
46
|
vnormal = normalize((viewNormal * vec4(localNormal(extrudedVertex), 1.0)).xyz);
|
|
50
47
|
vcolor = getColor();
|
|
51
|
-
gl_Position = transformPosition(proj, view, vpos);`),A.fragment.include(
|
|
48
|
+
gl_Position = transformPosition(proj, view, vpos);`),A.fragment.include(i,S),_.uniforms.add(new j("opacity",e=>e.opacity)),_.main.add(L`discardBySlice(vpos);
|
|
52
49
|
vec3 normal = normalize(vnormal);
|
|
53
50
|
if (gl_FrontFacing == false) normal = -normal;
|
|
54
|
-
fragColor = vec4(vec3(0.5) + 0.5 * normal, vcolor.a * opacity);`);break;case 10:A.include(
|
|
51
|
+
fragColor = vec4(vec3(0.5) + 0.5 * normal, vcolor.a * opacity);`);break;case 10:A.include(a),I.include(u,S),B.add("vnormal","vec3"),I.main.add(L`ExtrudedVertex extrudedVertex = evaluateVertex();
|
|
55
52
|
vpos = calculateVPos(extrudedVertex);
|
|
56
|
-
gl_Position = transformPosition(proj, view, vpos);`),A.fragment.include(
|
|
57
|
-
calculateOcclusionAndOutputHighlight();`)}return A}const A=Object.freeze(Object.defineProperty({__proto__:null,build:
|
|
53
|
+
gl_Position = transformPosition(proj, view, vpos);`),A.fragment.include(i,S),A.include(t,S),_.main.add(L`discardBySlice(vpos);
|
|
54
|
+
calculateOcclusionAndOutputHighlight();`)}return A}const A=Object.freeze(Object.defineProperty({__proto__:null,build:S},Symbol.toStringTag,{value:"Module"}));export{A as P,S as b};
|