@arcgis/core 4.33.0-next.20250324 → 4.33.0-next.20250326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/arcade/arcadeAsyncRuntime.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/arcadeRuntime.js +1 -1
- package/arcade/containerUtils.js +1 -1
- package/arcade/functions/date.js +1 -1
- package/arcade/functions/feature.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/featuresetgeom.js +1 -1
- package/arcade/functions/featuresetstats.js +1 -1
- package/arcade/functions/featuresetstring.js +1 -1
- package/arcade/functions/fieldStats.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/geometry.js +1 -1
- package/arcade/functions/geomsync.js +1 -1
- package/arcade/functions/knowledgegraph.js +1 -1
- package/arcade/functions/maths.js +1 -1
- package/arcade/functions/stats.js +1 -1
- package/arcade/functions/string.js +1 -1
- package/arcade/geometry/functions.js +1 -1
- package/arcade/languageUtils.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0059295780fa4a090f30.js +319 -0
- package/assets/esri/core/workers/chunks/{8f4bcca8b0525e19374f.js → 042771b4e56355924140.js} +1 -1
- package/assets/esri/core/workers/chunks/09c9e4e94f09ba9f4c22.js +1 -0
- package/assets/esri/core/workers/chunks/{3bea1400160042dca9f3.js → 0e82365be7d9257e7cb2.js} +1 -1
- package/assets/esri/core/workers/chunks/1dd6d68d23ba07587ae4.js +1 -0
- package/assets/esri/core/workers/chunks/{fef46b841e8369b30227.js → 2873cb727c59328074db.js} +1 -1
- package/assets/esri/core/workers/chunks/3808f10747cecc8a1a9b.js +1 -0
- package/assets/esri/core/workers/chunks/{9cfce9414b874878d761.js → 4dc1e7d7ac2a4b0144c4.js} +96 -96
- package/assets/esri/core/workers/chunks/{e5e1f8ac53c70427a60b.js → 59e4e780dcdfed555ca5.js} +1 -1
- package/assets/esri/core/workers/chunks/{33005043f7084048296d.js → 6ab96eaaad0aaad46db9.js} +1 -1
- package/assets/esri/core/workers/chunks/705c1ebb327f680f8519.js +1 -0
- package/assets/esri/core/workers/chunks/{bd2dcc55ac3418421ee5.js → 726e3f413824f02fe689.js} +1 -1
- package/assets/esri/core/workers/chunks/{4c9160e3d596fe75392d.js → 75ec4d2ae9d427a1434f.js} +1 -1
- package/assets/esri/core/workers/chunks/{11f9d7cd95891596b716.js → 77199b4b39ee8b4303de.js} +1 -1
- package/assets/esri/core/workers/chunks/{74c01de62ccaed0666e0.js → 81f2f1614ea27f4c2e65.js} +1 -1
- package/assets/esri/core/workers/chunks/{d787474e78360c925fd9.js → a59ad50d932da1e28c8f.js} +1 -1
- package/assets/esri/core/workers/chunks/afe94e351b4a50d7bc53.js +1 -0
- package/assets/esri/core/workers/chunks/{47c04980098dc0c228d7.js → b02ac03503bfff1ff922.js} +1 -1
- package/assets/esri/core/workers/chunks/{cbbbaccc0d3683e1c0fe.js → b8a4352f83502449ff95.js} +1 -1
- package/assets/esri/core/workers/chunks/{605eddec7aac891ed141.js → ba47e43ef039fe4b8c5c.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ee000c92e4d5d21e22d.js → bc3f42401131a12fce9b.js} +1 -1
- package/assets/esri/core/workers/chunks/{2cedf4222238c86a98e8.js → c6bcfa99fb222894fa0e.js} +1 -1
- package/assets/esri/core/workers/chunks/cb386923200272cf26a9.js +1 -0
- package/assets/esri/core/workers/chunks/{a2377969f76640f1d6fe.js → d5d2a4e8e19898d86c6d.js} +1 -1
- package/assets/esri/core/workers/chunks/{5f8028928ae8e5d27dda.js → e088edb9ffbaa1ed12eb.js} +1 -1
- package/assets/esri/core/workers/chunks/ed831e51c2a03ee95879.js +1 -0
- package/assets/esri/core/workers/chunks/{3e9cd82325c473ddbf1f.js → edcc0fefd57323d2cb67.js} +1 -1
- package/assets/esri/core/workers/chunks/{065ae931b5891847a06f.js → f28eaf1d3a7f12788bcf.js} +1 -1
- package/assets/esri/core/workers/chunks/f9396af9cbfd165e72e2.js +1 -0
- package/assets/esri/core/workers/chunks/{f86736a60856ef7fdacb.js → fa3eeb40e2d732c184d8.js} +1 -1
- package/chunks/BloomBlur.glsl.js +1 -1
- package/chunks/BloomComposition.glsl.js +2 -2
- package/chunks/ComponentShader.glsl.js +24 -25
- package/chunks/HighlightApply.glsl.js +1 -1
- package/chunks/HighlightDownsample.glsl.js +1 -1
- package/chunks/HighlightToSingle.glsl.js +1 -1
- package/chunks/LineSeries.js +1 -1
- package/chunks/ShadowHighlight.glsl.js +1 -1
- package/chunks/Theme.js +1 -1
- package/chunks/Tick.js +1 -1
- package/chunks/WaterSurface.glsl.js +1 -1
- package/chunks/aiServices.js +1 -1
- package/chunks/array.js +1 -1
- package/chunks/chartUtilsAm5.js +1 -1
- package/chunks/languageUtils.js +1 -1
- package/chunks/nl_NL.js +1 -1
- package/chunks/vec32.js +1 -1
- package/core/libs/gl-matrix-2/math/quat.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/geometry/operators/projectOperator.js +1 -1
- package/geometry/operators/shapePreservingProjectOperator.js +1 -1
- package/geometry/support/buffer/BufferView.js +1 -1
- package/geometry/support/meshUtils/merge.js +1 -1
- package/interfaces.d.ts +17 -17
- package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
- package/package.json +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/RasterData.js +1 -1
- package/rest/support/RouteInfo.js +1 -1
- package/rest/support/Stop.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/LabelManager.js +1 -1
- package/views/2d/engine/vectorTiles/Placement.js +1 -1
- package/views/2d/engine/vectorTiles/SourceLayerData.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler3D.js +1 -1
- package/views/2d/engine/vectorTiles/TileManager.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileFeatureIndex.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/BaseBucket.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
- package/views/2d/engine/vectorTiles/constants.js +5 -0
- package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +5 -0
- package/views/2d/engine/vectorTiles/decluttering/SymbolDeclutterer.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/core.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/util.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
- package/views/2d/engine/webgl/AFeatureTile.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/FeatureTile.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/MappedMesh.js +1 -1
- package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
- package/views/2d/engine/webgl/mesh/MultiTileMeshData.js +1 -1
- package/views/2d/engine/webgl/mesh/meshDebugUtils.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/AlignedVertexSpec.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/RouteLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/FeatureContainer.js +1 -1
- package/views/2d/layers/features/RenderState.js +1 -1
- package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/SubtypeProcessorSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
- package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
- package/views/2d/tiling/FeatureTileSubscriptionManager.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
- package/views/3d/analysis/Viewshed/ScaleOrientManipulation.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedVisualization.js +1 -1
- package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/layers/graphics/LabelDeconflictor.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/deconflictorDebug.js +1 -1
- package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
- package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
- package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
- package/views/3d/support/QualitySettings.js +1 -1
- package/views/3d/support/buffer/InterleavedLayout.js +1 -1
- package/views/3d/support/pointsOfInterest/Focus.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/SphericalPatch.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoubleConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +9 -9
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/{UintTexture2DBindUniform.js → Texture2DUintBindUniform.js} +1 -1
- package/views/3d/webgl-engine/core/shaderModules/{UintTexture2DPassUniform.js → Texture2DUintPassUniform.js} +1 -1
- package/views/3d/webgl-engine/effects/bloom/BloomBlur.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/bloom/BloomBlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/Program.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
- package/views/3d/webgl-engine/lib/triangleIntersectionUtils.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/interactive/SegmentLabels.js +1 -1
- package/views/interactive/coordinateHelper.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/interactive/sketch/constraints.js +1 -1
- package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
- package/views/support/geometry3dUtils.js +1 -1
- package/views/webgl/ShaderBuilder.js +1 -1
- package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/0e164b19e4ea3aa73843.js +0 -1
- package/assets/esri/core/workers/chunks/1034155c525d2b7baaa1.js +0 -1
- package/assets/esri/core/workers/chunks/2b9ce6648823f6962f58.js +0 -1
- package/assets/esri/core/workers/chunks/88a7780b1c689afff8bd.js +0 -1
- package/assets/esri/core/workers/chunks/ac6b582ca180210e596c.js +0 -1
- package/assets/esri/core/workers/chunks/accd0661a6dd297fab6b.js +0 -1
- package/assets/esri/core/workers/chunks/b5f44cf03c4e5cc07bc4.js +0 -1
- package/assets/esri/core/workers/chunks/bfbb118ae3b4a4ce1c74.js +0 -319
- package/assets/esri/core/workers/chunks/fa7ddf3c89cdb8052b26.js +0 -1
- package/chunks/BloomDepthAdjust.glsl.js +0 -14
- package/views/2d/engine/vectorTiles/decluttering/jobs.js +0 -5
- package/views/2d/engine/webgl/collisions/CollisionEngine.js +0 -5
- package/views/2d/engine/webgl/collisions/CollisionGrid.js +0 -5
- package/views/3d/webgl-engine/core/shaderModules/TextureCubeBindUniform.js +0 -5
- package/views/3d/webgl-engine/core/shaderModules/UintTexture2DDrawUniform.js +0 -5
- package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjust.glsl.js +0 -5
- package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjustTechnique.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../core/Logger.js";import{disposeMaybe as
|
|
5
|
+
import e from"../../../core/Logger.js";import{disposeMaybe as t}from"../../../core/maybe.js";import{ZEROS as r}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{RasterColorizerStretchType as i}from"../../2d/engine/imagery/enums.js";import{VectorTileRendererHelper3D as s}from"../../2d/engine/vectorTiles/VectorTileRendererHelper3D.js";import{BlendLayersTechnique as o}from"./BlendLayersTechnique.js";import{BlendLayersTechniqueConfiguration as n}from"./BlendLayersTechniqueConfiguration.js";import{LayerClass as a}from"./LayerClass.js";import{RasterColorizerTechnique as h}from"./RasterColorizerTechnique.js";import{RasterColorizerTechniqueConfiguration as u}from"./RasterColorizerTechniqueConfiguration.js";import{MultiSizeFramebuffer as l}from"./support/MultiSizeFramebuffer.js";import{LayerBlendMode as c}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BaseOpacityMode as d}from"../webgl-engine/core/shaderLibrary/terrain/BaseOpacityMode.js";import{BlendLayersOutput as _}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{PremultipliedAlphaSource as f}from"../webgl-engine/core/shaderLibrary/terrain/PremultipliedAlphaSource.js";import{a as p}from"../../../chunks/BlendLayers.glsl.js";import{BindParameters as m}from"../webgl-engine/lib/BindParameters.js";import{createQuadVAO as b,Layout as g}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as T,FramebufferBit as x,TextureType as y}from"../../webgl/enums.js";import{Texture as C}from"../../webgl/Texture.js";import{vertexCount as B}from"../../webgl/Util.js";const O=()=>e.getLogger("esri.views.3d.terrain");class q{constructor(e,t){this._rctx=e,this._techniques=t,this._fbos=[],this._vectorTileHelper=new s,this._bindParameters=new m(null),this._blendConfiguration=new n,this._current=0,this._lastUsedIds=new Array,this._lastCreatedBufferId=0,this._onHoldIds=new Array,this._vaoQuad=b(this._rctx,g.Pos2Tex)}dispose(){this._fbos.forEach(t),this._fbos=null,this._vtFBO=t(this._vtFBO),this._vaoQuad=t(this._vaoQuad),this._vectorTileHelper=t(this._vectorTileHelper)}updateHeading(e){this._vectorTileHelper?.updateHeading(e)}_acquireBlendTechnique(e,t,r,i=f.Off,s=p.BelowLayer){return this._blendConfiguration.output=t,this._blendConfiguration.blendMode=e,this._blendConfiguration.baseOpacityMode=r,this._blendConfiguration.premultipliedSource=i,this._blendConfiguration.background=s,this._techniques.precompile(o,this._blendConfiguration),this._techniques.get(o,this._blendConfiguration)}drawBackground(e,t){const r=this._acquireBlendTechnique(c.Normal,t?_.ColorComposite:_.GridComposite,d.NotRequired,f.Off,p.Only),i=this._rctx.bindTechnique(r,this._bindParameters,e);this._render(i)}_render(e){this._rctx.bindVAO(this._vaoQuad),e.assertCompatibleVertexAttributeLocations(this._vaoQuad),this._rctx.drawArrays(T.TRIANGLE_STRIP,0,B(this._vaoQuad,"geometry"))}drawGroup(e,t,r,i,s=f.On){t===_.Composite&&(e.fboTexture=this._fbos[this.getLastOnHoldId()].get(r).colorTexture),e.texture=this.currentFBO(r).colorTexture,this.closeGroup(r);const o=e.baseOpacity<1?d.Required:d.NotRequired,n=this._acquireBlendTechnique(i,t,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawImageData(e,t,r,i,s=f.Off){if(null==e.texture)return;const o=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=t===_.GroupBackgroundComposite||i===c.Normal&&o===d.NotRequired&&s===f.Off?null:this.switch(r).colorTexture;const n=this._acquireBlendTechnique(i,t,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawRasterData(e,t,r,i,s){const o=s.sourceLayerInfo.data;if(!o.source)return;if(s.tile.surface.layerViewByIndex(s.layerIndex,a.MAP).ensureSymbolizerParameters(o),!o.bind(this._rctx))return;const n=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=i===c.Normal&&n===d.NotRequired?null:this.switch(r).colorTexture;const h=this._acquireRasterTechnique(o,t,i,n);if(!h)return;o.opacity=e.opacity;const u=o.getUniforms();u.scale=s.scale,u.offset=s.offset,u.backgroundColor=e.backgroundColor,u.fboTexture=e.fboTexture,u.baseOpacity=e.baseOpacity;const l=this._rctx.bindTechnique(h,this._bindParameters,u);this._render(l)}_acquireRasterTechnique(e,t,r,s){if(!this._rctx.capabilities.colorBufferFloat)return null;const o=e.symbolizerParameters,n=["stretch","lut","hillshade"].indexOf(o.type);return this._rasterConfiguration??=new u,this._rasterConfiguration.output=t,this._rasterConfiguration.blendMode=r,this._rasterConfiguration.baseOpacityMode=s,this._rasterConfiguration.colorizerType=n,this._rasterConfiguration.applyColormap=!!o.colormap,this._rasterConfiguration.requireBilinearWithNN=e.isBilinearWithStretchColorRamp,this._rasterConfiguration.stretchType=e.hasStretchTypeNone()?i.Noop:i.PerBand,this._techniques.precompile(h,this._rasterConfiguration),this._techniques.get(h,this._rasterConfiguration)}drawVectorData(e,t,i,s,o,n,h,u){const p=this._rctx,m=o.sourceLayerInfo.data,b=o.tile.surface.layerViewByIndex(o.layerIndex,a.MAP),g=e.baseOpacity<1?d.Required:d.NotRequired,T=g===d.Required||e.opacity<1||s!==c.Normal||t!==_.Composite,y=T?f.On:f.Off,C=this._acquireBlendTechnique(s,t,g,y);p.setPipelineState(C.getPipeline());let B=null,q=null;T?(q=this.currentFBO(i),null==this._vtFBO&&(this._vtFBO=new l(this._rctx)),B=this._vtFBO.get(i),p.bindFramebuffer(B),this._clearCurrentFBO()):u&&p.clear(x.DEPTH);try{this._vectorTileHelper.renderBackground(p,o.sourceLod,b.painter,b.layer.styleRepository,b.schemaHelper,Math.round(1/o.scale),o.offset,h,n,b.contentZoom),m&&this._vectorTileHelper.renderContent(p,o.sourceLod,m,o.vtlNeighborInfos,b.painter,b.layer.styleRepository,b.schemaHelper,Math.round(1/o.scale),o.offset,h,n,b.contentZoom)}catch(I){O().warnOnce("A render call containing vector tiles did not resolve correctly.",I)}return!B||(p.bindFramebuffer(q),e.texture=B.colorTexture,e.offset=r,e.scale=1,this.drawImageData(e,t,i,s,y),u)}copyFBOToTexture(e){const t=this._rctx,r=t.bindTexture(e.texture,C.TEXTURE_UNIT_FOR_UPDATES),i=e.descriptor;t.gl.copyTexImage2D(y.TEXTURE_2D,0,i.pixelFormat,0,0,i.width,i.height,0),e.generateMipmap(),t.bindTexture(r,C.TEXTURE_UNIT_FOR_UPDATES)}_clearCurrentFBO(){this._rctx.setStencilWriteMask(255),this._rctx.setClearColor(0,0,0,0),this._rctx.setClearDepth(1),this._rctx.setClearStencil(0),this._rctx.clear(x.COLOR|x.DEPTH|x.STENCIL)}_initFBO(e,t,r){this._rctx.bindFramebuffer(e),r&&(this._rctx.setViewport(0,0,t,t),this._clearCurrentFBO())}ensureBuffer(e){this._lastUsedIds.length=0,this._lastUsedIds.push(1),this._lastCreatedBufferId=1,this._onHoldIds.length=0,this.bind(e)}bind(e,t=0,r=!0){if(this._current=t,t>=this._fbos.length)for(let i=this._fbos.length;i<=t;i++)this._fbos.push(new l(this._rctx));this._initFBO(this._fbos[t].get(e),e,r)}_bindNextFreeBuffer(e){this._lastUsedIds.length>0?this.bind(e,this._lastUsedIds.pop()):(this._lastCreatedBufferId++,this.bind(e,this._lastCreatedBufferId))}openGroup(e){this._onHoldIds.push(this._current),this._bindNextFreeBuffer(e)}switch(e){const t=this.currentFBO(e),r=this._current;return this._bindNextFreeBuffer(e),this._lastUsedIds.push(r),t}getLastOnHoldId(){return this._onHoldIds[this._onHoldIds.length-1]}closeGroup(e){const t=this._current;this._bindNextFreeBuffer(e),this._lastUsedIds.push(t),this._lastUsedIds.push(this._onHoldIds.pop())}unbind(){this._rctx.bindFramebuffer(null)}currentFBO(e){return this._fbos[this._current].get(e)}}export{q as TileCompositor};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{set as e}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as l}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{glsl as i}from"../shaderModules/glsl.js";import{Integer2PassUniform as t}from"../shaderModules/Integer2PassUniform.js";import{IntegerPassUniform as o}from"../shaderModules/IntegerPassUniform.js";import{
|
|
5
|
+
import{set as e}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as l}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{glsl as i}from"../shaderModules/glsl.js";import{Integer2PassUniform as t}from"../shaderModules/Integer2PassUniform.js";import{IntegerPassUniform as o}from"../shaderModules/IntegerPassUniform.js";import{Texture2DUintPassUniform as n}from"../shaderModules/Texture2DUintPassUniform.js";import{g as c}from"../../../../../chunks/HighlightDownsample.glsl.js";function s(l){const{vertex:s}=l;s.uniforms.add(new n("coverageTexture",(e=>e.coverageTexture)),new t("highlightRenderCellCount",(l=>e(r,l.horizontalCellCount,l.verticalCellCount))),new t("highlightTextureResolution",(({highlightTexture:l})=>e(r,l.descriptor.width,l.descriptor.height))),new o("highlightLevel",(e=>e.highlightLevel))).constants.add("cellSize","int",c),l.varyings.add("sUV","vec2"),l.varyings.add("vOutlinePossible","float"),s.code.add(i`const ivec2 cellVertices[4] = ivec2[4](ivec2(0,0), ivec2(1,0), ivec2(0,1), ivec2(1,1));`),s.main.add(i`int cellIndex = gl_InstanceID;
|
|
6
6
|
int cellX = cellIndex % highlightRenderCellCount[0];
|
|
7
7
|
int cellY = (cellIndex - cellX) / highlightRenderCellCount[0];
|
|
8
8
|
ivec2 cellPos = ivec2(cellX, cellY);
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{ShaderTechniqueConfiguration as e}from"../../shaderTechnique/ShaderTechniqueConfiguration.js";class s extends e{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}export{s as InstancedDoubleConfiguration};
|
package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.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.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{normalFromMat4 as e}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{IDENTITY as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as a}from"../../../../../../chunks/vec32.js";import{create as i}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ShaderOutput as n}from"../ShaderOutput.js";import{DoublePrecision as t}from"../util/DoublePrecision.glsl.js";import{addViewNormal as s}from"../util/View.glsl.js";import{Float3BindUniform as l}from"../../shaderModules/Float3BindUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as c}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4PassUniform as d}from"../../shaderModules/Matrix4PassUniform.js";import{VertexAttribute as v}from"../../../lib/VertexAttribute.js";import{encodeDoubleHi as u,encodeDoubleLo as g}from"../../../../../webgl/doublePrecisionUtils.js";import{NoParameters as p}from"../../../../../webgl/NoParameters.js";class x extends p{constructor(){super(...arguments),this.modelTransformation=null}}const M=r();function f(r,i){const
|
|
5
|
+
import{normalFromMat4 as e}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{IDENTITY as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as a}from"../../../../../../chunks/vec32.js";import{create as i}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ShaderOutput as n}from"../ShaderOutput.js";import{DoublePrecision as t}from"../util/DoublePrecision.glsl.js";import{addViewNormal as s}from"../util/View.glsl.js";import{Float3BindUniform as l}from"../../shaderModules/Float3BindUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as c}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4PassUniform as d}from"../../shaderModules/Matrix4PassUniform.js";import{VertexAttribute as v}from"../../../lib/VertexAttribute.js";import{encodeDoubleHi as u,encodeDoubleLo as g}from"../../../../../webgl/doublePrecisionUtils.js";import{NoParameters as p}from"../../../../../webgl/NoParameters.js";class x extends p{constructor(){super(...arguments),this.modelTransformation=null}}const M=r();function f(r,i){const{hasModelTransformation:p,instancedDoublePrecision:x,instanced:f,output:O,hasVertexTangents:N}=i;p&&(r.vertex.uniforms.add(new d("model",(e=>e.modelTransformation??o))),r.vertex.uniforms.add(new c("normalLocalOriginFromModel",(r=>(e(M,r.modelTransformation??o),M))))),f&&x&&(r.attributes.add(v.INSTANCEMODELORIGINHI,"vec3"),r.attributes.add(v.INSTANCEMODELORIGINLO,"vec3"),r.attributes.add(v.INSTANCEMODEL,"mat3"),r.attributes.add(v.INSTANCEMODELNORMAL,"mat3"));const _=r.vertex;x&&(_.include(t,i),_.uniforms.add(new l("viewOriginHi",(e=>u(a(w,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),w))),new l("viewOriginLo",(e=>g(a(w,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),w))))),_.code.add(m`
|
|
6
6
|
vec3 getVertexInLocalOriginSpace() {
|
|
7
7
|
return ${p?x?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":x?"instanceModel * localPosition().xyz":"localPosition().xyz"};
|
|
8
8
|
}
|
|
@@ -13,15 +13,15 @@ import{normalFromMat4 as e}from"../../../../../../core/libs/gl-matrix-2/math/mat
|
|
|
13
13
|
vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -instanceModelOriginHi, -instanceModelOriginLo);
|
|
14
14
|
return _pos - originDelta;`:"return vpos;"}
|
|
15
15
|
}
|
|
16
|
-
`),
|
|
16
|
+
`),_.code.add(m`
|
|
17
17
|
vec3 dpNormal(vec4 _normal) {
|
|
18
18
|
return normalize(${p?x?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":x?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
|
|
19
19
|
}
|
|
20
|
-
`),
|
|
20
|
+
`),O===n.Normal&&(s(_),_.code.add(m`
|
|
21
21
|
vec3 dpNormalView(vec4 _normal) {
|
|
22
22
|
return normalize((viewNormal * ${p?x?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":x?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
|
|
23
23
|
}
|
|
24
|
-
`)),
|
|
24
|
+
`)),N&&_.code.add(m`
|
|
25
25
|
vec4 dpTransformVertexTangent(vec4 _tangent) {
|
|
26
26
|
${p?x?"return vec4(normalLocalOriginFromModel * (instanceModelNormal * _tangent.xyz), _tangent.w);":"return vec4(normalLocalOriginFromModel * _tangent.xyz, _tangent.w);":x?"return vec4(instanceModelNormal * _tangent.xyz, _tangent.w);":"return _tangent;"}
|
|
27
27
|
}`)}const w=i();export{x as InstancedDoublePassParameters,f as InstancedDoublePrecision};
|
|
@@ -9,7 +9,7 @@ return vvSizeFallback.x;
|
|
|
9
9
|
return intrinsicWidth * clamp(vvSizeOffset + sizeFeatureAttribute * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize).x;
|
|
10
10
|
}`)):(c.attributes.add(r.SIZE,"float"),s.code.add(v`float getSize(){
|
|
11
11
|
return intrinsicWidth * size;
|
|
12
|
-
}`)),l.vvOpacity?(c.attributes.add(r.OPACITYFEATUREATTRIBUTE,"float"),s.constants.add("vvOpacityNumber","int",8),s.uniforms.add(new a("vvOpacityValues",(i=>i.vvOpacity.values),o),new a("vvOpacityOpacities",(i=>i.vvOpacity.opacityValues),o),new e("vvOpacityFallback",(i=>i.vvOpacity.fallback))),s.code.add(v`float interpolateOpacity(
|
|
12
|
+
}`)),l.vvOpacity?(c.attributes.add(r.OPACITYFEATUREATTRIBUTE,"float"),s.constants.add("vvOpacityNumber","int",8),s.uniforms.add(new a("vvOpacityValues",(i=>i.vvOpacity.values),o),new a("vvOpacityOpacities",(i=>i.vvOpacity.opacityValues),o),new e("vvOpacityFallback",(i=>i.vvOpacity.fallback))),s.code.add(v`float interpolateOpacity(float value){
|
|
13
13
|
if (isnan(value)) {
|
|
14
14
|
return vvOpacityFallback;
|
|
15
15
|
}
|
package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{addNearFar as e}from"../ForwardLinearDepth.glsl.js";import{ShaderOutput as o}from"../ShaderOutput.js";import{SliceDraw as r}from"../Slice.glsl.js";import{Transform as t}from"../Transform.glsl.js";import{NormalAttribute as i,NormalType as a}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as s}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as l}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as d}from"../attributes/VertexNormal.glsl.js";import{OutputDepth as n}from"../output/OutputDepth.glsl.js";import{OutputHighlight as c}from"../output/OutputHighlight.glsl.js";import{VisualVariables as u}from"../shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as p}from"../util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as m}from"../util/View.glsl.js";import{glsl as v,If as g}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";import{AlphaDiscardMode as x}from"../../../lib/basicInterfaces.js";function h(h,O){const{vertex:j,fragment:w,varyings:b}=h,C=O
|
|
5
|
+
import{addNearFar as e}from"../ForwardLinearDepth.glsl.js";import{ShaderOutput as o}from"../ShaderOutput.js";import{SliceDraw as r}from"../Slice.glsl.js";import{Transform as t}from"../Transform.glsl.js";import{NormalAttribute as i,NormalType as a}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as s}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as l}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as d}from"../attributes/VertexNormal.glsl.js";import{OutputDepth as n}from"../output/OutputDepth.glsl.js";import{OutputHighlight as c}from"../output/OutputHighlight.glsl.js";import{VisualVariables as u}from"../shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as p}from"../util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as m}from"../util/View.glsl.js";import{glsl as v,If as g}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";import{AlphaDiscardMode as x}from"../../../lib/basicInterfaces.js";function h(h,O){const{vertex:j,fragment:w,varyings:b}=h,{hasColorTexture:C,alphaDiscardMode:V}=O,A=C&&V!==x.Opaque,{output:S,normalType:y,hasColorTextureTransform:P}=O;switch(S){case o.Depth:m(j,O),h.include(t,O),w.include(r,O),h.include(l,O),A&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
|
|
6
6
|
vpos = subtractOrigin(vpos);
|
|
7
7
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
8
8
|
gl_Position = transformPosition(proj, view, vpos);
|
|
9
9
|
forwardTextureCoordinates();`),h.include(p,O),w.main.add(v`
|
|
10
10
|
discardBySlice(vpos);
|
|
11
|
-
${g(
|
|
12
|
-
discardOrAdjustAlpha(texColor);`)}`);break;case o.Shadow:case o.ShadowHighlight:case o.ShadowExcludeHighlight:case o.ViewshedShadow:case o.ObjectAndLayerIdColor:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),h.include(n,O),w.include(r,O),h.include(s,O),e(h),b.add("depth","float",{invariant:!0}),
|
|
11
|
+
${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
|
|
12
|
+
discardOrAdjustAlpha(texColor);`)}`);break;case o.Shadow:case o.ShadowHighlight:case o.ShadowExcludeHighlight:case o.ViewshedShadow:case o.ObjectAndLayerIdColor:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),h.include(n,O),w.include(r,O),h.include(s,O),e(h),b.add("depth","float",{invariant:!0}),A&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
|
|
13
13
|
vpos = subtractOrigin(vpos);
|
|
14
14
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
15
15
|
gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);
|
|
16
16
|
forwardTextureCoordinates();
|
|
17
17
|
forwardObjectAndLayerIdColor();`),h.include(p,O),w.main.add(v`
|
|
18
18
|
discardBySlice(vpos);
|
|
19
|
-
${g(
|
|
19
|
+
${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
|
|
20
20
|
discardOrAdjustAlpha(texColor);`)}
|
|
21
|
-
${
|
|
21
|
+
${S===o.ObjectAndLayerIdColor?v`outputObjectAndLayerIdColor();`:v`outputDepth(depth);`}`);break;case o.Normal:{m(j,O),h.include(t,O),h.include(i,O),h.include(d,O),h.include(l,O),h.include(u,O),A&&w.uniforms.add(new f("tex",(e=>e.texture))),y===a.ScreenDerivative&&b.add("vPositionView","vec3",{invariant:!0});const e=y===a.Attribute||y===a.Compressed;j.main.add(v`
|
|
22
22
|
vpos = getVertexInLocalOriginSpace();
|
|
23
23
|
${e?v`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:v`vPositionView = (view * vec4(vpos, 1.0)).xyz;`}
|
|
24
24
|
vpos = subtractOrigin(vpos);
|
|
@@ -26,19 +26,19 @@ forwardObjectAndLayerIdColor();`),h.include(p,O),w.main.add(v`
|
|
|
26
26
|
gl_Position = transformPosition(proj, view, vpos);
|
|
27
27
|
forwardTextureCoordinates();`),w.include(r,O),h.include(p,O),w.main.add(v`
|
|
28
28
|
discardBySlice(vpos);
|
|
29
|
-
${g(
|
|
29
|
+
${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
|
|
30
30
|
discardOrAdjustAlpha(texColor);`)}
|
|
31
31
|
|
|
32
|
-
${
|
|
32
|
+
${y===a.ScreenDerivative?v`vec3 normal = screenDerivativeNormal(vPositionView);`:v`vec3 normal = normalize(vNormalWorld);
|
|
33
33
|
if (gl_FrontFacing == false){
|
|
34
34
|
normal = -normal;
|
|
35
35
|
}`}
|
|
36
|
-
fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.Highlight:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),
|
|
36
|
+
fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.Highlight:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),A&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
|
|
37
37
|
vpos = subtractOrigin(vpos);
|
|
38
38
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
39
39
|
gl_Position = transformPosition(proj, view, vpos);
|
|
40
40
|
forwardTextureCoordinates();`),w.include(r,O),h.include(p,O),h.include(c,O),w.main.add(v`
|
|
41
41
|
discardBySlice(vpos);
|
|
42
|
-
${g(
|
|
42
|
+
${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
|
|
43
43
|
discardOrAdjustAlpha(texColor);`)}
|
|
44
44
|
calculateOcclusionAndOutputHighlight();`)}}export{h as DefaultMaterialAuxiliaryPasses};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{HighlightReadBitmap as i}from"../HighlightReadBitmap.glsl.js";import{ShaderOutput as e}from"../ShaderOutput.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Integer2BindUniform as h}from"../../shaderModules/Integer2BindUniform.js";import{IntegerBindUniform as l}from"../../shaderModules/IntegerBindUniform.js";import{Texture2DBindUniform as g}from"../../shaderModules/Texture2DBindUniform.js";import{
|
|
5
|
+
import{HighlightReadBitmap as i}from"../HighlightReadBitmap.glsl.js";import{ShaderOutput as e}from"../ShaderOutput.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Integer2BindUniform as h}from"../../shaderModules/Integer2BindUniform.js";import{IntegerBindUniform as l}from"../../shaderModules/IntegerBindUniform.js";import{Texture2DBindUniform as g}from"../../shaderModules/Texture2DBindUniform.js";import{Texture2DUintBindUniform as d}from"../../shaderModules/Texture2DUintBindUniform.js";function u(u,o){const{fragment:r}=u,{output:c,canHaveOverlay:n}=o;c===e.Highlight?(r.uniforms.add(new g("depthTexture",(i=>i.mainDepth)),new d("highlightMixTexture",(i=>i.highlightMixTexture)),new l("highlightLevel",(i=>i.highlightLevel??0)),new h("highlightMixOrigin",(i=>i.highlightMixOrigin))),u.outputs.add("fragHighlight","uvec2",0),u.include(i),r.code.add(t`uvec2 getAccumulatedHighlight() {
|
|
6
6
|
return texelFetch(highlightMixTexture, ivec2(gl_FragCoord.xy) - highlightMixOrigin, 0).rg;
|
|
7
7
|
}
|
|
8
8
|
void outputHighlight(bool occluded) {
|
|
@@ -29,7 +29,7 @@ return gl_FragCoord.z > sceneDepth + 5e-7;
|
|
|
29
29
|
}
|
|
30
30
|
void calculateOcclusionAndOutputHighlight() {
|
|
31
31
|
outputHighlight(isHighlightOccluded());
|
|
32
|
-
}`),
|
|
32
|
+
}`),n&&r.code.add(t`void calculateOcclusionAndOutputHighlightOverlay(uvec2 highlightToAdd) {
|
|
33
33
|
uint levelBits = readLevelBits(highlightToAdd, highlightLevel);
|
|
34
34
|
if ((levelBits & 1u) == 0u) { discard; }
|
|
35
35
|
outputHighlight(isHighlightOccluded());
|
|
@@ -24,8 +24,8 @@ T *= inversesqrt(max(dot(T,T), 1.e-10));
|
|
|
24
24
|
vec3 B = sign(det) * cross(normal, T);
|
|
25
25
|
return mat3(T, B, normal);
|
|
26
26
|
}`),u.textureCoordinateType!==r.None&&(T.include(a,u),x.uniforms.add(u.bindType===c.Pass?new l("normalTexture",(e=>e.textureNormal)):new d("normalTexture",(e=>e.textureNormal))),u.hasNormalTextureTransform&&(x.uniforms.add(new o("scale",(e=>e.scale??t))),x.uniforms.add(new m("normalTextureTransformMatrix",(t=>t.normalTextureTransformMatrix??e)))),x.code.add(s`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
|
|
27
|
-
vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),u.hasNormalTextureTransform&&x.code.add(s`mat3
|
|
27
|
+
vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),u.hasNormalTextureTransform&&x.code.add(s`mat3 normalRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0,
|
|
28
28
|
normalTextureTransformMatrix[1][0]/scale[0], normalTextureTransformMatrix[1][1]/scale[1], 0.0,
|
|
29
29
|
0.0, 0.0, 0.0 );
|
|
30
|
-
rawNormal.xy = (
|
|
30
|
+
rawNormal.xy = (normalRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),x.code.add(s`return tangentSpace * rawNormal;
|
|
31
31
|
}`))}export{T as ComputeNormalTexture};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{hasArea as o,width as r,height as t}from"../../../../../../geometry/support/aaBoundingRect.js";import{OverlayIndex as a}from"../../../../terrain/interfaces.js";import{OverlayContent as l}from"../../../../terrain/OverlayContent.js";import{RenderPassIdentifier as i}from"../../renderPasses/RenderPassIdentifier.js";import{ShaderOutput as n,isColorOrColorEmission as s}from"../ShaderOutput.js";import{addMainLightDirection as d,addMainLightIntensity as v}from"../shading/MainLighting.glsl.js";import{PBRMode as c}from"../shading/PhysicallyBasedRenderingParameters.glsl.js";import{Water as u}from"../shading/Water.glsl.js";import{Float4DrawUniform as x}from"../../shaderModules/Float4DrawUniform.js";import{FloatPassUniform as y}from"../../shaderModules/FloatPassUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as p}from"../../shaderModules/Texture2DPassUniform.js";import{
|
|
5
|
+
import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{hasArea as o,width as r,height as t}from"../../../../../../geometry/support/aaBoundingRect.js";import{OverlayIndex as a}from"../../../../terrain/interfaces.js";import{OverlayContent as l}from"../../../../terrain/OverlayContent.js";import{RenderPassIdentifier as i}from"../../renderPasses/RenderPassIdentifier.js";import{ShaderOutput as n,isColorOrColorEmission as s}from"../ShaderOutput.js";import{addMainLightDirection as d,addMainLightIntensity as v}from"../shading/MainLighting.glsl.js";import{PBRMode as c}from"../shading/PhysicallyBasedRenderingParameters.glsl.js";import{Water as u}from"../shading/Water.glsl.js";import{Float4DrawUniform as x}from"../../shaderModules/Float4DrawUniform.js";import{FloatPassUniform as y}from"../../shaderModules/FloatPassUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as p}from"../../shaderModules/Texture2DPassUniform.js";import{Texture2DUintPassUniform as f}from"../../shaderModules/Texture2DUintPassUniform.js";import{Uniform as g}from"../../../../../webgl/Uniform.js";var h;function C(e,o){const{vertex:r,fragment:t}=e;r.uniforms.add(new x("overlayTexOffset",((e,o)=>V(e,o))),new x("overlayTexScale",((e,o)=>I(e,o)))),t.constants.add("overlayOpacity","float",1),t.uniforms.add(new p("ovColorTex",((e,o)=>b(e,o)))),T(e,o)}function O(e,o){const{vertex:r,fragment:t}=e,{output:a}=o;r.uniforms.add(new M("overlayTexOffset"),new M("overlayTexScale")),t.uniforms.add(new y("overlayOpacity",(e=>e.overlayOpacity))),a!==n.Highlight&&t.uniforms.add(new p("ovColorTex",((e,o)=>o.overlay?.getTexture(e.overlayContent)))),T(e,o)}function T(e,o){const r=o.pbrMode===c.Water||o.pbrMode===c.WaterOnIntegratedMesh||o.pbrMode===c.TerrainWithWater;r&&e.include(u,o);const{vertex:t,fragment:a,varyings:i}=e;i.add("vtcOverlay","vec4");const{output:s}=o,x=s===n.Highlight;t.code.add(m`void setOverlayVTC(in vec2 uv) {
|
|
6
6
|
vtcOverlay = vec4(uv, uv) * overlayTexScale + overlayTexOffset;
|
|
7
7
|
}`),a.code.add(m`bool isValid(vec2 uv, vec2 dxdy) {
|
|
8
8
|
return (uv.x >= 0.0 + dxdy.x) && (uv.x <= 1.0 - dxdy.x) && (uv.y >= 0.0 + dxdy.y) && (uv.y <= 1.0 - dxdy.y);
|
|
@@ -13,7 +13,7 @@ vec4 color1 = texture(ov0Tex, vec2(texCoords.z * 0.5 + 0.5, texCoords.w));
|
|
|
13
13
|
bool isValid0 = isValid(texCoords.xy, fwidth(texCoords.xy));
|
|
14
14
|
bool isValid1 = isValid(texCoords.zw, vec2(0.0, 0.0));
|
|
15
15
|
return mix(color1 * float(isValid1), color0, float(isValid0));
|
|
16
|
-
}`),x?
|
|
16
|
+
}`),x?a.uniforms.add(new f("overlayHighlightTexture",((e,o)=>o.overlay?.getTexture(l.Highlight)))).code.add(m`uvec2 getAllOverlayHighlightValuesEncoded() {
|
|
17
17
|
vec4 texCoords = vtcOverlay;
|
|
18
18
|
vec2 uvInner = texCoords.xy;
|
|
19
19
|
vec2 uvOuter = texCoords.zw;
|
|
@@ -28,7 +28,7 @@ return
|
|
|
28
28
|
isValidInner ? texelValueInner :
|
|
29
29
|
isValidOuter ? texelValueOuter :
|
|
30
30
|
uvec2(0);
|
|
31
|
-
}`)
|
|
31
|
+
}`):(a.code.add(m`vec4 getCombinedOverlayColor() {
|
|
32
32
|
return overlayOpacity * getOverlayColor(ovColorTex, vtcOverlay);
|
|
33
33
|
}`),a.code.add(m`vec4 getOverlayColorTexel() {
|
|
34
34
|
vec4 texCoords = vtcOverlay;
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ZEROS as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{LayerBlendMode as r}from"../output/BlendOptions.js";import{BackgroundGrid as e}from"./BackgroundGrid.glsl.js";import{BaseOpacityMode as
|
|
5
|
+
import"../../../../../../core/has.js";import{ZEROS as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{LayerBlendMode as r}from"../output/BlendOptions.js";import{BackgroundGrid as e}from"./BackgroundGrid.glsl.js";import{BaseOpacityMode as a}from"./BaseOpacityMode.js";import{BlendLayersOutput as c}from"./BlendLayersOutput.js";import{PremultipliedAlphaSource as t}from"./PremultipliedAlphaSource.js";import{BlendModes as s}from"../util/BlendModes.glsl.js";import{Float3PassUniform as l}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as i}from"../../shaderModules/FloatPassUniform.js";import{glsl as p,If as d}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as m}from"../../shaderModules/Texture2DPassUniform.js";import{NoParameters as u}from"../../../../../webgl/NoParameters.js";class n extends u{constructor(){super(...arguments),this.baseOpacity=1,this.backgroundColor=o,this.fboTexture=null}}function b(o,u){const{output:n,blendMode:b,baseOpacityMode:g,premultipliedSource:f}=u,y=o.fragment,C=g===a.Required;C&&y.uniforms.add(new i("baseOpacity",(o=>o.baseOpacity)));const v=b!==r.Normal,h=f===t.On,j=n===c.Composite,k=n===c.GroupBackgroundComposite,B=!v&&!h&&(j&&!C||k);y.include(s,u);let L="";switch(n){case c.GroupBackgroundComposite:L=p`vec4(0.0)`;break;case c.ColorComposite:y.uniforms.add(new l("backgroundColor",(o=>o.backgroundColor))),L=p`vec4(backgroundColor, 1.0)`;break;case c.GridComposite:y.include(e),L=p`vec4(gridColor(uv), 1.0)`;break;case c.Composite:y.uniforms.add(new m("fboColor",(o=>o.fboTexture))),L=p`texelFetch(fboColor, ivec2(gl_FragCoord.xy), 0)`;case c.COUNT:}y.code.add(p`
|
|
6
6
|
vec4 getBackground(vec2 uv) {
|
|
7
|
-
return ${
|
|
7
|
+
return ${d(C,p`baseOpacity *`)} ${L};
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
vec4 blendLayers(vec2 bgUV, vec4 colorLayer, float opacity) {
|
|
11
|
-
${
|
|
11
|
+
${v?p`
|
|
12
12
|
vec3 cl = colorLayer.a == 0.0 ? colorLayer.rgb : colorLayer.rgb / colorLayer.a;
|
|
13
13
|
vec4 bgColor = getBackground(bgUV);
|
|
14
14
|
vec3 cb = bgColor.a == 0.0 ? bgColor.rgb : bgColor.rgb / bgColor.a;
|
|
15
|
-
return applyBlendMode(clamp(cl, vec3(0.0), vec3(1.0)), colorLayer.a * opacity, cb, bgColor.a);`:
|
|
15
|
+
return applyBlendMode(clamp(cl, vec3(0.0), vec3(1.0)), colorLayer.a * opacity, cb, bgColor.a);`:p`
|
|
16
16
|
float composeAlpha = colorLayer.a * opacity;
|
|
17
|
-
${
|
|
17
|
+
${B?p`return colorLayer * opacity;`:p`
|
|
18
18
|
vec4 bgColor = getBackground(bgUV);
|
|
19
19
|
return bgColor * (1.0 - composeAlpha) + colorLayer * opacity;`}`}
|
|
20
|
-
}`)}export{
|
|
20
|
+
}`)}export{b as TileBackground,n as TileBackgroundPassParameters};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ZEROS as s}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2PassUniform as e}from"../../shaderModules/Float2PassUniform.js";import{FloatPassUniform as
|
|
5
|
+
import{ZEROS as s}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2PassUniform as e}from"../../shaderModules/Float2PassUniform.js";import{FloatPassUniform as o}from"../../shaderModules/FloatPassUniform.js";import{glsl as t}from"../../shaderModules/glsl.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";import{NoParameters as a}from"../../../../../webgl/NoParameters.js";class i extends a{constructor(){super(...arguments),this.scale=1,this.offset=s}}function f(s){s.attributes.add(r.POSITION,"vec2"),s.attributes.add(r.UV0,"vec2"),s.varyings.add("uv","vec2"),s.varyings.add("vuv","vec2"),s.vertex.uniforms.add(new o("scale",(s=>s.scale)),new e("offset",(s=>s.offset))).main.add(t`gl_Position = vec4(position, 0.0, 1.0);
|
|
6
6
|
uv = uv0 * scale + offset;
|
|
7
7
|
vuv = uv0;`)}export{f as TileComposite,i as TileCompositePassParameters};
|
|
@@ -34,7 +34,7 @@ return (rotMat * vec4(inVec, 0.0)).xyz;
|
|
|
34
34
|
|
|
35
35
|
return vec3(baseCloudColor * (1.0 + additionalLight) + directSunScattering);
|
|
36
36
|
}
|
|
37
|
-
`),t.include(c),a.uniforms.add(new n("readChannelsRG",(o=>o.clouds.readChannels===e.RG)),new h("cubeMap",(o=>o.clouds.data?.cubeMap?.colorTexture
|
|
37
|
+
`),t.include(c),a.uniforms.add(new n("readChannelsRG",(o=>o.clouds.readChannels===e.RG)),new h("cubeMap",(o=>o.clouds.data?.cubeMap?.colorTexture))).code.add(u`vec4 sampleCloud(vec3 rayDir, bool readOtherChannel) {
|
|
38
38
|
vec4 s = lookupCloudsFromTextureArray(cubeMap, rayDir);
|
|
39
39
|
bool readRG = readChannelsRG ^^ readOtherChannel;
|
|
40
40
|
s = readRG ? vec4(vec3(s.r), s.g) : vec4(vec3(s.b), s.a);
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"usampler2D",r.Bind,((r,s)=>r.bindTexture(e,o(s))))}}export{o as
|
|
5
|
+
import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"usampler2D",r.Bind,((r,s)=>r.bindTexture(e,o(s))))}}export{o as Texture2DUintBindUniform};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class s extends e{constructor(e,s){super(e,"usampler2D",r.Pass,((r,o,t)=>r.bindTexture(e,s(o,t))))}}export{s as
|
|
5
|
+
import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class s extends e{constructor(e,s){super(e,"usampler2D",r.Pass,((r,o,t)=>r.bindTexture(e,s(o,t))))}}export{s as Texture2DUintPassUniform};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../../../../../core/mathUtils.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{
|
|
5
|
+
import"../../../../../core/mathUtils.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{B as BloomBlurPassParameters,a as BlurDirection,c as build}from"../../../../../chunks/BloomBlur.glsl.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{
|
|
5
|
+
import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{b as o}from"../../../../../chunks/BloomBlur.glsl.js";import{makePipelineState as l,defaultColorWrite as s}from"../../../../webgl/renderState.js";class i extends r{constructor(r,l){super(r,l,new e(o,(()=>import("./BloomBlur.glsl.js"))))}initializePipeline(){return l({colorWrite:s})}}export{i as BloomBlurTechnique};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/Float2BindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/FloatsPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/IntegerPassUniform.js";import"../../core/shaderModules/Texture2DBindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{
|
|
5
|
+
import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/Float2BindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/FloatsPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/IntegerPassUniform.js";import"../../core/shaderModules/Texture2DBindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{B as BloomCompositionPassParameters,b as build,d as defaultCompositionParameters}from"../../../../../chunks/BloomComposition.glsl.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{
|
|
5
|
+
import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as r}from"../../../../../chunks/BloomComposition.glsl.js";import{makePipelineState as i,defaultColorWrite as s}from"../../../../webgl/renderState.js";class t extends o{constructor(o,i){super(o,i,new e(r,(()=>import("./BloomComposition.glsl.js"))))}initializePipeline(){return i({colorWrite:s})}}export{t as BloomCompositionTechnique};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../../chunks/tslib.es6.js";import{lerp as t}from"../../../../../core/mathUtils.js";import{watch as r,syncAndInitial as
|
|
5
|
+
import{_ as e}from"../../../../../chunks/tslib.es6.js";import{lerp as t}from"../../../../../core/mathUtils.js";import{watch as r,syncAndInitial as o}from"../../../../../core/reactiveUtils.js";import{property as s}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as i}from"../../../../../core/accessorSupport/decorators/subclass.js";import{InternalRenderCategory as a}from"../../../webgl.js";import{TransparentEnvironment as m}from"../TransparentEnvironment.js";import{B as l,a as n}from"../../../../../chunks/BloomBlur.glsl.js";import{BloomBlurTechnique as u}from"./BloomBlurTechnique.js";import{BloomBlurTechniqueConfiguration as c}from"./BloomBlurTechniqueConfiguration.js";import{B as h}from"../../../../../chunks/BloomComposition.glsl.js";import{BloomCompositionTechnique as p}from"./BloomCompositionTechnique.js";import{blurRadiusPresets as b,exposurePresets as _,lodFactorsPresets as d}from"./BloomPresets.glsl.js";import{RenderRequestType as g}from"../../lib/basicInterfaces.js";import{ColorAttachment1 as f,DepthStencilAttachment as P,FramebufferBit as T}from"../../../../webgl/enums.js";let R=class extends m{constructor(e){super(e),this.consumes={required:[a.TRANSPARENT_ENVIRONMENT,"emissive"]},this._blurHorizontalConfiguration=new c,this._blurVerticalConfiguration=new c,this._compositionParameters=new h,this._blurParameters=new l,this._blurScale=3.06,this._bloomResults=new Array}initialize(){this.addHandles([r((()=>this._updateFogParameters()),(()=>{}),o),r((()=>this.view.qualitySettings.bloom),(e=>{e?(this._enable(),this.precompile()):this._disable()}),o)])}destroy(){}_updateFogParameters(){const e=this.view.environment.weather;if("sunny"===e.type||"cloudy"===e.type)this._blurParameters.blurRadius=b[e.type],this._compositionParameters.exposure=_[e.type];else{const r="foggy"===e.type?e.fogStrength:e.precipitation;this._blurParameters.blurRadius=t(b.cloudy,b[e.type],r),this._compositionParameters.exposure=t(_[e.type],3,r)}this._compositionParameters.lodFactors=d[e.type].far,this._compositionParameters.lodFactorsFront=d[e.type].near,this.requestRender(g.UPDATE)}precompile(){this._blurHorizontalConfiguration.bloomStage=n.Horizontal,this._blurVerticalConfiguration.bloomStage=n.Vertical,this.techniques.precompile(u,this._blurHorizontalConfiguration),this.techniques.precompile(u,this._blurVerticalConfiguration),this.techniques.precompile(p)}render(e){const t=e.find((({name:e})=>e===a.TRANSPARENT_ENVIRONMENT)),r=t.getAttachment(f)?.attachment;if(!r)return t;const o=this.techniques.get(u,this._blurHorizontalConfiguration),s=this.techniques.get(u,this._blurVerticalConfiguration),i=this.techniques.get(p);if(!o.compiled||!s.compiled||!i.compiled)return this.requestRender(g.UPDATE),t;const m=t.getTexture(),l=this.fboCache,{fullWidth:n,fullHeight:c}=this.bindParameters.camera,h=this.renderingContext;let b=r,_=n,d=c;const T=5,R=this._blurParameters.blurRadius;for(let a=0;a<T;a++){const e=l.acquire(_,d,"bloomHorizontal");this._blurParameters.color=b,this._prepareFBO(e,_,d),h.bindTechnique(o,this.bindParameters,this._blurParameters),h.screen.draw();const t=l.acquire(_,d,"bloomVertical");this._blurParameters.color=e.getTexture(),this._prepareFBO(t,_,d),h.bindTechnique(s,this.bindParameters,this._blurParameters),h.screen.draw(),e.release(),this._bloomResults[a]=t,_=Math.ceil(_/2),d=Math.ceil(d/2),b=this._bloomResults[a].getTexture(),this._blurParameters.blurRadius*=this._blurScale}this._blurParameters.blurRadius=R,this._compositionParameters.color=m,this._compositionParameters.bloomTexture0=this._bloomResults[0].getTexture(),this._compositionParameters.bloomTexture1=this._bloomResults[1].getTexture(),this._compositionParameters.bloomTexture2=this._bloomResults[2].getTexture(),this._compositionParameters.bloomTexture3=this._bloomResults[3].getTexture(),this._compositionParameters.bloomTexture4=this._bloomResults[4].getTexture();const q=this.acquireOutputFramebuffer();return this._prepareFBO(q,n,c),h.bindTechnique(i,this.bindParameters,this._compositionParameters),h.screen.draw(),this._bloomResults.forEach((e=>e.release())),q.attachDepth(t.getAttachment(P)),q.attachColor(t.getAttachment(f),f),q}_prepareFBO(e,t,r){const o=this.renderingContext;o.bindFramebuffer(e.fbo),o.setViewport(0,0,t,r),o.setClearColor(0,0,0,0),o.clear(T.COLOR)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters}}};e([s()],R.prototype,"consumes",void 0),R=e([i("esri.views.3d.webgl-engine.effects.bloom.BloomRenderNode")],R);export{R as BloomRenderNode};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{estimateNumberArrayMemory as t}from"../../../../core/memoryEstimations.js";import{
|
|
5
|
+
import{estimateNumberArrayMemory as t}from"../../../../core/memoryEstimations.js";import{floatSubArray as e}from"../../../../geometry/support/FloatArray.js";import{newHalfFloatArray as i}from"../../../../geometry/support/HalfFloatArray.js";import{newIntArray as s,compactIndices as r}from"../../../../geometry/support/Indices.js";import{newShortArray as o}from"../../../../geometry/support/ShortArray.js";import{compressNormal as h}from"./Normals.js";class n{constructor(t,r,h,n,a,p={}){this.path=t,this.profile=r,this.extruder=h,this.startCap=n,this.endCap=a,this.options=p,this._extrusionVertexCount=0;const l=this.path.vertices.length-2;this.numExtrusionProfiles=h.numProfilesPerJoin()*l+2,this.numVerticesTotal=r.vertices.length*this.numExtrusionProfiles,this.startCap.vertexBufferStart=this.numVerticesTotal;const u=this.startCap.numVertices;this.numVerticesTotal+=u,this.endCap.vertexBufferStart=this.numVerticesTotal;const x=this.endCap.numVertices;this.numVerticesTotal+=x,this.pathVertexData=s(1*this.numVerticesTotal),this.profileRightAxes=o(2*this.numVerticesTotal),this.profileUpAxes=o(2*this.numVerticesTotal),this.profileVertexAndNormals=i(4*this.numVerticesTotal),this.profileAuxData=i(2*this.numVerticesTotal),this.positions=e(t.positions,t.offset,3*t.vertices.length),this._rebuildGeometry(),this._buildTopology()}get usedMemory(){return t(this.pathVertexData,this.profileRightAxes,this.profileUpAxes,this.profileVertexAndNormals,this.profileAuxData)+this.path.usedMemory+this.profile.usedMemory}emitVertex(t,e,i,s,r){let o=4*this._extrusionVertexCount;if(this.profileVertexAndNormals[o]=i[0],this.profileVertexAndNormals[o+1]=i[1],this.profileVertexAndNormals[o+2]=s[0],this.profileVertexAndNormals[o+3]=s[1],this.pathVertexData[this._extrusionVertexCount]=t,o=2*this._extrusionVertexCount,r){const e=this.path.vertices[t],i=e.maxStretchDistance;this.profileAuxData[o]=e.rotationRight[0]*i,this.profileAuxData[o+1]=e.rotationRight[1]*i}else this.profileAuxData[o]=this.profileAuxData[o+1]=0;h(this.profileRightAxes,this._extrusionVertexCount,e.right[0],e.right[1],e.right[2]),h(this.profileUpAxes,this._extrusionVertexCount,e.up[0],e.up[1],e.up[2]),++this._extrusionVertexCount}emitCapVertex(t,e,i,s,r,o){let n=4*this._extrusionVertexCount;this.profileVertexAndNormals[n]=i[0],this.profileVertexAndNormals[n+1]=i[1],this.profileVertexAndNormals[n+2]=s[0],this.profileVertexAndNormals[n+3]=s[1],n=2*this._extrusionVertexCount,this.profileAuxData[n]=r,this.profileAuxData[n+1]=o,h(this.profileRightAxes,this._extrusionVertexCount,e.right[0],e.right[1],e.right[2]),h(this.profileUpAxes,this._extrusionVertexCount,e.up[0],e.up[1],e.up[2]),this.pathVertexData[this._extrusionVertexCount]=t,++this._extrusionVertexCount}_rebuildGeometry(){this._extrusionVertexCount=0;const{positions:t,offset:i,vertices:s}=this.path;this.positions=e(t,i,3*s.length);let r=0;const o=(t,e,i,s,o)=>this.emitCapVertex(r,t,e,i,s,o),h=(t,e,i,s)=>this.emitVertex(r,t,e,i,s);for(this.startCap.rebuildConnectingProfileGeometry(s[r],this.profile,o),r=1;r<s.length-1;++r)this.extruder.extrude(s[r],this.profile,h);this.endCap.rebuildConnectingProfileGeometry(s[r],this.profile,o),r=0,this.startCap.rebuildCapGeometry(s[r],o),r=s.length-1,this.endCap.rebuildCapGeometry(s[r],o)}_buildTopology(){const t=this.profile.vertices.length,e=this.profile.numSegments,i=this.numExtrusionProfiles-1;let s=3*(2*(e*i));this.startCap.indexBufferStart=s,this.startCap.firstProfileVertexIndex=0,s+=this.startCap.numIndices,this.endCap.indexBufferStart=s,this.endCap.firstProfileVertexIndex=t*(this.numExtrusionProfiles-1);const o=new Array,h=new Array,n=(t,e,i)=>{o.push(t),o.push(e),o.push(i),h.push(this.pathVertexData[t]),h.push(this.pathVertexData[e]),h.push(this.pathVertexData[i])};for(let r=0;r<e;++r){const e=this.profile.indices[2*r],s=this.profile.indices[2*r+1];for(let r=0;r<i;++r){const i=r*t+e,o=(r+1)*t+s,h=r*t+s;n(i,(r+1)*t+e,o),n(i,o,h)}}this.startCap.buildTopology(this.path.vertices[0],n),this.endCap.buildTopology(this.path.vertices[this.path.vertices.length-1],n),this.vertexIndices=r(o),this.pathVertexIndices=r(h)}onPathChanged(){this._rebuildGeometry()}}export{n as PathBuilder};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../../../core/PooledArray.js";
|
|
5
|
+
import t from"../../../../core/PooledArray.js";class r{constructor(r,e,i){this._context=r,this._locations=i,this._textures=new Map,this._freeTextureUnits=new t({deallocator:null}),this._glProgram=r.programCache.acquire(e.generate("vertex",!0),e.generate("fragment",!0),i),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=e.generateBind(this),this.bindPass=e.generateBindPass(this),this.bindDraw=e.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r){this._glProgram.setUniform1f(t,r)}setUniform2fv(t,r){this._glProgram.setUniform2fv(t,r)}setUniform3fv(t,r){this._glProgram.setUniform3fv(t,r)}setUniform4fv(t,r){this._glProgram.setUniform4fv(t,r)}setUniformMatrix3fv(t,r){this._glProgram.setUniformMatrix3fv(t,r)}setUniformMatrix4fv(t,r){this._glProgram.setUniformMatrix4fv(t,r)}setUniform1fv(t,r){this._glProgram.setUniform1fv(t,r)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t){t.locations!==this._locations&&console.error("VertexAttributeLocations are incompatible")}stop(){this._textures.clear(),this._freeTextureUnits.clear()}bindTexture(t,r){let e=this._textures.get(t);null==e?(e=this._allocTextureUnit(r),this._textures.set(t,e)):e.texture=r,this._context.useProgram(this),this.setUniform1i(t,e.unit),this._context.bindTexture(r,e.unit)}_allocTextureUnit(t){return{texture:t,unit:0===this._freeTextureUnits.length?this._textures.size:this._freeTextureUnits.pop()}}}export{r as Program};
|