@arcgis/core 4.24.0-next.20220401 → 4.24.0-next.20220404
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/{c665e9b7d09fe516f138.js → 2fe10c5c01056babeae5.js} +1 -1
- package/assets/esri/core/workers/chunks/{8771296b537f366596c4.js → 37aa4532e25d54055e40.js} +54 -54
- package/assets/esri/core/workers/chunks/528033aa0d663b4d41bf.js +1 -0
- package/assets/esri/core/workers/chunks/{0e29250c24a3a7b1ce13.js → 6de5a790c14f04c6c302.js} +1 -1
- package/assets/esri/core/workers/chunks/b1188ca77b975c6a7d92.js +1 -0
- package/chunks/BlendLayers.glsl.js +1 -1
- package/chunks/DefaultMaterial.glsl.js +26 -26
- package/chunks/HUDMaterial.glsl.js +37 -37
- package/chunks/HighlightDownsample.glsl.js +1 -1
- package/chunks/ImageMaterial.glsl.js +10 -10
- package/chunks/LineMarker.glsl.js +75 -32
- package/chunks/RealisticTree.glsl.js +26 -26
- package/chunks/SMAA.glsl.js +2 -2
- package/chunks/SSAO.glsl.js +2 -2
- package/chunks/SimpleAtmosphere.glsl.js +10 -10
- package/chunks/TextureOnly.glsl.js +2 -2
- package/core/accessorSupport/Property.js +1 -1
- package/interfaces.d.ts +25 -7
- package/package.json +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/dotDensity.js +1 -1
- package/smartMapping/renderers/heatmap.js +1 -1
- package/smartMapping/renderers/location.js +1 -1
- package/smartMapping/renderers/predominance.js +1 -1
- package/smartMapping/renderers/relationship.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/symbology/color.js +1 -1
- package/smartMapping/symbology/dotDensity.js +1 -1
- package/smartMapping/symbology/flow.js +1 -1
- package/smartMapping/symbology/heatmap.js +1 -1
- package/smartMapping/symbology/location.js +1 -1
- package/smartMapping/symbology/predominance.js +1 -1
- package/smartMapping/symbology/relationship.js +1 -1
- package/smartMapping/symbology/size.js +1 -1
- package/smartMapping/symbology/type.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/flow/BrushFlow.js +1 -1
- package/views/2d/engine/imagery/BrushRasterBitmap.js +1 -1
- package/views/2d/engine/imagery/BrushVectorField.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/brushes/BrushBitmap.js +1 -1
- package/views/2d/engine/webgl/brushes/BrushClip.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushInfo.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLGeometryBrushFill.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLGeometryBrushLabel.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLGeometryBrushLine.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLGeometryBrushMarker.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLGeometryBrushText.js +1 -1
- package/views/2d/engine/webgl/effects/post-processing/EffectManager.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/PanoramicAtmosphere.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
- package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.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/material/MaterialBase.js +1 -1
- package/views/3d/webgl-engine/core/material/RenderTexture.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +12 -12
- package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +7 -7
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +4 -9
- package/views/3d/webgl-engine/core/shaderModules/BooleanUniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Float2Uniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Float4Uniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Float4sUniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/FloatUniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/FloatsUniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/IntegerUniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Matrix3Uniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Uniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/BindType.js +1 -1
- package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/Program.js +1 -1
- package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/parts/ScreenshotManager.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/DefaultMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechnique.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/TerrainTechniqueConfiguration.js +1 -1
- package/views/MapView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/views/support/screenshotUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/assets/esri/core/workers/chunks/5682039666f874836451.js +0 -1
- package/assets/esri/core/workers/chunks/79bdb26244ec7b4472fe.js +0 -1
- package/chunks/color.js +0 -5
- package/chunks/dotDensity.js +0 -5
- package/chunks/heatmap.js +0 -5
- package/chunks/location.js +0 -5
- package/chunks/predominance.js +0 -5
- package/chunks/relationship.js +0 -5
- package/chunks/size.js +0 -5
- package/chunks/type.js +0 -5
- package/renderers/smartMapping/creators/color.js +0 -5
- package/renderers/smartMapping/creators/dotDensity.js +0 -5
- package/renderers/smartMapping/creators/heatmap.js +0 -5
- package/renderers/smartMapping/creators/location.js +0 -5
- package/renderers/smartMapping/creators/opacity.js +0 -5
- package/renderers/smartMapping/creators/predominance.js +0 -5
- package/renderers/smartMapping/creators/relationship.js +0 -5
- package/renderers/smartMapping/creators/size.js +0 -5
- package/renderers/smartMapping/creators/support/utils.js +0 -5
- package/renderers/smartMapping/creators/type.js +0 -5
- package/renderers/smartMapping/creators/univariateColorSize.js +0 -5
- package/renderers/smartMapping/heuristics/scaleRange.js +0 -5
- package/renderers/smartMapping/heuristics/sizeRange.js +0 -5
- package/renderers/smartMapping/statistics/classBreaks.js +0 -5
- package/renderers/smartMapping/statistics/heatmapStatistics.js +0 -5
- package/renderers/smartMapping/statistics/histogram.js +0 -5
- package/renderers/smartMapping/statistics/predominantCategories.js +0 -5
- package/renderers/smartMapping/statistics/summaryStatistics.js +0 -5
- package/renderers/smartMapping/statistics/summaryStatisticsForAge.js +0 -5
- package/renderers/smartMapping/statistics/support/ageUtils.js +0 -5
- package/renderers/smartMapping/statistics/uniqueValues.js +0 -5
- package/renderers/smartMapping/symbology/color.js +0 -5
- package/renderers/smartMapping/symbology/dotDensity.js +0 -5
- package/renderers/smartMapping/symbology/heatmap.js +0 -5
- package/renderers/smartMapping/symbology/location.js +0 -5
- package/renderers/smartMapping/symbology/predominance.js +0 -5
- package/renderers/smartMapping/symbology/relationship.js +0 -5
- package/renderers/smartMapping/symbology/size.js +0 -5
- package/renderers/smartMapping/symbology/support/colorRamps.js +0 -5
- package/renderers/smartMapping/symbology/support/utils.js +0 -5
- package/renderers/smartMapping/symbology/type.js +0 -5
|
@@ -4,7 +4,7 @@ See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
|
4
4
|
*/
|
|
5
5
|
import{a as e}from"./vec2f64.js";import{Float2Uniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float2Uniform.js";import{NoParameters as o,glsl as i}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as t}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";import{BindType as n}from"../views/3d/webgl-engine/core/shaderTechnique/BindType.js";import{VertexAttribute as s}from"../views/3d/webgl-engine/lib/VertexAttribute.js";class d extends o{constructor(){super(...arguments),this.invFramebufferDim=e()}}function m(){const e=new t,{vertex:o,fragment:d}=e,m=o.code,l=d.code;return e.attributes.add(s.POSITION,"vec2"),m.add(i`void main() {
|
|
6
6
|
gl_Position = vec4(vec2(1.0) - position * 2.0, 0.0, 1.0);
|
|
7
|
-
}`),
|
|
7
|
+
}`),d.uniforms.add(new a("tex",n.Draw,(e=>e.inputTexture))),d.uniforms.add(new r("invFramebufferDim",n.Draw,(e=>e.invFramebufferDim))),l.add(i`void main() {
|
|
8
8
|
vec2 coord = gl_FragCoord.xy * invFramebufferDim;
|
|
9
9
|
vec4 value = texture2D(tex, coord);
|
|
10
10
|
float mx = floor(max(value.g, value.b));
|
|
@@ -2,36 +2,36 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{isSome as e}from"../core/maybe.js";import{O as r}from"./vec2f64.js";import{ShaderOutput as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutputOptions.js";import{Slice 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{multipassTerrainTest as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{defaultMaskAlphaCutoff as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaDiscard.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2Uniform as n}from"../views/3d/webgl-engine/core/shaderModules/Float2Uniform.js";import{FloatUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as p}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";import{BindType as u}from"../views/3d/webgl-engine/core/shaderTechnique/BindType.js";import{TransparencyPassType as v}from"../views/3d/webgl-engine/lib/basicInterfaces.js";import{VertexAttribute as f}from"../views/3d/webgl-engine/lib/VertexAttribute.js";function w(w){const h=new p;l(h,w),h.include(a),h.attributes.add(f.POSITION,"vec3"),h.attributes.add(f.UV0,"vec2"),h.varyings.add("vpos","vec3"),w.hasMultipassTerrain&&h.varyings.add("depth","float");const{vertex:b,fragment:y}=h;return b.uniforms.add(new n("textureCoordinateScaleFactor",u.Pass,(o=>e(o.texture)&&e(o.texture.descriptor.textureCoordinateScaleFactor)?o.texture.descriptor.textureCoordinateScaleFactor:r))),b.code.add(c`
|
|
6
6
|
void main(void) {
|
|
7
7
|
vpos = position;
|
|
8
|
-
${
|
|
8
|
+
${w.hasMultipassTerrain?"depth = (view * vec4(vpos, 1.0)).z;":""}
|
|
9
9
|
vTexCoord = uv0 * textureCoordinateScaleFactor;
|
|
10
10
|
gl_Position = transformPosition(proj, view, vpos);
|
|
11
11
|
}
|
|
12
|
-
`),
|
|
12
|
+
`),h.include(i,w),h.include(s,w),y.uniforms.add([new m("tex",u.Pass,(e=>e.texture)),new g("opacity",u.Pass,(e=>e.opacity))]),h.varyings.add("vTexCoord","vec2"),w.output===o.Alpha?y.code.add(c`
|
|
13
13
|
void main() {
|
|
14
14
|
discardBySlice(vpos);
|
|
15
|
-
${
|
|
15
|
+
${w.hasMultipassTerrain?"terrainDepthTest(gl_FragCoord, depth);":""}
|
|
16
16
|
|
|
17
17
|
float alpha = texture2D(tex, vTexCoord).a * opacity;
|
|
18
|
-
if (alpha < ${
|
|
18
|
+
if (alpha < ${c.float(t)}) {
|
|
19
19
|
discard;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
gl_FragColor = vec4(alpha);
|
|
23
23
|
}
|
|
24
|
-
`):(
|
|
24
|
+
`):(y.include(d),y.code.add(c`
|
|
25
25
|
void main() {
|
|
26
26
|
discardBySlice(vpos);
|
|
27
|
-
${
|
|
27
|
+
${w.hasMultipassTerrain?"terrainDepthTest(gl_FragCoord, depth);":""}
|
|
28
28
|
gl_FragColor = texture2D(tex, vTexCoord) * opacity;
|
|
29
29
|
|
|
30
|
-
if (gl_FragColor.a < ${
|
|
30
|
+
if (gl_FragColor.a < ${c.float(t)}) {
|
|
31
31
|
discard;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
gl_FragColor = highlightSlice(gl_FragColor, vpos);
|
|
35
|
-
${
|
|
35
|
+
${w.transparencyPassType===v.Color?"gl_FragColor = premultiplyAlpha(gl_FragColor);":""}
|
|
36
36
|
}
|
|
37
|
-
`)),
|
|
37
|
+
`)),h}const h=Object.freeze(Object.defineProperty({__proto__:null,build:w},Symbol.toStringTag,{value:"Module"}));export{h as I,w as b};
|
|
@@ -2,29 +2,56 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{MARKER_TEXTURE_SIZE as e,MARKER_THICKNESS as r}from"../views/3d/layers/support/markerUtils.js";import{ShaderOutput as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutputOptions.js";import{Slice as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as
|
|
5
|
+
import{MARKER_TEXTURE_SIZE as e,MARKER_THICKNESS as r}from"../views/3d/layers/support/markerUtils.js";import{ShaderOutput as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutputOptions.js";import{Slice as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputDepth as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{multipassTerrainTest as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{symbolAlphaCutoff as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaDiscard.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{RgbaFloatEncoding as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{addProjViewLocalOrigin as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2Uniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2Uniform.js";import{Float4Uniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4Uniform.js";import{FloatUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatUniform.js";import{glsl as m}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{Matrix4Uniform as f}from"../views/3d/webgl-engine/core/shaderModules/Matrix4Uniform.js";import{ShaderBuilder as h}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";import{BindType as w}from"../views/3d/webgl-engine/core/shaderTechnique/BindType.js";import{TransparencyPassType as y}from"../views/3d/webgl-engine/lib/basicInterfaces.js";import{VertexAttribute as b}from"../views/3d/webgl-engine/lib/VertexAttribute.js";function x(x){const P=new h;P.include(a,x),x.output===o.Depth&&P.include(t,x);const{vertex:S,fragment:j}=P;return j.include(c),p(P,x),P.attributes.add(b.POSITION,"vec3"),P.attributes.add(b.UV0,"vec2"),P.attributes.add(b.AUXPOS1,"vec3"),P.varyings.add("vColor","vec4"),P.varyings.add("vpos","vec3"),P.varyings.add("vUV","vec2"),P.varyings.add("vSize","float"),P.varyings.add("linearDepth","float"),x.hasMultipassTerrain&&P.varyings.add("depth","float"),S.code.add(m`#define PERPENDICULAR(v) vec2(v.y, -v.x)
|
|
6
6
|
float interp(float ncp, vec4 a, vec4 b) {
|
|
7
7
|
return (-ncp - a.z) / (b.z - a.z);
|
|
8
|
-
}`),
|
|
8
|
+
}`),S.uniforms.add([new d("nearFar",w.Pass,((e,r)=>r.camera.nearFar)),new v("viewport",w.Pass,((e,r)=>r.camera.fullViewport))]),S.code.add(m`vec4 projectAndScale(vec4 pos) {
|
|
9
9
|
vec4 posNdc = proj * pos;
|
|
10
10
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
11
11
|
return posNdc;
|
|
12
|
-
}`),
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
}`),S.code.add(m`void clip(vec4 pos, inout vec4 prev) {
|
|
13
|
+
float vnp = nearFar[0] * 0.99;
|
|
14
|
+
if (prev.z > -nearFar[0]) {
|
|
15
|
+
prev = mix(pos, prev, interp(vnp, pos, prev));
|
|
16
|
+
}
|
|
17
|
+
}`),x.draped||(S.uniforms.add(new f("inverseProjectionMatrix",w.Pass,((e,r)=>r.camera.inverseProjectionMatrix))),S.code.add(m`vec3 inverseProject(vec4 posScreen) {
|
|
18
|
+
posScreen.xy = (posScreen.xy / viewport.zw) * posScreen.w;
|
|
19
|
+
return (inverseProjectionMatrix * posScreen).xyz;
|
|
20
|
+
}`),S.code.add(m`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
|
|
21
|
+
float cos = dot(rayDir, planeNormal);
|
|
22
|
+
float t = dot(planeOrigin, planeNormal) / cos;
|
|
23
|
+
intersection = t * rayDir;
|
|
24
|
+
return abs(cos) > 0.001 && t > 0.0;
|
|
25
|
+
}`),S.uniforms.add(new g("perScreenPixelRatio",w.Pass,((e,r)=>r.camera.perScreenPixelRatio))),S.code.add(m`
|
|
26
|
+
vec4 toFront(vec4 displacedPosScreen, vec3 posLeft, vec3 posRight, vec3 prev, float lineWidth) {
|
|
27
|
+
// Project displaced position back to camera space
|
|
28
|
+
vec3 displacedPos = inverseProject(displacedPosScreen);
|
|
29
|
+
|
|
30
|
+
// Calculate the plane that we want the marker to lie in. Note that this will always be an approximation since ribbon lines are generally
|
|
31
|
+
// not planar and we do not know the actual position of the displaced prev vertices (they are offset in screen space, too).
|
|
32
|
+
vec3 planeNormal = normalize(cross(posLeft - posRight, posLeft - prev));
|
|
33
|
+
vec3 planeOrigin = posLeft;
|
|
34
|
+
|
|
35
|
+
${x.hasCap?"\n if(prev.z > posLeft.z) {\n vec2 diff = posLeft.xy - posRight.xy;\n planeOrigin.xy += PERPENDICULAR(diff) / 2.0;\n }\n ":""};
|
|
36
|
+
|
|
37
|
+
// Move the plane towards the camera by a margin dependent on the line width (approximated in world space). This tolerance corrects for the
|
|
38
|
+
// non-planarity in most cases, but sharp joins can place the prev vertices at arbitrary positions so markers can still clip.
|
|
39
|
+
float offset = lineWidth * perScreenPixelRatio;
|
|
40
|
+
planeOrigin *= (1.0 - offset);
|
|
41
|
+
|
|
42
|
+
// Intersect camera ray with the plane and make sure it is within clip space
|
|
43
|
+
vec3 rayDir = normalize(displacedPos);
|
|
44
|
+
vec3 intersection;
|
|
45
|
+
if (rayIntersectPlane(rayDir, planeOrigin, planeNormal, intersection) && intersection.z < -nearFar[0] && intersection.z > -nearFar[1]) {
|
|
46
|
+
return vec4(intersection.xyz, 1.0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Fallback: use depth of pos or prev, whichever is closer to the camera
|
|
50
|
+
float minDepth = planeOrigin.z > prev.z ? length(planeOrigin) : length(prev);
|
|
51
|
+
displacedPos *= minDepth / length(displacedPos);
|
|
52
|
+
return vec4(displacedPos.xyz, 1.0);
|
|
19
53
|
}
|
|
20
|
-
|
|
21
|
-
${x.hasMultipassTerrain?"depth = pos.z;":""}
|
|
22
|
-
linearDepth = (-pos.z - nearFar[0]) / (nearFar[1] - nearFar[0]);
|
|
23
|
-
|
|
24
|
-
pos = projectAndScale(pos);
|
|
25
|
-
prev = projectAndScale(prev);
|
|
26
|
-
}
|
|
27
|
-
`),C.uniforms.add(new g("pixelRatio",w.Pass,((e,r)=>r.camera.pixelRatio))),C.code.add(m`
|
|
54
|
+
`)),S.uniforms.add(new g("pixelRatio",w.Pass,((e,r)=>r.camera.pixelRatio))),S.code.add(m`
|
|
28
55
|
void main(void) {
|
|
29
56
|
float coverage = 1.0;
|
|
30
57
|
|
|
@@ -41,35 +68,51 @@ return posNdc;
|
|
|
41
68
|
|
|
42
69
|
vec4 pos = view * vec4(position.xyz, 1.0);
|
|
43
70
|
vec4 prev = view * vec4(auxpos1.xyz, 1.0);
|
|
44
|
-
|
|
71
|
+
clip(pos, prev);
|
|
72
|
+
|
|
73
|
+
vec4 posScreen = projectAndScale(pos);
|
|
74
|
+
vec4 prevScreen = projectAndScale(prev);
|
|
75
|
+
|
|
76
|
+
vec2 segment = posScreen.xy - prevScreen.xy;
|
|
45
77
|
|
|
46
78
|
// normalize vector along line segment
|
|
47
|
-
vec2 segment = pos.xy - prev.xy;
|
|
48
79
|
float segmentLen = length(segment);
|
|
49
80
|
segment = (segmentLen > 0.001) ? segment / segmentLen : vec2(0.0, 0.0);
|
|
50
81
|
|
|
51
82
|
// displace according to position in the texture
|
|
52
|
-
vec2 displacementDirU =
|
|
53
|
-
vec2 displacementDirV =
|
|
83
|
+
vec2 displacementDirU = PERPENDICULAR(segment);
|
|
84
|
+
vec2 displacementDirV = segment;
|
|
85
|
+
|
|
86
|
+
float displacementLen = ${m.float(e/r)} * lineWidth;
|
|
54
87
|
|
|
55
|
-
|
|
56
|
-
|
|
88
|
+
vec4 displacedPosScreen = posScreen;
|
|
89
|
+
displacedPosScreen.xy += uv0.x * displacementDirU * displacementLen + uv0.y * displacementDirV * displacementLen;
|
|
90
|
+
`),x.draped||S.code.add(m`vec3 posRight = inverseProject(posScreen + vec4(displacementDirU.xy, 0.0, 0.0) * lineWidth);
|
|
91
|
+
vec3 posLeft = pos.xyz + (pos.xyz - posRight);
|
|
92
|
+
pos = toFront(displacedPosScreen, posLeft, posRight, prev.xyz, lineWidth);
|
|
93
|
+
displacedPosScreen = projectAndScale(pos);`),S.code.add(m`
|
|
94
|
+
${x.hasMultipassTerrain?"depth = pos.z;":""}
|
|
95
|
+
linearDepth = (-pos.z - nearFar[0]) / (nearFar[1] - nearFar[0]);
|
|
57
96
|
|
|
58
97
|
// Convert back into NDC
|
|
59
|
-
|
|
98
|
+
displacedPosScreen.xy = (displacedPosScreen.xy / viewport.zw) * displacedPosScreen.w;
|
|
60
99
|
|
|
61
|
-
// Convert texture coordinate into [0,1]
|
|
100
|
+
// Convert texture coordinate into [0,1] and cancel out perspective correct interpolation
|
|
62
101
|
vUV = (uv0 + 1.0) / 2.0;
|
|
102
|
+
vUV *= displacedPosScreen.w;
|
|
103
|
+
|
|
104
|
+
vSize = displacementLen;
|
|
63
105
|
|
|
64
106
|
vColor = getColor();
|
|
65
107
|
vColor.a *= coverage;
|
|
66
108
|
|
|
67
|
-
//
|
|
68
|
-
vpos =
|
|
69
|
-
|
|
109
|
+
// Use camera space for slicing
|
|
110
|
+
vpos = pos.xyz;
|
|
111
|
+
|
|
112
|
+
gl_Position = displacedPosScreen;
|
|
70
113
|
}
|
|
71
114
|
}
|
|
72
|
-
`),
|
|
115
|
+
`),P.include(s,x),P.include(i,x),j.uniforms.add([new v("intrinsicColor",w.Pass,(e=>e.color)),new u("tex",w.Pass,(e=>e.texture))]),j.include(l),j.code.add(m`
|
|
73
116
|
void main() {
|
|
74
117
|
discardBySlice(vpos);
|
|
75
118
|
${x.hasMultipassTerrain?"terrainDepthTest(gl_FragCoord, depth);":""}
|
|
@@ -78,7 +121,7 @@ return posNdc;
|
|
|
78
121
|
|
|
79
122
|
// Offset texture coordinate s.t. we sample texel centers
|
|
80
123
|
float texelSize = ${m.float(1/e)};
|
|
81
|
-
vec2 samplePos = vUV + vec2(0.5, -0.5) * texelSize;
|
|
124
|
+
vec2 samplePos = vUV * gl_FragCoord.w + vec2(0.5, -0.5) * texelSize;
|
|
82
125
|
|
|
83
126
|
// Evaluate sdf
|
|
84
127
|
float sdf = rgba2float(texture2D(tex, samplePos)) - 0.5;
|
|
@@ -96,8 +139,8 @@ return posNdc;
|
|
|
96
139
|
|
|
97
140
|
${x.output===o.Alpha?m`gl_FragColor = vec4(finalColor.a);`:""}
|
|
98
141
|
${x.output===o.Color?m`gl_FragColor = highlightSlice(finalColor, vpos);`:""}
|
|
99
|
-
${x.output===o.Color&&x.transparencyPassType===
|
|
142
|
+
${x.output===o.Color&&x.transparencyPassType===y.Color?"gl_FragColor = premultiplyAlpha(gl_FragColor);":""}
|
|
100
143
|
${x.output===o.Highlight?m`gl_FragColor = vec4(1.0);`:""}
|
|
101
144
|
${x.output===o.Depth?m`outputDepth(linearDepth);`:""}
|
|
102
145
|
}
|
|
103
|
-
`),
|
|
146
|
+
`),P}const P=Object.freeze(Object.defineProperty({__proto__:null,build:x},Symbol.toStringTag,{value:"Module"}));export{P as L,x as b};
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as r}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{ShaderOutput as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutputOptions.js";import{Slice as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as a}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{PositionAttribute as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js";import{SymbolColor as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as m}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{multipassTerrainTest as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{PhysicallyBasedRendering as
|
|
5
|
+
import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as r}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{ShaderOutput as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutputOptions.js";import{Slice as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as a}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{PositionAttribute as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js";import{SymbolColor as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as m}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{multipassTerrainTest as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{PhysicallyBasedRendering as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as h,PBRMode as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMap as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{VisualVariables as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{symbolAlphaCutoff as y,DiscardOrAdjustAlpha as C}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaDiscard.glsl.js";import{MixExternalColor as M}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as L,addCameraPosition as j}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3Uniform as O}from"../views/3d/webgl-engine/core/shaderModules/Float3Uniform.js";import{Float4Uniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float4Uniform.js";import{FloatUniform as _}from"../views/3d/webgl-engine/core/shaderModules/FloatUniform.js";import{glsl as P}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{Matrix4Uniform as E}from"../views/3d/webgl-engine/core/shaderModules/Matrix4Uniform.js";import{ShaderBuilder as F}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";import{BindType as T}from"../views/3d/webgl-engine/core/shaderTechnique/BindType.js";import{TransparencyPassType as $}from"../views/3d/webgl-engine/lib/basicInterfaces.js";import{VertexAttribute as N}from"../views/3d/webgl-engine/lib/VertexAttribute.js";function D(D){const B=new F,V=B.vertex.code,I=B.fragment.code,R=L(B,D);return B.include(s),B.varyings.add("vpos","vec3"),B.include(x,D),B.include(l,D),B.include(g,D),D.output!==o.Color&&D.output!==o.Alpha||(j(B.vertex.uniforms,D),B.include(t,D),B.include(a),D.offsetBackfaces&&B.include(r),D.instancedColor&&B.attributes.add(N.INSTANCECOLOR,"vec4"),B.varyings.add("vNormalWorld","vec3"),B.varyings.add("localvpos","vec3"),D.hasMultipassTerrain&&B.varyings.add("depth","float"),B.include(d,D),B.include(e,D),B.include(n,D),B.include(c,D),B.vertex.uniforms.add(new A("externalColor")),B.varyings.add("vcolorExt","vec4"),V.add(P`
|
|
6
6
|
void main(void) {
|
|
7
7
|
forwardNormalizedVertexColor();
|
|
8
8
|
vcolorExt = externalColor;
|
|
9
|
-
${
|
|
9
|
+
${D.instancedColor?"vcolorExt *= instanceColor;":""}
|
|
10
10
|
vcolorExt *= vvColor();
|
|
11
11
|
vcolorExt *= getSymbolColor();
|
|
12
12
|
forwardColorMixMode();
|
|
13
13
|
|
|
14
|
-
if (vcolorExt.a < ${
|
|
14
|
+
if (vcolorExt.a < ${P.float(y)}) {
|
|
15
15
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
16
16
|
}
|
|
17
17
|
else {
|
|
@@ -21,51 +21,51 @@ import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/
|
|
|
21
21
|
vNormalWorld = dpNormal(vvLocalNormal(normalModel()));
|
|
22
22
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
23
23
|
gl_Position = transformPosition(proj, view, vpos);
|
|
24
|
-
${
|
|
24
|
+
${D.offsetBackfaces?"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);":""}
|
|
25
25
|
}
|
|
26
|
-
${
|
|
26
|
+
${D.hasMultipassTerrain?P`depth = (view * vec4(vpos, 1.0)).z;`:""}
|
|
27
27
|
forwardLinearDepth();
|
|
28
28
|
forwardTextureCoordinates();
|
|
29
29
|
}
|
|
30
|
-
`)),
|
|
30
|
+
`)),D.output===o.Alpha&&(B.include(i,D),B.include(C,D),B.include(u,D),B.fragment.uniforms.add(new _("opacity")),B.fragment.uniforms.add(new _("layerOpacity")),B.fragment.uniforms.add(new E("view")),D.hasColorTexture&&B.fragment.uniforms.add(new S("tex",T.Pass,(e=>e.texture))),B.fragment.include(M),I.add(P`
|
|
31
31
|
void main() {
|
|
32
32
|
discardBySlice(vpos);
|
|
33
|
-
${
|
|
34
|
-
${
|
|
33
|
+
${D.hasMultipassTerrain?P`terrainDepthTest(gl_FragCoord, depth);`:""}
|
|
34
|
+
${D.hasColorTexture?P`
|
|
35
35
|
vec4 texColor = texture2D(tex, vuv0);
|
|
36
|
-
${
|
|
37
|
-
discardOrAdjustAlpha(texColor);`:
|
|
38
|
-
${
|
|
39
|
-
float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:
|
|
36
|
+
${D.textureAlphaPremultiplied?"texColor.rgb /= texColor.a;":""}
|
|
37
|
+
discardOrAdjustAlpha(texColor);`:P`vec4 texColor = vec4(1.0);`}
|
|
38
|
+
${D.hasVertexColors?P`
|
|
39
|
+
float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:P`
|
|
40
40
|
float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));
|
|
41
41
|
`}
|
|
42
42
|
|
|
43
43
|
gl_FragColor = vec4(opacity_);
|
|
44
44
|
}
|
|
45
|
-
`)),
|
|
45
|
+
`)),D.output===o.Color&&(B.include(i,D),B.include(p,D),B.include(v,D),B.include(C,D),B.include(f,D),B.include(u,D),j(B.fragment.uniforms,D),B.fragment.uniforms.add([R,new O("ambient"),new O("diffuse"),new _("opacity"),new _("layerOpacity"),new E("view")]),D.hasColorTexture&&B.fragment.uniforms.add(new S("tex",T.Pass,(e=>e.texture))),B.include(h,D),B.include(b,D),B.fragment.include(M),I.add(P`
|
|
46
46
|
void main() {
|
|
47
47
|
discardBySlice(vpos);
|
|
48
|
-
${
|
|
49
|
-
${
|
|
48
|
+
${D.hasMultipassTerrain?P`terrainDepthTest(gl_FragCoord, depth);`:""}
|
|
49
|
+
${D.hasColorTexture?P`
|
|
50
50
|
vec4 texColor = texture2D(tex, vuv0);
|
|
51
|
-
${
|
|
52
|
-
discardOrAdjustAlpha(texColor);`:
|
|
51
|
+
${D.textureAlphaPremultiplied?"texColor.rgb /= texColor.a;":""}
|
|
52
|
+
discardOrAdjustAlpha(texColor);`:P`vec4 texColor = vec4(1.0);`}
|
|
53
53
|
vec3 viewDirection = normalize(vpos - cameraPosition);
|
|
54
|
-
${
|
|
54
|
+
${D.pbrMode===w.Normal?"applyPBRFactors();":""}
|
|
55
55
|
float ssao = evaluateAmbientOcclusionInverse();
|
|
56
56
|
ssao *= getBakedOcclusion();
|
|
57
57
|
|
|
58
58
|
float additionalAmbientScale = additionalDirectedAmbientLight(vpos + localOrigin);
|
|
59
59
|
vec3 additionalLight = ssao * lightingMainIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
60
|
-
${
|
|
60
|
+
${D.receiveShadows?"float shadow = readShadowMap(vpos, linearDepth);":D.spherical?"float shadow = lightingGlobalFactor * (1.0 - additionalAmbientScale);":"float shadow = 0.0;"}
|
|
61
61
|
vec3 matColor = max(ambient, diffuse);
|
|
62
|
-
${
|
|
62
|
+
${D.hasVertexColors?P`
|
|
63
63
|
vec3 albedo_ = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
|
|
64
|
-
float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:
|
|
64
|
+
float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:P`
|
|
65
65
|
vec3 albedo_ = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
|
|
66
66
|
float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));
|
|
67
67
|
`}
|
|
68
|
-
${
|
|
68
|
+
${P`
|
|
69
69
|
vec3 shadedNormal = normalize(vNormalWorld);
|
|
70
70
|
albedo_ *= 1.2;
|
|
71
71
|
vec3 viewForward = vec3(view[0][2], view[1][2], view[2][2]);
|
|
@@ -74,11 +74,11 @@ import{ForwardLinearDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/
|
|
|
74
74
|
float treeRadialFalloff = vColor.r;
|
|
75
75
|
float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow);
|
|
76
76
|
additionalLight += backLightFactor * lightingMainIntensity;`}
|
|
77
|
-
${
|
|
78
|
-
${
|
|
77
|
+
${D.pbrMode===w.Normal||D.pbrMode===w.Schematic?D.spherical?P`vec3 normalGround = normalize(vpos + localOrigin);`:P`vec3 normalGround = vec3(0.0, 0.0, 1.0);`:P``}
|
|
78
|
+
${D.pbrMode===w.Normal||D.pbrMode===w.Schematic?P`
|
|
79
79
|
float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * lightingMainIntensity[2];
|
|
80
80
|
vec3 shadedColor = evaluateSceneLightingPBR(shadedNormal, albedo_, shadow, 1.0 - ssao, additionalLight, viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:"vec3 shadedColor = evaluateSceneLighting(shadedNormal, albedo_, shadow, 1.0 - ssao, additionalLight);"}
|
|
81
81
|
gl_FragColor = highlightSlice(vec4(shadedColor, opacity_), vpos);
|
|
82
|
-
${
|
|
82
|
+
${D.transparencyPassType===$.Color?"gl_FragColor = premultiplyAlpha(gl_FragColor);":""}
|
|
83
83
|
}
|
|
84
|
-
`)),
|
|
84
|
+
`)),B.include(m,D),B}const B=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:"Module"}));export{B as R,D as b};
|
package/chunks/SMAA.glsl.js
CHANGED
|
@@ -84,8 +84,8 @@ SMAAEdgeDetectionVS( fTexCoord );
|
|
|
84
84
|
#define SMAA_AREATEX_PIXEL_SIZE ( 1.0 / vec2( 160.0, 560.0 ) )
|
|
85
85
|
#define SMAA_AREATEX_SUBTEX_SIZE ( 1.0 / 7.0 )
|
|
86
86
|
|
|
87
|
-
vec4 SMAASampleLevelZeroOffset(sampler2D
|
|
88
|
-
return texture2D(
|
|
87
|
+
vec4 SMAASampleLevelZeroOffset(sampler2D texture, vec2 coord, vec2 offset) {
|
|
88
|
+
return texture2D(texture, coord + offset.x * resolution.xy, 0.0);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
vec2 round( vec2 x ) {
|
package/chunks/SSAO.glsl.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import{ReadLinearDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import{CameraSpace as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{Float2Uniform as
|
|
5
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import{ReadLinearDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import{CameraSpace as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{Float2Uniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2Uniform.js";import{FloatUniform as a}from"../views/3d/webgl-engine/core/shaderModules/FloatUniform.js";import{glsl as n}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as i}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";import{BindType as l}from"../views/3d/webgl-engine/core/shaderTechnique/BindType.js";import{SSAOOutput as c}from"../views/3d/webgl-engine/lib/SSAOTechniqueConfiguration.js";const d={samples:16,filterRadius:4};function f(f){const u=new i,p=u.fragment;if(u.include(e),f.output===c.Blur){const e=(d.filterRadius+1)/2,o=1/(2*e*e);p.include(r),p.uniforms.add([new s("normalMap"),new s("depthMap"),new s("tex"),new t("blurSize"),new a("projScale"),new t("nearFar",l.Pass,((e,r)=>r.camera.nearFar))]),p.code.add(n`
|
|
6
6
|
void blurFunction(vec2 uv, float r, float center_d, float sharpness, inout float wTotal, inout float bTotal) {
|
|
7
7
|
float c = texture2D(tex, uv).r;
|
|
8
8
|
float d = linearDepthFromTexture(depthMap, uv, nearFar);
|
|
@@ -29,7 +29,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
29
29
|
|
|
30
30
|
gl_FragColor = vec4(b / w_total);
|
|
31
31
|
}
|
|
32
|
-
`)}return f.output===c.SSAO&&(p.include(r),u.include(o),p.uniforms.add(new s("normalMap")),p.uniforms.add(new s("depthMap")),p.uniforms.add(new s("rnm")),p.uniforms.add(new
|
|
32
|
+
`)}return f.output===c.SSAO&&(p.include(r),u.include(o),p.uniforms.add(new s("normalMap")),p.uniforms.add(new s("depthMap")),p.uniforms.add(new s("rnm")),p.uniforms.add(new a("intensity")),p.uniforms.add(new a("projScale")),p.uniforms.add(new a("radius")),p.uniforms.add(new t("nearFar",l.Pass,((e,r)=>r.camera.nearFar))),p.uniforms.add(new t("screenSize")),p.uniforms.add(new t("rnmScale")),p.code.add(n`vec3 sphere[16];
|
|
33
33
|
void fillSphere() {
|
|
34
34
|
sphere[0] = vec3(0.186937, 0.0, 0.0);
|
|
35
35
|
sphere[1] = vec3(0.700542, 0.0, 0.0);
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{SimpleAtmosphereGeometry as e}from"../views/3d/environment/SimpleAtmosphereTechniqueConfiguration.js";import{Transform as o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{Float2Uniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float2Uniform.js";import{Float3Uniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float3Uniform.js";import{FloatUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatUniform.js";import{glsl as
|
|
5
|
+
import{SimpleAtmosphereGeometry as e}from"../views/3d/environment/SimpleAtmosphereTechniqueConfiguration.js";import{Transform as o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{Float2Uniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float2Uniform.js";import{Float3Uniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float3Uniform.js";import{FloatUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatUniform.js";import{NoParameters as t,glsl as s}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{Matrix4Uniform as a}from"../views/3d/webgl-engine/core/shaderModules/Matrix4Uniform.js";import{ShaderBuilder as d}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";import{BindType as c}from"../views/3d/webgl-engine/core/shaderTechnique/BindType.js";import{VertexAttribute as m}from"../views/3d/webgl-engine/lib/VertexAttribute.js";class g extends t{}function f(t){const g=new d,{vertex:f,fragment:p}=g;if(t.geometry===e.Underground)g.attributes.add(m.POSITION,"vec2"),g.varyings.add("color","vec4"),f.uniforms.add(new r("lightingMainDirection")),f.uniforms.add(new r("cameraPosition")),f.uniforms.add(new n("undergroundFadeAlpha")),f.code.add(s`void main(void) {
|
|
6
6
|
float ndotl = dot(normalize(cameraPosition), lightingMainDirection);
|
|
7
7
|
float lighting = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));
|
|
8
8
|
color = vec4(vec3(lighting), undergroundFadeAlpha);
|
|
9
9
|
gl_Position = vec4(position.xy, 1.0, 1.0);
|
|
10
|
-
}`),p.code.add(
|
|
10
|
+
}`),p.code.add(s`void main() {
|
|
11
11
|
gl_FragColor = color;
|
|
12
|
-
}`);else{g.include(o),g.attributes.add(
|
|
12
|
+
}`);else{g.include(o),g.attributes.add(m.POSITION,"vec3"),g.varyings.add("vtc","vec2"),g.varyings.add("falloff","float");const d=t.geometry===e.Cylinder;f.uniforms.add(new a("proj",c.Pass,((e,o)=>o.camera.projectionMatrix))),f.uniforms.add(new a("view")),f.uniforms.add(new r("lightingMainDirection")),d||(g.varyings.add("innerFactor","float"),f.uniforms.add(new r("silCircleCenter")),f.uniforms.add(new r("silCircleV1")),f.uniforms.add(new r("silCircleV2")),f.uniforms.add(new i("texV")),f.uniforms.add(new n("innerScale")));const u=6.2831853,v=1/128;f.code.add(s`
|
|
13
13
|
void main(void) {
|
|
14
|
-
${s
|
|
14
|
+
${d?s`
|
|
15
15
|
vec3 pos = position;
|
|
16
16
|
float ndotl = lightingMainDirection.z;
|
|
17
|
-
vtc = vec2(0.0, position.z + 0.05);`:
|
|
17
|
+
vtc = vec2(0.0, position.z + 0.05);`:s`
|
|
18
18
|
innerFactor = clamp(-position.z, 0.0, 1.0);
|
|
19
19
|
float scale = position.y * (1.0 + innerFactor * innerScale);
|
|
20
|
-
float phi = position.x * ${
|
|
20
|
+
float phi = position.x * ${s.float(u*v)} + 1.0;
|
|
21
21
|
vec3 pos = (silCircleCenter + sin(phi) * silCircleV1 + cos(phi) * silCircleV2) * scale;
|
|
22
22
|
float ndotl = dot(normalize(position.y > 0.0 ? pos: silCircleCenter), lightingMainDirection);
|
|
23
|
-
vtc.x = position.x * ${
|
|
23
|
+
vtc.x = position.x * ${s.float(v)};
|
|
24
24
|
vtc.y = texV.x * (1.0 - position.z) + texV.y * position.z;
|
|
25
25
|
`}
|
|
26
26
|
falloff = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));
|
|
@@ -28,11 +28,11 @@ gl_FragColor = color;
|
|
|
28
28
|
gl_Position = transformPosition(proj, view, pos);
|
|
29
29
|
gl_Position.z = gl_Position.w; // project atmosphere onto the far plane
|
|
30
30
|
}
|
|
31
|
-
`),p.uniforms.add(new
|
|
31
|
+
`),p.uniforms.add(new l("tex",c.Pass,(e=>e.texture))),d||p.uniforms.add(new n("altitudeFade")),p.code.add(s`
|
|
32
32
|
void main() {
|
|
33
33
|
vec4 atmosphereColor = texture2D(tex, vtc) * falloff;
|
|
34
|
-
${s
|
|
34
|
+
${d?s`gl_FragColor = atmosphereColor;`:s`
|
|
35
35
|
vec4 innerColor = vec4(atmosphereColor.rgb, 1.0 - altitudeFade);
|
|
36
36
|
gl_FragColor = mix(atmosphereColor, innerColor, smoothstep(0.0, 1.0, innerFactor));
|
|
37
37
|
`}
|
|
38
|
-
}`)}return g}const
|
|
38
|
+
}`)}return g}const p=Object.freeze(Object.defineProperty({__proto__:null,SimpleAtmospherePassParameters:g,build:f},Symbol.toStringTag,{value:"Module"}));export{g as S,p as a,f as b};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import{Float4Uniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float4Uniform.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as n}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";function
|
|
5
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import{Float4Uniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float4Uniform.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as n}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js";function s(){const s=new n;return s.include(e),s.fragment.uniforms.add([new i("tex"),new r("uColor")]),s.fragment.code.add(o`void main() {
|
|
6
6
|
vec4 texColor = texture2D(tex, uv);
|
|
7
7
|
gl_FragColor = texColor * uColor;
|
|
8
|
-
}`),
|
|
8
|
+
}`),s}const t=Object.freeze(Object.defineProperty({__proto__:null,build:s},Symbol.toStringTag,{value:"Module"}));export{t as T,s as b};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{OriginId as
|
|
5
|
+
import{OriginId as s}from"./PropertyOrigin.js";import{trackAccess as t,runTracked as e,trackExplicitDependencies as i,runUntracked as r}from"./tracking.js";import{Flags as n}from"./tracking/Flags.js";import{ObservationHandle as o}from"./tracking/ObservationHandle.js";class l{constructor(s,t,e){this.properties=s,this.propertyName=t,this.metadata=e,this._observers=null,this._accessed=null,this._handles=null,this.flags=n.Dirty|(e.nonNullable?n.NonNullable:0)|(e.hasOwnProperty("value")?n.HasDefaultValue:0)|(void 0===e.get?n.DepTrackingInitialized:0)|(void 0===e.dependsOn?n.AutoTracked:0)}destroy(){if(this.flags&n.Dirty&&this._observers){const s=this._observers.slice();for(const t of s)t.onCommitted()}this._accessed=null,this._observers=null,this._clearObservationHandles()}getComputed(){t(this);const o=this.properties.store,l=this.propertyName,a=this.flags,h=o.get(l);if(a&n.Computing)return h;if(~a&n.Dirty&&o.has(l))return h;this.flags|=n.Computing;const d=this.properties.host;let c;a&n.AutoTracked?c=e(this,this.metadata.get,d):(i(d,this),c=this.metadata.get.call(d)),o.set(l,c,s.COMPUTED);const u=o.get(l);return u===h?this.flags&=~n.Dirty:r(this.commit,this),this.flags&=~n.Computing,u}onObservableAccessed(s){s!==this&&(null===this._accessed&&(this._accessed=[]),this._accessed.includes(s)||this._accessed.push(s))}onTrackingEnd(){this._clearObservationHandles(),this.flags|=n.DepTrackingInitialized;const s=this._accessed;if(null===s)return;let t=this._handles;null===t&&(t=this._handles=[]);for(let e=0;e<s.length;++e)t.push(s[e].observe(this));s.length=0}observe(s){return null===this._observers&&(this._observers=[]),this._observers.includes(s)||this._observers.push(s),new o(this._observers,s)}notifyChange(){this.onInvalidated(),this.onCommitted()}invalidate(){this.onInvalidated()}onInvalidated(){~this.flags&n.Overriden&&(this.flags|=n.Dirty);const s=this._observers;if(null!==s)for(let t=0;t<s.length;++t)s[t].onInvalidated()}commit(){this.flags&=~n.Dirty,this.onCommitted()}onCommitted(){if(null===this._observers)return;const s=this._observers.slice();for(let t=0;t<s.length;++t)s[t].onCommitted()}_clearObservationHandles(){const s=this._handles;if(null!==s){for(let t=0;t<s.length;++t)s[t].remove();s.length=0}}}export{l as Property};
|
package/interfaces.d.ts
CHANGED
|
@@ -29432,7 +29432,7 @@ declare namespace __esri {
|
|
|
29432
29432
|
*
|
|
29433
29433
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#fetchResources)
|
|
29434
29434
|
*/
|
|
29435
|
-
fetchResources(params?: FetchResourcesParams, options?: PortalItemFetchResourcesOptions): FetchResourcesResult
|
|
29435
|
+
fetchResources(params?: FetchResourcesParams, options?: PortalItemFetchResourcesOptions): Promise<FetchResourcesResult>;
|
|
29436
29436
|
/**
|
|
29437
29437
|
* Get the URL to the thumbnail image for the item.
|
|
29438
29438
|
*
|
|
@@ -34837,6 +34837,12 @@ declare namespace __esri {
|
|
|
34837
34837
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-request.html#RequestOptions)
|
|
34838
34838
|
*/
|
|
34839
34839
|
useProxy?: boolean;
|
|
34840
|
+
/**
|
|
34841
|
+
* Indicates if cross-site `Access-Control` requests should use credentials.
|
|
34842
|
+
*
|
|
34843
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-request.html#RequestOptions)
|
|
34844
|
+
*/
|
|
34845
|
+
withCredentials?: boolean;
|
|
34840
34846
|
}
|
|
34841
34847
|
|
|
34842
34848
|
/**
|
|
@@ -71639,6 +71645,12 @@ declare namespace __esri {
|
|
|
71639
71645
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#zoom)
|
|
71640
71646
|
*/
|
|
71641
71647
|
zoom: number;
|
|
71648
|
+
/**
|
|
71649
|
+
* Internal method to take a screenshot.
|
|
71650
|
+
*
|
|
71651
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#_takeScreenshot)
|
|
71652
|
+
*/
|
|
71653
|
+
_takeScreenshot(): void;
|
|
71642
71654
|
/**
|
|
71643
71655
|
* Sets the view to a given target.
|
|
71644
71656
|
*
|
|
@@ -72424,6 +72436,12 @@ declare namespace __esri {
|
|
|
72424
72436
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#zoom)
|
|
72425
72437
|
*/
|
|
72426
72438
|
zoom: number;
|
|
72439
|
+
/**
|
|
72440
|
+
* Internal method to take a screenshot.
|
|
72441
|
+
*
|
|
72442
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#_takeScreenshot)
|
|
72443
|
+
*/
|
|
72444
|
+
_takeScreenshot(): void;
|
|
72427
72445
|
/**
|
|
72428
72446
|
* Sets the view to a given target.
|
|
72429
72447
|
*
|
|
@@ -84782,6 +84800,12 @@ declare namespace __esri {
|
|
|
84782
84800
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#clearSelection)
|
|
84783
84801
|
*/
|
|
84784
84802
|
clearSelection(): void;
|
|
84803
|
+
/**
|
|
84804
|
+
* Clears the current [filterBySelection](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#filterBySelection) so that the table displays all of the table rows.
|
|
84805
|
+
*
|
|
84806
|
+
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#clearSelectionFilter)
|
|
84807
|
+
*/
|
|
84808
|
+
clearSelectionFilter(): void;
|
|
84785
84809
|
/**
|
|
84786
84810
|
* Unselects the specified rows within the table.
|
|
84787
84811
|
*
|
|
@@ -84830,12 +84854,6 @@ declare namespace __esri {
|
|
|
84830
84854
|
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#selectRows)
|
|
84831
84855
|
*/
|
|
84832
84856
|
selectRows(params: number | Graphic | (number | Graphic)[]): void;
|
|
84833
|
-
/**
|
|
84834
|
-
* Clears the current [filterBySelection](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#filterBySelection) so that the table displays all of the table rows.
|
|
84835
|
-
*
|
|
84836
|
-
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable-FeatureTableViewModel.html#zoomToSelection)
|
|
84837
|
-
*/
|
|
84838
|
-
zoomToSelection(): void;
|
|
84839
84857
|
/**
|
|
84840
84858
|
* Zooms the view to the extent of the current row selection.
|
|
84841
84859
|
*
|
package/package.json
CHANGED