@arcgis/core 5.2.0-next.11 → 5.2.0-next.13
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/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{0b169bb1969f86232a1a.js → 35b3ff25f5fe24fe15e2.js} +1 -1
- package/assets/esri/core/workers/chunks/{c187bc997bad61b6c6e9.js → 47f21b65065558d583ca.js} +1 -1
- package/assets/esri/core/workers/chunks/{4a20f7a0700fd14a129f.js → 7dcf804e1918b94fa4e1.js} +3 -10
- package/assets/esri/core/workers/chunks/{8103d06f760a2c79773d.js → 87c2d4d58c2487324fb7.js} +12 -12
- package/assets/esri/core/workers/chunks/d2f47f21ce0b0ab4da17.js +262 -0
- package/assets/esri/core/workers/chunks/{f75295cdd5e84eb97d5a.js → e8d65900eefff1152207.js} +1 -1
- package/chunks/{ComponentShader.glsl.js → Component.glsl.js} +10 -10
- package/chunks/GlowBlur.glsl.js +5 -6
- package/chunks/LineMarker.glsl.js +27 -26
- package/chunks/MeasurementArrow.glsl.js +5 -4
- package/chunks/RibbonLine.glsl.js +1 -8
- package/chunks/Terrain.glsl.js +24 -26
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/package.json +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedTool2.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/{ComponentShader.glsl.js → Component.glsl.js} +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/Compositor.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/PathTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/MeasurementArrowTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +10 -10
- package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/alphaCutoff.glsl.js +1 -1
- package/views/SceneView.d.ts +1 -1
- package/webscene/support/AlphaCutoff.js +1 -1
- package/assets/esri/core/workers/chunks/b895674c0550826ecb28.js +0 -262
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2059],{92059(e,i,n){n.r(i),n.d(i,{build:()=>u.b,ribbonlineNumRoundJoinSubdivisions:()=>u.r}),n(
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2059],{92059(e,i,n){n.r(i),n.d(i,{build:()=>u.b,ribbonlineNumRoundJoinSubdivisions:()=>u.r}),n(34711),n(36782),n(84652),n(2923),n(28974),n(82094),n(63365),n(77949),n(77108),n(14314),n(71988),n(33094),n(20304),n(31821),n(58029),n(26934),n(54073),n(39122),n(14113);var u=n(32565)}}]);
|
|
@@ -1,9 +1,9 @@
|
|
|
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 a,isShadow as r}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 i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as t}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{OutputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{ReadDepth as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{computeFragmentNormals as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as w,addLightingGlobalFactor as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as b,addMainLightDirection as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRenderingParameters as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{ReadBaseColorTexture as x}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 S}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{BooleanDrawUniform as j}from"../views/3d/webgl-engine/core/shaderModules/BooleanDrawUniform.js";import{If as N,glsl as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{SnowCover as T}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{
|
|
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 a,isShadow as r}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 i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as t}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{OutputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{ReadDepth as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{computeFragmentNormals as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as w,addLightingGlobalFactor as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as b,addMainLightDirection as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRenderingParameters as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{ReadBaseColorTexture as x}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 S}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{BooleanDrawUniform as j}from"../views/3d/webgl-engine/core/shaderModules/BooleanDrawUniform.js";import{If as N,glsl as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{SnowCover as T}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{alphaCutoff as M}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as D}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getPlanetRadius as W,sphereDepthInterpolate as P}from"../views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js";import{ShaderBuilder as A}from"../views/webgl/ShaderBuilder.js";function F(F){const U=new A,{vertex:V,fragment:z}=U;U.include(s,F),U.include(n,F),U.include(t,F),U.include(i,F),U.include(e,F),U.include(O,F),z.include(l,F),U.include(x,F);const{output:B,pbrMode:E,hasNormalTexture:I,snowCover:G,receiveShadows:_,shadeNormals:H,spherical:k,sphericalSR:q,overlayEnabled:J,componentDataType:K,vertexDiscardMode:Q,renderOccluded:X,isGroundSlice:Y}=F,Z=1===E||2===E;Z&&(U.include(y,F),I&&U.include(h,F));const ee=r(B),oe=11===B,ae=ee&&1===K,re=W(F);J&&(z.include(w,F),U.include(S,F),V.include(C),V.uniforms.add(new j("useENUForGlobalOverlayUV",e=>e.useENUForGlobalOverlayUV)),z.uniforms.add(new j("useENUForGlobalOverlayUV",e=>e.useENUForGlobalOverlayUV)),V.constants.add("invRadius","float",1/re).code.add(`vec2 projectOverlay(vec3 pos) { return pos.xy ${N(k,"/ (1.0 + invRadius * pos.z)")}; }`));const le=J&&a(B)&&4===E;le&&(U.varyings.add("tbnTangent","vec3"),U.varyings.add("tbnBiTangent","vec3"),U.varyings.add("groundNormal","vec3"));const ie=0===Q,te=2===Q;if(U.include(L,F),U.include(o,F),V.include(M),V.main.add($`
|
|
3
3
|
bool castShadows;
|
|
4
4
|
vec4 externalColor = forwardExternalColor(castShadows);
|
|
5
5
|
${N(ae,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
|
|
6
|
-
${N(!ie,`{ if (externalColor.a ${te?">":"<="}
|
|
6
|
+
${N(!ie,`{ if (externalColor.a ${te?">":"<="} opacityCutoff) { gl_Position = vec4(vec3(1e38), 1.0); return; } }`)}
|
|
7
7
|
${N(oe,"externalColor.a = 1.0;")}
|
|
8
8
|
|
|
9
9
|
forwardPosition(readElevationOffset());
|
|
@@ -23,12 +23,12 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
23
23
|
tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
|
|
24
24
|
${N(J,N(k,"\n if (useENUForGlobalOverlayUV) {\n setOverlayVTC(projectOverlay(positionForDraping()));\n } else {\n vtcOverlay = vec4(0.0); // Definite assignment\n }\n ","setOverlayVTC(projectOverlay(positionForDraping()));"))}
|
|
25
25
|
|
|
26
|
-
if (externalColor.a <
|
|
26
|
+
if (externalColor.a < alphaCutoff) {
|
|
27
27
|
// Discard this vertex
|
|
28
28
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
`),a(B))return U.include(u,F),U.include(v,F),z.include(w,F),U.include(
|
|
31
|
+
`),a(B))return U.include(u,F),U.include(v,F),z.include(w,F),U.include(D,F),z.include(T,F),z.constants.add("pRadius","float",re).code.add($`
|
|
32
32
|
float evaluateShadow() {
|
|
33
33
|
return ${_?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
|
|
34
34
|
}
|
|
@@ -77,7 +77,7 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
77
77
|
vec4 overlayColor = getOverlayColor(ovColorTex, overlayUVs);
|
|
78
78
|
|
|
79
79
|
/* Early discard to only emit when we have overlay */
|
|
80
|
-
${N(X
|
|
80
|
+
${N(X,"if (overlayColor.a < alphaCutoff) { discard; }")}
|
|
81
81
|
`)}
|
|
82
82
|
|
|
83
83
|
vec4 externalColor;
|
|
@@ -134,15 +134,15 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
134
134
|
// un-gamma the ground color to mix in linear space
|
|
135
135
|
shadedColor = mix(shadedColor, waterColorNonLinear, waterColorLinear.w);
|
|
136
136
|
}`)}
|
|
137
|
-
`)),z.main.add(`\n ${N(Y,"if(rejectBySlice(vPositionWorldCameraRelative)) shadedColor.a *= groundSliceOpacity;")}\n\n outputColorHighlightOLID(applySlice(shadedColor, vPositionWorldCameraRelative), materialColor.rgb ${N(G,", snow")});\n `),F.sphereDepthInterpolate&&(U.include(
|
|
137
|
+
`)),z.main.add(`\n ${N(Y,"if(rejectBySlice(vPositionWorldCameraRelative)) shadedColor.a *= groundSliceOpacity;")}\n\n outputColorHighlightOLID(applySlice(shadedColor, vPositionWorldCameraRelative), materialColor.rgb ${N(G,", snow")});\n `),F.sphereDepthInterpolate&&(U.include(P,F),U.fragment.include(m),z.main.add($`vec3 worldRay = normalize(vPositionWorldCameraRelative);
|
|
138
138
|
vec3 viewRay = normalize(vPosition_view);
|
|
139
|
-
gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linearizeDepth(gl_FragCoord.z)));`)),U;const
|
|
139
|
+
gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linearizeDepth(gl_FragCoord.z)));`)),U;const ne=4===B,se=10===B,de=ee||8===B||9===B;return de&&U.include(d,F),ne&&U.include(v,F),J&&U.include(c,F),U.include(g,F),z.main.add($`
|
|
140
140
|
${N(!Y,"discardBySlice(vPositionWorldCameraRelative);")}
|
|
141
141
|
|
|
142
142
|
vec4 textureColor = readBaseColorTexture();
|
|
143
143
|
discardOrAdjustAlpha(textureColor);
|
|
144
144
|
|
|
145
|
-
${N(
|
|
146
|
-
${N(
|
|
145
|
+
${N(de,"outputDepth(linearDepth);")}
|
|
146
|
+
${N(ne,$`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
|
|
147
147
|
${N(oe,J?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
|
|
148
|
-
${N(
|
|
148
|
+
${N(se,N(J,$`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,$`calculateOcclusionAndOutputHighlight();`))}`),U}const U=Object.freeze(Object.defineProperty({__proto__:null,build:F},Symbol.toStringTag,{value:"Module"}));export{U as C,F as b};
|
package/chunks/GlowBlur.glsl.js
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{normalize as e}from"../core/arrayUtils.js";import{gauss as r}from"../core/mathUtils.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as
|
|
2
|
+
import{normalize as e}from"../core/arrayUtils.js";import{gauss as r}from"../core/mathUtils.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as s}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Gamma as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{Float2PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{If as a,glsl as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as d}from"../views/webgl/ShaderBuilder.js";class f extends u{constructor(){super(...arguments),this.blurRadius=0,this.level=0,this.inputScale=1,this.size=o()}}function m({glowStage:o,useFloatBlend:u}){const f=new d,m=f.fragment;f.include(s),m.include(i);const v=0===o;m.uniforms.add(new c("colorTexture",e=>e.input),new l("blurRadius",({blurRadius:e})=>e),new l("level",({level:e})=>e),new l("inputScale",({inputScale:e})=>u?1:e),new t("size",({size:e})=>e));const p=7;let w="float locations1D["+p+"] = float["+p+"](";for(let e=0;e<p;e++){w+=`${0===e?"":","} ${(e/(p-1)*2-1).toFixed(15)}`}w+=");";const g=2,b=new Array(p).fill(0).map((e,o)=>r(o-Math.floor(p/2),g));e(b);const h=b.reduce((e,r,o)=>`${e}${0===o?"":","} ${r.toFixed(15)}`,"float locations1DWeights["+p+"] = float["+p+"](")+");";return m.code.add(n`
|
|
3
3
|
${w}
|
|
4
4
|
${h}
|
|
5
5
|
|
|
6
6
|
vec3 blurUniformSamples() {
|
|
7
|
-
int textureLevel = int(${m?"level":"0.0"});
|
|
8
7
|
vec2 aspectCorrection = vec2(1.0, size.x / size.y);
|
|
9
8
|
|
|
10
|
-
${a(
|
|
9
|
+
${a(v,"float viewportScale = 1.0;","float viewportScale = 1.0 / pow(2.0, level);")}
|
|
11
10
|
vec2 uv = uv * viewportScale;
|
|
12
11
|
vec2 pixelCenterShift = 0.5 / size;
|
|
13
12
|
|
|
14
13
|
vec3 res = vec3(0.0);
|
|
15
14
|
for(int i = 0; i < ${n.int(p)}; ++i) {
|
|
16
|
-
float uv1D = locations1D[i] * viewportScale + ${
|
|
17
|
-
vec2 uvOffset = ${
|
|
15
|
+
float uv1D = locations1D[i] * viewportScale + ${v?"pixelCenterShift.x":"pixelCenterShift.y"};
|
|
16
|
+
vec2 uvOffset = ${v?"vec2(uv1D, 0.0)":"vec2(0.0, uv1D)"};
|
|
18
17
|
vec2 uvDistorted = uv + uvOffset * blurRadius * aspectCorrection;
|
|
19
18
|
vec3 sampleColor = texture(colorTexture, uvDistorted, -1.0).rgb * inputScale;
|
|
20
19
|
res += sampleColor * locations1DWeights[i];
|
|
21
20
|
}
|
|
22
21
|
return res;
|
|
23
22
|
}
|
|
24
|
-
`).main.add(n`fragColor = vec4(blurUniformSamples(), 0.0);`),
|
|
23
|
+
`).main.add(n`fragColor = vec4(blurUniformSamples(), 0.0);`),f}const v=Object.freeze(Object.defineProperty({__proto__:null,GlowBlurPassParameters:f,build:m},Symbol.toStringTag,{value:"Module"}));export{f as G,v as a,m as b};
|
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{markerTextureSize as e,markerSymbolSize as r,markerTipThicknessFactor as i}from"../views/3d/support/engineContent/marker.js";import{SliceDraw as o}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{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{MarkerSizing as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as c,NoPerspectiveRead as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as d,addViewNormal as v,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as w,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DPassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOLID as P}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as
|
|
2
|
+
import{markerTextureSize as e,markerSymbolSize as r,markerTipThicknessFactor as i}from"../views/3d/support/engineContent/marker.js";import{SliceDraw as o}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{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{MarkerSizing as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as c,NoPerspectiveRead as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as d,addViewNormal as v,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as w,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DPassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as b}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as P}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as z}from"../views/webgl/ShaderBuilder.js";function j(j){const L=new z,{space:C,anchor:k,hasTip:D,hasScreenSizePerspective:M}=j,$=2===C,W=1===C;L.attributes.add("position","vec3"),L.vertex.inputs.add("position",()=>"position"),L.include(t,j),L.include(n,j);const{vertex:O,fragment:U,varyings:N}=L;d(O,j),L.attributes.add("previousDelta","vec4"),L.attributes.add("uv0","vec2"),N.add("vColor","vec4"),N.add("vpos","vec3",{invariant:!0}),N.add("vUV","vec2"),N.add("vSize","float"),D&&N.add("vLineWidth","float"),O.uniforms.add(new h("nearFar",({camera:e})=>e.nearFar),new f("viewport",({camera:e})=>e.fullViewport)).code.add(w`vec4 projectAndScale(vec4 pos) {
|
|
3
3
|
vec4 posNdc = proj * pos;
|
|
4
4
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
5
5
|
return posNdc;
|
|
6
|
-
}`),
|
|
6
|
+
}`),O.code.add(w`void clip(vec4 pos, inout vec4 prev) {
|
|
7
7
|
float vnp = nearFar[0] * 0.99;
|
|
8
8
|
if (prev.z > -nearFar[0]) {
|
|
9
9
|
float interpolation = (-vnp - pos.z) / (prev.z - pos.z);
|
|
10
10
|
prev = mix(pos, prev, interpolation);
|
|
11
11
|
}
|
|
12
|
-
}`)
|
|
12
|
+
}`),$?(L.attributes.add("normal","vec3"),v(O),O.constants.add("tiltThreshold","float",.7),O.code.add(w`vec3 perpendicular(vec3 v) {
|
|
13
13
|
vec3 n = (viewNormal * vec4(normal.xyz, 1.0)).xyz;
|
|
14
14
|
vec3 n2 = cross(v, n);
|
|
15
15
|
vec3 forward = vec3(0.0, 0.0, 1.0);
|
|
16
16
|
float tiltDot = dot(forward, n);
|
|
17
17
|
return abs(tiltDot) < tiltThreshold ? n : n2;
|
|
18
|
-
}`)):
|
|
18
|
+
}`)):O.code.add(w`vec2 perpendicular(vec2 v) {
|
|
19
19
|
return vec2(v.y, -v.x);
|
|
20
|
-
}`);const
|
|
21
|
-
${
|
|
22
|
-
${
|
|
20
|
+
}`);const F=$?"vec3":"vec2";return O.code.add(w`
|
|
21
|
+
${F} normalizedSegment(${F} pos, ${F} prev) {
|
|
22
|
+
${F} segment = pos - prev;
|
|
23
23
|
float segmentLen = length(segment);
|
|
24
24
|
|
|
25
25
|
// normalize or zero if too short
|
|
26
|
-
return (segmentLen > 0.001) ? segment / segmentLen : ${
|
|
26
|
+
return (segmentLen > 0.001) ? segment / segmentLen : ${$?"vec3(0.0, 0.0, 0.0)":"vec2(0.0, 0.0)"};
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
${
|
|
30
|
-
${
|
|
29
|
+
${F} displace(${F} pos, ${F} prev, float displacementLen) {
|
|
30
|
+
${F} segment = normalizedSegment(pos, prev);
|
|
31
31
|
|
|
32
|
-
${
|
|
33
|
-
${
|
|
32
|
+
${F} displacementDirU = perpendicular(segment);
|
|
33
|
+
${F} displacementDirV = segment;
|
|
34
34
|
|
|
35
35
|
${1===k?"pos -= 0.5 * displacementLen * displacementDirV;":""}
|
|
36
36
|
|
|
37
37
|
return pos + displacementLen * (uv0.x * displacementDirU + uv0.y * displacementDirV);
|
|
38
38
|
}
|
|
39
|
-
`)
|
|
39
|
+
`),W&&(O.uniforms.add(new y("inverseProjectionMatrix",({camera:e})=>e.inverseProjectionMatrix)),O.code.add(w`vec3 inverseProject(vec4 posScreen) {
|
|
40
40
|
posScreen.xy = (posScreen.xy / viewport.zw) * posScreen.w;
|
|
41
41
|
return (inverseProjectionMatrix * posScreen).xyz;
|
|
42
|
-
}`),
|
|
42
|
+
}`),O.code.add(w`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
|
|
43
43
|
float cos = dot(rayDir, planeNormal);
|
|
44
44
|
float t = dot(planeOrigin, planeNormal) / cos;
|
|
45
45
|
intersection = t * rayDir;
|
|
46
46
|
return abs(cos) > 0.001 && t > 0.0;
|
|
47
|
-
}`),
|
|
47
|
+
}`),O.uniforms.add(new u("perScreenPixelRatio",({camera:e})=>e.perScreenPixelRatio)),O.code.add(w`
|
|
48
48
|
vec4 toFront(vec4 displacedPosScreen, vec3 posLeft, vec3 posRight, vec3 prev, float lineWidth) {
|
|
49
49
|
// Project displaced position back to camera space
|
|
50
50
|
vec3 displacedPos = inverseProject(displacedPosScreen);
|
|
@@ -54,7 +54,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
54
54
|
vec3 planeNormal = normalize(cross(posLeft - posRight, posLeft - prev));
|
|
55
55
|
vec3 planeOrigin = posLeft;
|
|
56
56
|
|
|
57
|
-
${S(
|
|
57
|
+
${S(j.hasCap,"if(prev.z > posLeft.z) {\n vec2 diff = posLeft.xy - posRight.xy;\n planeOrigin.xy += perpendicular(diff) / 2.0;\n }")};
|
|
58
58
|
|
|
59
59
|
// Move the plane towards the camera by a margin dependent on the line width (approximated in world space). This tolerance corrects for the
|
|
60
60
|
// non-planarity in most cases, but sharp joins can place the prev vertices at arbitrary positions so markers can still clip.
|
|
@@ -73,7 +73,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
73
73
|
displacedPos *= minDepth / length(displacedPos);
|
|
74
74
|
return vec4(displacedPos.xyz, 1.0);
|
|
75
75
|
}
|
|
76
|
-
`)),m(
|
|
76
|
+
`)),m(O),L.include(c),O.main.add(w`
|
|
77
77
|
// Check for special value of uv0.y which is used by the Renderer when graphics
|
|
78
78
|
// are removed before the VBO is recompacted. If this is the case, then we just
|
|
79
79
|
// project outside of clip space.
|
|
@@ -90,7 +90,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
90
90
|
|
|
91
91
|
clip(pos, prev);
|
|
92
92
|
|
|
93
|
-
${
|
|
93
|
+
${$?w`${S(j.hideOnShortSegments,w`
|
|
94
94
|
if (areWorldMarkersHidden(pos.xyz, prev.xyz)) {
|
|
95
95
|
gl_Position = ${s};
|
|
96
96
|
return;
|
|
@@ -102,7 +102,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
102
102
|
vec4 displacedPosScreen = posScreen;
|
|
103
103
|
|
|
104
104
|
displacedPosScreen.xy = displace(posScreen.xy, prevScreen.xy, screenMarkerSize);
|
|
105
|
-
${S(
|
|
105
|
+
${S(W,w`
|
|
106
106
|
vec2 displacementDirU = perpendicular(normalizedSegment(posScreen.xy, prevScreen.xy));
|
|
107
107
|
|
|
108
108
|
// We need three points of the ribbon line in camera space to calculate the plane it lies in
|
|
@@ -117,7 +117,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
117
117
|
|
|
118
118
|
// Convert texture coordinate into [0,1]
|
|
119
119
|
vUV = (uv0 + 1.0) / 2.0;
|
|
120
|
-
${S(
|
|
120
|
+
${S(!$,"vUV = noPerspectiveWrite(vUV, displacedPosScreen.w);")}
|
|
121
121
|
${S(D,"vLineWidth = noPerspectiveWrite(lineWidth, displacedPosScreen.w);")}
|
|
122
122
|
|
|
123
123
|
vSize = screenMarkerSize;
|
|
@@ -127,13 +127,13 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
127
127
|
vpos = pos.xyz;
|
|
128
128
|
|
|
129
129
|
gl_Position = displacedPosScreen;
|
|
130
|
-
}`),
|
|
130
|
+
}`),U.include(o,j),L.include(P,j),U.include(l),U.include(b),U.uniforms.add(new g("intrinsicColor",({color:e})=>e),new x("tex",({markerTexture:e})=>e)).constants.add("texelSize","float",1/e).code.add(w`float markerAlpha(vec2 samplePos) {
|
|
131
131
|
samplePos += vec2(0.5, -0.5) * texelSize;
|
|
132
132
|
float sdf = texture(tex, samplePos).r;
|
|
133
133
|
float pixelDistance = sdf * vSize;
|
|
134
134
|
pixelDistance -= 0.5;
|
|
135
135
|
return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
136
|
-
}`),D&&(
|
|
136
|
+
}`),D&&(L.include(p),U.constants.add("relativeMarkerSize","float",r/e).constants.add("relativeTipLineWidth","float",i).code.add(w`
|
|
137
137
|
float tipAlpha(vec2 samplePos) {
|
|
138
138
|
// Convert coordinates s.t. they are in pixels and relative to the tip of an arrow marker
|
|
139
139
|
samplePos -= vec2(0.5, 0.5 + 0.5 * relativeMarkerSize);
|
|
@@ -142,17 +142,18 @@ return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
|
142
142
|
float halfMarkerSize = 0.5 * relativeMarkerSize * vSize;
|
|
143
143
|
float halfTipLineWidth = 0.5 * max(1.0, relativeTipLineWidth * noPerspectiveRead(vLineWidth));
|
|
144
144
|
|
|
145
|
-
${S(
|
|
145
|
+
${S($,"halfTipLineWidth *= fwidth(samplePos.y);")}
|
|
146
146
|
|
|
147
147
|
float distance = max(abs(samplePos.x) - halfMarkerSize, abs(samplePos.y) - halfTipLineWidth);
|
|
148
148
|
return clamp(0.5 - distance, 0.0, 1.0);
|
|
149
149
|
}
|
|
150
|
-
`)),
|
|
150
|
+
`)),L.include(a,j),L.include(p),U.main.add(w`
|
|
151
151
|
discardBySlice(vpos);
|
|
152
152
|
|
|
153
153
|
vec4 finalColor = intrinsicColor * vColor;
|
|
154
154
|
|
|
155
155
|
// Cancel out perspective correct interpolation if in screen space or draped
|
|
156
|
-
vec2 samplePos = ${S(
|
|
156
|
+
vec2 samplePos = ${S(!$,"noPerspectiveRead(vUV)","vUV")};
|
|
157
157
|
finalColor.a *= ${D?"max(markerAlpha(samplePos), tipAlpha(samplePos))":"markerAlpha(samplePos)"};
|
|
158
|
-
|
|
158
|
+
if(finalColor.a < alphaCutoff) discard; // We also want to discard in the opaque color pass
|
|
159
|
+
outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),L}const L=Object.freeze(Object.defineProperty({__proto__:null,build:j},Symbol.toStringTag,{value:"Module"}));export{L,j as b};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{addProjViewLocalOrigin as e}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{
|
|
2
|
+
import{addProjViewLocalOrigin as e}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as i}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as n}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";function s(s){const d=new l,{vertex:a,fragment:c}=d;d.include(n,s),e(a,s),a.uniforms.add(new o("width",e=>e.width)),d.attributes.add("position","vec3"),d.attributes.add("normal","vec3"),d.attributes.add("uv0","vec2"),d.attributes.add("length","float"),d.varyings.add("vtc","vec2"),d.varyings.add("vlength","float"),d.varyings.add("vradius","float"),a.main.add(r`vec3 bitangent = normal;
|
|
3
3
|
vtc = uv0;
|
|
4
4
|
vlength = length;
|
|
5
5
|
vradius = 0.5 * width;
|
|
6
6
|
vec4 pos = view * vec4(position + vradius * bitangent * uv0.y, 1.0);
|
|
7
|
-
gl_Position = proj * pos;`),
|
|
7
|
+
gl_Position = proj * pos;`),c.include(i),c.uniforms.add(new o("outlineSize",e=>e.outlineSize),new t("outlineColor",e=>e.outlineColor),new o("stripeLength",e=>e.stripeLength),new t("stripeEvenColor",e=>e.stripeEvenColor),new t("stripeOddColor",e=>e.stripeOddColor));const v=1/Math.sqrt(2);return c.code.add(r`
|
|
8
8
|
const float INV_SQRT2 = ${r.float(v)};
|
|
9
9
|
|
|
10
10
|
vec4 arrowColor(vec2 tc, float len) {
|
|
@@ -19,6 +19,7 @@ gl_Position = proj * pos;`),a.uniforms.add(new o("outlineSize",e=>e.outlineSize)
|
|
|
19
19
|
return outlineColor;
|
|
20
20
|
}
|
|
21
21
|
return fract(0.5 / stripeLength * tc.x * vradius) >= 0.5 ? stripeOddColor : stripeEvenColor;
|
|
22
|
-
}`),
|
|
22
|
+
}`),c.main.add(r`vec2 ntc = vec2(vtc.x / vradius, vtc.y);
|
|
23
23
|
vec4 color = arrowColor(ntc, vlength / vradius);
|
|
24
|
-
|
|
24
|
+
if(color.a < alphaCutoff) discard;
|
|
25
|
+
outputColorHighlightOLID(color, color.rgb);`),d}const d=Object.freeze(Object.defineProperty({__proto__:null,build:s},Symbol.toStringTag,{value:"Module"}));export{d as M,s as b};
|
|
@@ -313,11 +313,4 @@ vec2 joinCenterSDFs = noPerspectiveRead(vJoinCenterLineSDFs);
|
|
|
313
313
|
float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joinCenterSDFs.y);
|
|
314
314
|
float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
|
|
315
315
|
feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
|
|
316
|
-
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),_&&W.main.add(D`
|
|
317
|
-
finalColor = animate(finalColor);
|
|
318
|
-
|
|
319
|
-
${u(11!==V,D`
|
|
320
|
-
if (finalColor.a <= alphaCutoff) {
|
|
321
|
-
discard;
|
|
322
|
-
}`)}
|
|
323
|
-
`)),W.main.add(D`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const z=Object.freeze(Object.defineProperty({__proto__:null,build:C,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{z as R,C as b,P as r};
|
|
316
|
+
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),_&&W.main.add("finalColor = animate(finalColor);")),W.main.add(D`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const z=Object.freeze(Object.defineProperty({__proto__:null,build:C,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{z as R,C as b,P as r};
|
package/chunks/Terrain.glsl.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as r,set as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as g}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 u}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as f,addLightingGlobalFactor as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as b,addMainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDrawFragment as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as L}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as j,TerrainTexture as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as M,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as
|
|
2
|
+
import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as r,set as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as g}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 u}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as f,addLightingGlobalFactor as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as b,addMainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDrawFragment as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as L}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as j,TerrainTexture as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as M,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as $,If as z}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{alphaCutoff as F}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as _}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as V}from"../views/webgl/ShaderBuilder.js";class N extends j{constructor(){super(...arguments),this.useStencil=!1}}function W(o){const a=new V,{attributes:j,vertex:N,fragment:W,varyings:H}=a;j.add("position","vec3"),a.include(d,o),a.include(c,o);const U=()=>{a.include(C,o),N.code.add($`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
|
-
}`)};T(N,o),a.include(s),W.include(F);const{output:E,overlayMode:I,tileBorders:q,transparencyMode:R,overlayEnabled:G}=o,
|
|
7
|
+
}`)};T(N,o),a.include(s),W.include(F);const{output:E,overlayMode:I,tileBorders:q,transparencyMode:R,overlayEnabled:G,renderOccluded:J}=o,K=2===R||3===R,Q=0!==o.pbrMode,X=G&&K;switch(E){case 0:case 1:case 2:{const l=0!==E||J?"discard":"";a.include(x,o),W.include(w,o),G&&a.include(L,o);const t=2===I;t&&a.include(m,o),H.add("vnormal","vec3"),H.add("vpos","vec3",{invariant:!0}),H.add("vup","vec3"),U(),N.main.add($`
|
|
8
8
|
vpos = position;
|
|
9
9
|
vec3 positionWorld = position + localOrigin;
|
|
10
10
|
gl_Position = transformPosition(proj, view, vpos);
|
|
11
11
|
vnormal = getNormal();
|
|
12
12
|
vup = getLocalUp(position, localOrigin);
|
|
13
|
-
${
|
|
13
|
+
${z(t,$`forwardVertexTangent(vnormal);`)}
|
|
14
14
|
|
|
15
15
|
forwardTextureCoordinatesWithTransform(uv0);
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
-
forwardLinearDepthToReadShadowMap();`),a.include(O,o),W.include(n,o),W.include(w,o),W.include(p,o),a.include(_,o),P(W,o),f(W),h(W),W.uniforms.add(N.uniforms.get("localOrigin"),new S("viewDirection",({camera:e})=>r(B,i(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),
|
|
16
|
+
${z(G,"setOverlayVTC(uv0);")}
|
|
17
|
+
${z(q,"forwardTextureCoordinates();")}
|
|
18
|
+
forwardLinearDepthToReadShadowMap();`),a.include(O,o),W.include(n,o),W.include(w,o),W.include(p,o),a.include(_,o),P(W,o),f(W),h(W),W.uniforms.add(N.uniforms.get("localOrigin"),new S("viewDirection",({camera:e})=>r(B,i(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),t&&W.uniforms.add(new A("ovWaterTex",e=>e.overlay?.getTexture(3)),new D("view",({origin:o},{camera:r})=>e(k,r.viewMatrix,o))),b(W),y(W),W.main.add($`
|
|
19
19
|
vec3 normal = normalize(vnormal);
|
|
20
20
|
float lightAlignment = dot(normal, mainLightDirection);
|
|
21
21
|
|
|
@@ -24,15 +24,13 @@ return normalize(n);
|
|
|
24
24
|
float ssao = evaluateAmbientOcclusionInverse();
|
|
25
25
|
vec4 tileColor = getTileColor();
|
|
26
26
|
|
|
27
|
-
${
|
|
27
|
+
${z(G,$`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
|
|
28
28
|
vec4 overlayColor = overlayOpacity * overlayColorOpaque;
|
|
29
|
-
${
|
|
29
|
+
${z(K,`if (overlayColor.a < alphaCutoff) ${l};`)}
|
|
30
30
|
vec4 groundColor = tileColor;
|
|
31
31
|
tileColor = tileColor * (1.0 - overlayColor.a) + overlayColor;`)}
|
|
32
32
|
|
|
33
|
-
if(tileColor.a < alphaCutoff) {
|
|
34
|
-
discard;
|
|
35
|
-
}
|
|
33
|
+
if(tileColor.a < alphaCutoff) ${l};
|
|
36
34
|
|
|
37
35
|
bool sliced = rejectBySlice(vpos);
|
|
38
36
|
if (sliced) {
|
|
@@ -44,8 +42,8 @@ return normalize(n);
|
|
|
44
42
|
// heuristic shading function used in the old terrain, now used to add ambient lighting
|
|
45
43
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
46
44
|
|
|
47
|
-
${
|
|
48
|
-
${
|
|
45
|
+
${Q?$`vec4 finalColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:$`vec4 finalColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
|
|
46
|
+
${z(t,$`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
|
|
49
47
|
float waterNormalLength = length(overlayWaterMask);
|
|
50
48
|
if (waterNormalLength > 0.95) {
|
|
51
49
|
mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, vnormal);
|
|
@@ -57,25 +55,25 @@ return normalize(n);
|
|
|
57
55
|
// un-gamma the ground color to mix in linear space
|
|
58
56
|
finalColor = mix(groundColor, waterColorNonLinear, waterColorLinear.w) * opacity;
|
|
59
57
|
}`)}
|
|
60
|
-
${
|
|
58
|
+
${z(q,$`vec2 dVuv = fwidth(vuv0);
|
|
61
59
|
vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
|
|
62
60
|
float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
|
|
63
61
|
finalColor = mix(finalColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
|
|
64
|
-
outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:
|
|
65
|
-
${
|
|
66
|
-
gl_Position = transformPosition(proj, view, position);`),W.main.add(`${
|
|
67
|
-
${
|
|
62
|
+
outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:X&&a.include(L,o),N.main.add($`
|
|
63
|
+
${z(X,"setOverlayVTC(uv0);")}
|
|
64
|
+
gl_Position = transformPosition(proj, view, position);`),W.main.add(`${z(X,"if (getCombinedOverlayColor().a < alphaCutoff) discard;")}`);break;case 5:case 6:case 7:case 8:case 9:a.include(g,o),l(a),t(a),N.main.add($`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),W.main.add($`outputDepth(linearDepth);`);break;case 4:X&&a.include(L,o),H.add("vnormal","vec3"),M(N),U(),N.main.add($`
|
|
65
|
+
${z(X,"setOverlayVTC(uv0);")}
|
|
68
66
|
gl_Position = transformPosition(proj, view, position);
|
|
69
|
-
vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),W.main.add(
|
|
70
|
-
${
|
|
67
|
+
vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),W.main.add($`
|
|
68
|
+
${z(X,"if (getCombinedOverlayColor().a < alphaCutoff) discard;")}
|
|
71
69
|
vec3 normal = normalize(vnormal);
|
|
72
70
|
if (gl_FrontFacing == false) {
|
|
73
71
|
normal = -normal;
|
|
74
72
|
}
|
|
75
|
-
fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 10:G&&(a.include(L,o),a.include(u,o)),N.main.add(
|
|
76
|
-
${
|
|
77
|
-
gl_Position = transformPosition(proj, view, position);`),a.include(v,o),W.main.add(
|
|
78
|
-
${
|
|
73
|
+
fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 10:G&&(a.include(L,o),a.include(u,o)),N.main.add($`
|
|
74
|
+
${z(G,"setOverlayVTC(uv0);")}
|
|
75
|
+
gl_Position = transformPosition(proj, view, position);`),a.include(v,o),W.main.add($`
|
|
76
|
+
${z(G,$`
|
|
79
77
|
calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,"calculateOcclusionAndOutputHighlight();")}
|
|
80
|
-
`);break;case 11:if(G)a.include(L,o),N.main.add(
|
|
81
|
-
setOverlayVTC(uv0);`),W.main.add(
|
|
78
|
+
`);break;case 11:if(G)a.include(L,o),N.main.add($`gl_Position = transformPosition(proj, view, position);
|
|
79
|
+
setOverlayVTC(uv0);`),W.main.add($`fragColor = getOverlayColorTexel();`);else{const e=0===R;N.main.add($`${z(e,"gl_Position = transformPosition(proj, view, position);")}`),W.main.add($`fragColor = vec4(0.0);`)}}return a}const k=o(),B=a(),H=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:N,build:W},Symbol.toStringTag,{value:"Module"}));export{N as T,H as a,W as b};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.13";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.2.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.2.0-next.13",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
|
package/package.json
CHANGED
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const c="20260609",e="49fe3dc2c4746b0a7e65be892a362c2fecf132b4";export{c as buildDate,e as commitHash};
|