@arcgis/core 5.1.0-next.53 → 5.1.0-next.55
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/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +1 -1
- package/applications/Components/SketchTooltipControls.d.ts +3 -2
- package/applications/Components/SketchTooltipControls.js +1 -1
- package/applications/Components/navigationDuration.d.ts +15 -0
- package/applications/Components/navigationDuration.js +2 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/05bc675c029ed311427f.js +1 -0
- package/assets/esri/core/workers/chunks/05d25a98c54679233902.js +1 -0
- package/assets/esri/core/workers/chunks/0b4a2361b9f9a6c0b8a7.js +1 -0
- package/assets/esri/core/workers/chunks/0e88e61d89f89994c4bf.js +1 -0
- package/assets/esri/core/workers/chunks/0f2ab57e4eb722b3b0c0.js +1 -0
- package/assets/esri/core/workers/chunks/{f4d31d96681b649ddc95.js → 0ff12fe9e358100668d9.js} +1 -1
- package/assets/esri/core/workers/chunks/1613123918e9b0f7cfdb.js +1 -0
- package/assets/esri/core/workers/chunks/1a198c9e17f7a058669e.js +1 -0
- package/assets/esri/core/workers/chunks/1f91280032aa42b1585b.js +1 -0
- package/assets/esri/core/workers/chunks/2327b368673a974dee8b.js +1 -0
- package/assets/esri/core/workers/chunks/23eb204d3cb818adea32.js +1 -0
- package/assets/esri/core/workers/chunks/254898b41cabe313b6ce.js +1 -0
- package/assets/esri/core/workers/chunks/26cafd20c8d03c274389.js +1 -0
- package/assets/esri/core/workers/chunks/{a69f1879735a031f62e9.js → 2a2d5f9ea42cb2eee9c6.js} +1 -1
- package/assets/esri/core/workers/chunks/2bc6edeb3156d241677b.js +1 -0
- package/assets/esri/core/workers/chunks/{d587b7842091affdaac3.js → 3158a3487d3e8a61b680.js} +1 -1
- package/assets/esri/core/workers/chunks/34acecd7a314fed12335.js +1 -0
- package/assets/esri/core/workers/chunks/{07e791530677f7e70f32.js → 3a2ecb883fdb5c598544.js} +2 -2
- package/assets/esri/core/workers/chunks/{cdeb6aec578a1c07d663.js → 3cb0f020f9bfc6653c5d.js} +1 -1
- package/assets/esri/core/workers/chunks/3e0752a81a7247c567ab.js +1 -0
- package/assets/esri/core/workers/chunks/3ef740d25dc17bef11b2.js +1 -0
- package/assets/esri/core/workers/chunks/42e084704dea6e4135b6.js +1 -0
- package/assets/esri/core/workers/chunks/{5b3bb636e3bec625e515.js → 4301cb9670fa7c907460.js} +1 -1
- package/assets/esri/core/workers/chunks/457bbf27e9bc18132464.js +1 -0
- package/assets/esri/core/workers/chunks/45eddf3918973fa8d751.js +1 -0
- package/assets/esri/core/workers/chunks/48eca6f51112ba80bd3b.js +1 -0
- package/assets/esri/core/workers/chunks/4a6186001323b47c23a4.js +1 -0
- package/assets/esri/core/workers/chunks/4b3622fc355fd2fd8678.js +1 -0
- package/assets/esri/core/workers/chunks/4e7bb224bde9e5039263.js +1 -0
- package/assets/esri/core/workers/chunks/4f847a426973bd350c11.js +1 -0
- package/assets/esri/core/workers/chunks/{193775b3b7de8f5dc578.js → 4fb718174c6e07d752e0.js} +1 -1
- package/assets/esri/core/workers/chunks/5143f74f1fe7533a6069.js +1 -0
- package/assets/esri/core/workers/chunks/{36425d29aaa5852cb41d.js → 522bc1d79dbe957301e4.js} +1 -1
- package/assets/esri/core/workers/chunks/52dbfd7519555028a8af.js +1 -0
- package/assets/esri/core/workers/chunks/55214e1d9f3d98fa7ed9.js +1 -0
- package/assets/esri/core/workers/chunks/56bce3a6701f8549606b.js +1 -0
- package/assets/esri/core/workers/chunks/572fcd33ae3648ed4f9c.js +1 -0
- package/assets/esri/core/workers/chunks/576a1784e93c5406e657.js +1 -0
- package/assets/esri/core/workers/chunks/59289867cce97da74e39.js +1 -0
- package/assets/esri/core/workers/chunks/{fdf8fe0f50a9ae548c16.js → 5a1d975b3e9e6b7eff67.js} +1 -1
- package/assets/esri/core/workers/chunks/5a83ea967ecde01d5622.js +1 -0
- package/assets/esri/core/workers/chunks/5a9620cb66c8e64e4668.js +1 -0
- package/assets/esri/core/workers/chunks/5aff2d6ae0d2a2d92ecc.js +1 -0
- package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +1 -0
- package/assets/esri/core/workers/chunks/66fc3c4d6c54eee231b9.js +1 -0
- package/assets/esri/core/workers/chunks/{de359f89e03da18999fc.js → 691d0a60354b6458b9de.js} +1 -1
- package/assets/esri/core/workers/chunks/69644b8a6ce340ca1159.js +1 -0
- package/assets/esri/core/workers/chunks/6ab8ed12d162d79a8c55.js +1 -0
- package/assets/esri/core/workers/chunks/{d44217de4c73475f9c66.js → 73a045061e69a22b6869.js} +1 -1
- package/assets/esri/core/workers/chunks/76064c2c801da55cd844.js +1 -0
- package/assets/esri/core/workers/chunks/770880ad43f252962017.js +1 -0
- package/assets/esri/core/workers/chunks/78cb6b9ab32abdd1d530.js +1 -0
- package/assets/esri/core/workers/chunks/7b6e3cc086d13da770fa.js +1 -0
- package/assets/esri/core/workers/chunks/7ed2aa1092c0a2c839c0.js +1 -0
- package/assets/esri/core/workers/chunks/83113a9e284701d053b5.js +1 -0
- package/assets/esri/core/workers/chunks/8418ad9ad7b6481ebe82.js +1 -0
- package/assets/esri/core/workers/chunks/85c72d9fa533552a6e8a.js +1 -0
- package/assets/esri/core/workers/chunks/861a7d0e665add901e11.js +1 -0
- package/assets/esri/core/workers/chunks/87077f4cbca13e030411.js +1 -0
- package/assets/esri/core/workers/chunks/{199f70c0373f6008a545.js → 8df0c154bb0d79a905c0.js} +1 -1
- package/assets/esri/core/workers/chunks/9066f095f16448c0a04e.js +1 -0
- package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +1 -0
- package/assets/esri/core/workers/chunks/929b26999321519824b9.js +1 -0
- package/assets/esri/core/workers/chunks/9321f5ec514805307219.js +1 -0
- package/assets/esri/core/workers/chunks/932a0b39d85a76377d52.js +1 -0
- package/assets/esri/core/workers/chunks/93d1118f7a909d123b40.js +1 -0
- package/assets/esri/core/workers/chunks/94f80c46ccf5e19038b8.js +1 -0
- package/assets/esri/core/workers/chunks/979c2f52b6d6e1e8241b.js +1 -0
- package/assets/esri/core/workers/chunks/{617328964d480d4a3a45.js → 9806cc96414065ae0afe.js} +1 -1
- package/assets/esri/core/workers/chunks/{e6220c1fa887e21ffbbd.js → 9a235c92f21df2c17aa8.js} +1 -1
- package/assets/esri/core/workers/chunks/{f7fb121169b7e5a5adbc.js → 9d11e7972bc298cb94ce.js} +1 -1
- package/assets/esri/core/workers/chunks/a11f05ddd8314b648f76.js +1 -0
- package/assets/esri/core/workers/chunks/{15a45e26964c2eb381a6.js → a256edc8337e462f80f0.js} +1 -1
- package/assets/esri/core/workers/chunks/a41fabf8b2cf15b7d0c9.js +1 -0
- package/assets/esri/core/workers/chunks/{987dc23fdc0a8c7150b9.js → a5bf2718c02a0e645013.js} +1 -1
- package/assets/esri/core/workers/chunks/a7a553e245ba011d259f.js +1 -0
- package/assets/esri/core/workers/chunks/a8e111a5cfd6151d5dbb.js +1 -0
- package/assets/esri/core/workers/chunks/a9eb90b901e64e67b7a3.js +1 -0
- package/assets/esri/core/workers/chunks/{21decfc1e477fb769204.js → aa7aaeae31ddb259e55e.js} +1 -1
- package/assets/esri/core/workers/chunks/ad1946c084219bb678a0.js +1 -0
- package/assets/esri/core/workers/chunks/aed45f7e7eee154a21b8.js +1 -0
- package/assets/esri/core/workers/chunks/b056b4c79bcd542dd1d2.js +1 -0
- package/assets/esri/core/workers/chunks/b1a0a7cdaf50f98adb3e.js +1 -0
- package/assets/esri/core/workers/chunks/b20f4c82d0b44fdb4670.js +1 -0
- package/assets/esri/core/workers/chunks/b39b4db86a1049f0b901.js +1 -0
- package/assets/esri/core/workers/chunks/{1a1e57267306c07e5bdb.js → b3f0600729227b458a75.js} +1 -1
- package/assets/esri/core/workers/chunks/bacc343a79828e456de7.js +1 -0
- package/assets/esri/core/workers/chunks/bb047157f09471ecea53.js +1 -0
- package/assets/esri/core/workers/chunks/bc3b22dc08c147b8d425.js +1 -0
- package/assets/esri/core/workers/chunks/{29c91b5c9ddcea85f39a.js → c250799c131aa4ed2c35.js} +1 -1
- package/assets/esri/core/workers/chunks/{a495e60996a36ce19a32.js → c4da2ca1dee0c44051d0.js} +1 -1
- package/assets/esri/core/workers/chunks/c6149e0ac1c103e03baf.js +1 -0
- package/assets/esri/core/workers/chunks/c69fefe9d51ac7c2b0a6.js +1 -0
- package/assets/esri/core/workers/chunks/c86b15f6a18880f921cd.js +1 -0
- package/assets/esri/core/workers/chunks/c91d39e8e14be3d8bdf5.js +1 -0
- package/assets/esri/core/workers/chunks/c9c5e6996f36ec4b1558.js +1 -0
- package/assets/esri/core/workers/chunks/cd391415b8b8320e12e4.js +1 -0
- package/assets/esri/core/workers/chunks/d3b3e8c6d7096bc59489.js +1 -0
- package/assets/esri/core/workers/chunks/{81b830f0d620587966ca.js → d53c6fc10425adc2c0cf.js} +1 -1
- package/assets/esri/core/workers/chunks/d9444dd0d40aa8332b28.js +1 -0
- package/assets/esri/core/workers/chunks/da0a61f73d45ea9e71fc.js +1 -0
- package/assets/esri/core/workers/chunks/da2a10e72a315c3c1f82.js +1 -0
- package/assets/esri/core/workers/chunks/{9ae90a4b281d4103e8bb.js → dc07dc1cd30edc0c4193.js} +1 -1
- package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +1 -0
- package/assets/esri/core/workers/chunks/e2e3c39876bbe019c57a.js +1 -0
- package/assets/esri/core/workers/chunks/e543bb228f3f9d937d43.js +1 -0
- package/assets/esri/core/workers/chunks/e7e565e7c0ce1464c6b0.js +1 -0
- package/assets/esri/core/workers/chunks/e8a23ae30d586e3a973c.js +1 -0
- package/assets/esri/core/workers/chunks/{3c9e1ec94bbcbf494916.js → ea068f75397c3b3337ec.js} +3 -3
- package/assets/esri/core/workers/chunks/ec21311584e4fb13e510.js +1 -0
- package/assets/esri/core/workers/chunks/{c09bc36347e8eb9fff00.js → f09446b9ff937a84d6d3.js} +1 -1
- package/assets/esri/core/workers/chunks/{354b309c8225336bc1e5.js → f6d047358d14328f3622.js} +1 -1
- package/assets/esri/core/workers/chunks/f8ee1a99580a7da42cde.js +1 -0
- package/assets/esri/core/workers/chunks/{c6a0e770c1a89d3b5913.js → fb9a889ec9fd23739a14.js} +1 -1
- package/assets/esri/core/workers/chunks/{b2a67fe89f6505498bc3.js → fe1b67ab7748a3aef231.js} +1 -1
- package/assets/esri/core/workers/chunks/fe92f54e45fd21ccd75f.js +1 -0
- package/assets/esri/core/workers/chunks/ff0cb1eec14d34214f12.js +1 -0
- package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
- package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
- package/assets/esri/themes/base/_Ui.scss +3 -3
- package/assets/esri/themes/base/_mixins.scss +2 -2
- package/assets/esri/themes/base/widgets/_Attachments.scss +3 -3
- package/assets/esri/themes/base/widgets/_BasemapGallery.scss +8 -8
- package/assets/esri/themes/base/widgets/_BasemapToggle.scss +1 -1
- package/assets/esri/themes/base/widgets/_BuildingExplorer.scss +1 -1
- package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
- package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +1 -1
- package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +2 -2
- package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -4
- package/assets/esri/themes/base/widgets/_Daylight.scss +1 -1
- package/assets/esri/themes/base/widgets/_Editor.scss +2 -2
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +2 -2
- package/assets/esri/themes/base/widgets/_FeatureMedia.scss +1 -1
- package/assets/esri/themes/base/widgets/_FeatureTable.scss +1 -1
- package/assets/esri/themes/base/widgets/_FloorFilter.scss +2 -2
- package/assets/esri/themes/base/widgets/_Grid.scss +1 -1
- package/assets/esri/themes/base/widgets/_GridControls.scss +1 -1
- package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
- package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
- package/assets/esri/themes/base/widgets/_LineOfSight.scss +1 -1
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +1 -1
- package/assets/esri/themes/base/widgets/_OrientedImageryViewerNavigationUI.scss +3 -3
- package/assets/esri/themes/base/widgets/_Popup.scss +1 -1
- package/assets/esri/themes/base/widgets/_Print.scss +3 -3
- package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
- package/assets/esri/themes/base/widgets/_Slice.scss +1 -1
- package/assets/esri/themes/base/widgets/_Slider.scss +3 -3
- package/assets/esri/themes/base/widgets/_SnappingControls.scss +2 -2
- package/assets/esri/themes/base/widgets/_Spinner.scss +2 -2
- package/assets/esri/themes/base/widgets/_Swipe.scss +2 -2
- package/assets/esri/themes/base/widgets/_Tooltip.scss +2 -2
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
- package/assets/esri/themes/base/widgets/_VideoPlayer.scss +2 -2
- package/assets/esri/themes/base/widgets/_Widget.scss +8 -8
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/CutFillComposition.glsl.js +10 -4
- package/chunks/OITBlend.glsl.js +2 -2
- package/chunks/RibbonLine.glsl.js +75 -63
- package/chunks/ShadowHighlight.glsl.js +1 -1
- package/chunks/Viewshed.glsl.js +2 -2
- package/chunks/Water.glsl.js +24 -16
- package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
- package/chunks/arcgis-knowledge-client-core.js +1 -1
- package/config.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/geometry/SpatialReference.js +1 -1
- package/geometry/operators/offsetOperator.d.ts +1 -1
- package/geometry/operators/proximityOperator.d.ts +1 -1
- package/geometry/operators/support/apiConverter.js +1 -1
- package/geometry/support/aaBoundingBox.js +1 -1
- package/geometry/support/curves/bezierCurveUtils.js +1 -1
- package/geometry/support/curves/circularArcUtils.js +1 -1
- package/geometry/support/curves/ellipticArc4Utils.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/geometryUtils.js +1 -1
- package/geometry/support/zscale.js +1 -1
- package/interfaces.d.ts +7 -0
- package/kernel.js +1 -1
- package/layers/LinkChartLayer.js +1 -1
- package/layers/OrientedImageryLayer.d.ts +0 -152
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/package.json +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/rest/knowledgeGraph/wasmInterface/knowledgeWasmAccess.js +1 -1
- package/support/revision.js +1 -1
- package/support/tests/serviceMockDependencies.js +1 -1
- package/views/2d/engine/flow/FlowContainer.js +1 -1
- package/views/2d/engine/flow/FlowStrategy.js +1 -1
- package/views/2d/engine/flow/FlowView2D.js +1 -1
- package/views/2d/engine/flow/dataUtils.js +1 -1
- package/views/2d/engine/flow/particleConstants.js +2 -0
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/flow/styles/Particles.js +1 -1
- package/views/2d/engine/flow/styles/Stack.js +1 -1
- package/views/2d/engine/flow/styles/Streamlines.js +1 -1
- package/views/2d/engine/flow/utils.js +1 -1
- package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/Profiler.js +1 -1
- package/views/2d/engine/webgl/WGLContainer.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +2 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.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/line/GradientStrokeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +2 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +2 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +2 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +2 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
- package/views/2d/layers/features/FeatureContainer.js +1 -1
- package/views/2d/layers/features/RenderState.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/interactive/manipulators/ShiftManipulator.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/lineUtils.js +1 -1
- package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
- package/views/3d/layers/support/Tiles3DBVH.js +1 -1
- package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
- package/views/3d/support/orientedBoundingBox.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.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/core/shaderLibrary/ShaderOutput.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/GLMaterialLoader.js +2 -0
- package/views/3d/webgl-engine/lib/GLMaterialParameters.js +1 -1
- package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
- package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
- package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
- package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ReprojectionUniforms.js +2 -0
- package/views/3d/webgl-engine/lib/ScreenSpaceReflectionsUniforms.js +2 -0
- package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
- package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
- package/views/3d/webgl.js +1 -1
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/plugins/ShapePlugin.js +1 -1
- package/views/draw/plugins/TangentArcSegmentPlugin.js +2 -0
- package/views/draw/support/managers/GlobalStateManager.js +1 -1
- package/views/draw/support/types.d.ts +9 -0
- package/views/interactive/SegmentLabels.js +1 -1
- package/views/webgl/AllocationTracer.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/checkWebGLError.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/support/locatorUtils.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/support/SketchTooltipControls.js +1 -1
- package/assets/esri/core/workers/chunks/001492854799c35b53bb.js +0 -1
- package/assets/esri/core/workers/chunks/004f991251f09b36fb09.js +0 -1
- package/assets/esri/core/workers/chunks/01dd849a2d335e9f3e16.js +0 -1
- package/assets/esri/core/workers/chunks/027d733a99f50cadcf22.js +0 -1
- package/assets/esri/core/workers/chunks/03d85a706669aaf24d49.js +0 -1
- package/assets/esri/core/workers/chunks/0450133e81bce4b48b84.js +0 -1
- package/assets/esri/core/workers/chunks/085778ecd39f46324a6b.js +0 -1
- package/assets/esri/core/workers/chunks/08dce0019b52042b01fa.js +0 -1
- package/assets/esri/core/workers/chunks/0d8294982853308225da.js +0 -1
- package/assets/esri/core/workers/chunks/156aecac067213642aae.js +0 -1
- package/assets/esri/core/workers/chunks/184e9147f7a2f0ae5915.js +0 -1
- package/assets/esri/core/workers/chunks/19f59a2a97c33ff92650.js +0 -1
- package/assets/esri/core/workers/chunks/1cce2f8837ad765acf44.js +0 -1
- package/assets/esri/core/workers/chunks/20f9f3470cad47d01803.js +0 -1
- package/assets/esri/core/workers/chunks/23a9070e9362b8439770.js +0 -1
- package/assets/esri/core/workers/chunks/28ac3a75130fe2b57ac7.js +0 -1
- package/assets/esri/core/workers/chunks/2b7d020367cb4ebb3c3d.js +0 -1
- package/assets/esri/core/workers/chunks/3104b10770903c265626.js +0 -1
- package/assets/esri/core/workers/chunks/33f00633131581e06328.js +0 -1
- package/assets/esri/core/workers/chunks/365ad1ffd496ed86637b.js +0 -1
- package/assets/esri/core/workers/chunks/36a0e48113ab59a4f21d.js +0 -1
- package/assets/esri/core/workers/chunks/3874362bf7d43adc41bb.js +0 -1
- package/assets/esri/core/workers/chunks/38dc1c4b8721efd4a165.js +0 -1
- package/assets/esri/core/workers/chunks/3e9700445518b8f9ae1b.js +0 -1
- package/assets/esri/core/workers/chunks/42f3fdad1728433b3510.js +0 -1
- package/assets/esri/core/workers/chunks/436941ec88439667022e.js +0 -1
- package/assets/esri/core/workers/chunks/440a650ed0867a16f559.js +0 -1
- package/assets/esri/core/workers/chunks/440f76c397a813b0dcf9.js +0 -1
- package/assets/esri/core/workers/chunks/4812482f28f7205b0938.js +0 -1
- package/assets/esri/core/workers/chunks/5317cbef0aac29761575.js +0 -1
- package/assets/esri/core/workers/chunks/5344919fc6e8050450f1.js +0 -1
- package/assets/esri/core/workers/chunks/54a9e17d6c0fef6a9146.js +0 -1
- package/assets/esri/core/workers/chunks/55985c9c48b8e1d1c634.js +0 -1
- package/assets/esri/core/workers/chunks/5e5b358e603b13b4d7d7.js +0 -1
- package/assets/esri/core/workers/chunks/5e9bd5ed6ecee5b15127.js +0 -1
- package/assets/esri/core/workers/chunks/63b9e4a7dad358605c38.js +0 -1
- package/assets/esri/core/workers/chunks/64845b1f53eca9db1229.js +0 -1
- package/assets/esri/core/workers/chunks/662932d2effd2b384b9e.js +0 -1
- package/assets/esri/core/workers/chunks/66d4cbb35d0c290150bf.js +0 -1
- package/assets/esri/core/workers/chunks/677d3674cb2c0c05fb7e.js +0 -1
- package/assets/esri/core/workers/chunks/6f58ec80abebb7bfbbb0.js +0 -1
- package/assets/esri/core/workers/chunks/7100c9038739121c2c4b.js +0 -1
- package/assets/esri/core/workers/chunks/7278cc37e85f0242f19b.js +0 -1
- package/assets/esri/core/workers/chunks/794f604d4267e374f7dd.js +0 -1
- package/assets/esri/core/workers/chunks/7ae8f73c8e2afae98ecb.js +0 -1
- package/assets/esri/core/workers/chunks/7d4af7e2cb2f234e12eb.js +0 -1
- package/assets/esri/core/workers/chunks/7d56b2ac5030dd8b748e.js +0 -1
- package/assets/esri/core/workers/chunks/807b12ace0099300b9b9.js +0 -1
- package/assets/esri/core/workers/chunks/816a4b03f2ea49238a6c.js +0 -1
- package/assets/esri/core/workers/chunks/842b442cc012d0797333.js +0 -1
- package/assets/esri/core/workers/chunks/8903ff28896bd6f34b0d.js +0 -1
- package/assets/esri/core/workers/chunks/89e9bc8789b100316136.js +0 -1
- package/assets/esri/core/workers/chunks/8afe32d3db9669f972bc.js +0 -1
- package/assets/esri/core/workers/chunks/91fd28f50477d16e294e.js +0 -1
- package/assets/esri/core/workers/chunks/953f671bdeb2ca9b9f37.js +0 -1
- package/assets/esri/core/workers/chunks/96e799ca97989a6ed448.js +0 -1
- package/assets/esri/core/workers/chunks/98011b93acf3d5f0b5a2.js +0 -1
- package/assets/esri/core/workers/chunks/9c7fd5db0813bdc38582.js +0 -1
- package/assets/esri/core/workers/chunks/9db2ff1d4cbb5d1b623e.js +0 -1
- package/assets/esri/core/workers/chunks/a2fee1611319665e6aed.js +0 -1
- package/assets/esri/core/workers/chunks/a644e30f65347ce846ed.js +0 -1
- package/assets/esri/core/workers/chunks/a64daa4945923a178fe5.js +0 -1
- package/assets/esri/core/workers/chunks/a84d67c1a1008bca2075.js +0 -1
- package/assets/esri/core/workers/chunks/a85575a8d1da09280cd7.js +0 -1
- package/assets/esri/core/workers/chunks/ab414a60808ea05a63e6.js +0 -1
- package/assets/esri/core/workers/chunks/ac4f7309a249132c22da.js +0 -1
- package/assets/esri/core/workers/chunks/aeb1900cfdd0e51cc5f8.js +0 -1
- package/assets/esri/core/workers/chunks/ba62f3aa811430787863.js +0 -1
- package/assets/esri/core/workers/chunks/c03d0091a6f385b9ce8d.js +0 -1
- package/assets/esri/core/workers/chunks/c20aaca8085ce897bd12.js +0 -1
- package/assets/esri/core/workers/chunks/c3e711dc608eedda2d14.js +0 -1
- package/assets/esri/core/workers/chunks/c4a9006cc6d2938570e0.js +0 -1
- package/assets/esri/core/workers/chunks/c692ea68509bddbf7b42.js +0 -1
- package/assets/esri/core/workers/chunks/cb8c17daec7055bf99cc.js +0 -1
- package/assets/esri/core/workers/chunks/d7439d357f68160844cb.js +0 -1
- package/assets/esri/core/workers/chunks/dd319d5fe89b275e93cf.js +0 -1
- package/assets/esri/core/workers/chunks/df3e79b56c37156e7895.js +0 -1
- package/assets/esri/core/workers/chunks/df8b80b17e371c9be4e6.js +0 -1
- package/assets/esri/core/workers/chunks/e77198f8ab47441423c5.js +0 -1
- package/assets/esri/core/workers/chunks/e786da40a1c87bed64ca.js +0 -1
- package/assets/esri/core/workers/chunks/e8aafef6342c50340a27.js +0 -1
- package/assets/esri/core/workers/chunks/ec00348d74e29f48613a.js +0 -1
- package/assets/esri/core/workers/chunks/ec65c9c72507ef9a9cf9.js +0 -1
- package/assets/esri/core/workers/chunks/eedeff8b344ff699b0b9.js +0 -1
- package/assets/esri/core/workers/chunks/f1767b8ba82fdd9bd947.js +0 -1
- package/assets/esri/core/workers/chunks/f4201e7dcae224d0caf0.js +0 -1
- package/assets/esri/core/workers/chunks/f7cc05fbfc97b4d36eba.js +0 -1
- package/assets/esri/core/workers/chunks/f9d369a4683f88ee9d76.js +0 -1
- package/assets/esri/core/workers/chunks/fc534c94d55331578195.js +0 -1
- package/assets/esri/themes/base/colors/css/brand_colors.css +0 -76
- package/assets/esri/themes/base/colors/css/calcite_core_colors.css +0 -169
- package/assets/esri/themes/base/colors/css/calcite_core_colors_dark.css +0 -169
- package/assets/esri/themes/base/colors/css/calcite_gray_colors.css +0 -43
- package/assets/esri/themes/base/colors/css/calcite_gray_colors_dark.css +0 -43
- package/assets/esri/themes/base/colors/css/calcite_highlight_colors.css +0 -43
- package/assets/esri/themes/base/colors/css/calcite_highlight_colors_dark.css +0 -43
- package/assets/esri/themes/base/colors/css/calcite_vibrant_colors.css +0 -67
- package/assets/esri/themes/base/colors/css/calcite_vibrant_colors_dark.css +0 -67
- package/assets/esri/themes/base/colors/css/complete.css +0 -610
- package/assets/esri/themes/base/colors/css/scss/brand_colors.scss +0 -128
- package/assets/esri/themes/base/colors/css/scss/calcite_core_colors.scss +0 -289
- package/assets/esri/themes/base/colors/css/scss/calcite_core_colors_dark.scss +0 -285
- package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors.scss +0 -96
- package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors_dark.scss +0 -91
- package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors.scss +0 -69
- package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors_dark.scss +0 -65
- package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors.scss +0 -128
- package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors_dark.scss +0 -124
- package/assets/esri/themes/base/colors/css/scss/complete.scss +0 -11
- package/assets/esri/themes/base/colors/patterns_json/brand_colors.css +0 -366
- package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors.css +0 -687
- package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors_dark.css +0 -673
- package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors.css +0 -177
- package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors_dark.css +0 -169
- package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors.css +0 -178
- package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors_dark.css +0 -169
- package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors.css +0 -273
- package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors_dark.css +0 -265
- package/assets/esri/themes/base/colors/patterns_json/complete.css +0 -2847
- package/assets/esri/themes/base/colors/patterns_json/scss/brand_colors.scss +0 -464
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors.scss +0 -967
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors_dark.scss +0 -964
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors.scss +0 -265
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors_dark.scss +0 -263
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors.scss +0 -237
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors_dark.scss +0 -235
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors.scss +0 -376
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors_dark.scss +0 -347
- package/assets/esri/themes/base/colors/patterns_json/scss/complete.scss +0 -12
- package/assets/esri/themes/base/icons/readme/download.png +0 -0
- package/assets/esri/themes/base/icons/readme/import-icons.png +0 -0
- package/assets/esri/themes/base/icons/readme/import.png +0 -0
- package/assets/esri/themes/base/icons/readme/load.png +0 -0
- package/assets/esri/themes/base/icons/selection.json +0 -1
- package/assets/esri/themes/base/icons/style.css +0 -774
- package/views/2d/engine/brushes.js +0 -2
- package/views/2d/engine/flow/BrushFlow.js +0 -2
- package/views/2d/engine/rasterBrushes.js +0 -2
- package/views/2d/engine/webgl/brushes/BrushClip.js +0 -2
- package/views/2d/engine/webgl/brushes/WGLBrush.js +0 -2
- package/views/2d/engine/webgl/painter/RenderPass.js +0 -2
- package/views/2d/engine/webgl/shaders/BackgroundPrograms.js +0 -2
- package/views/2d/engine/webgl/shaders/TileInfoPrograms.js +0 -2
- package/views/3d/webgl-engine/lib/GLMaterials.js +0 -2
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Float4PassUniform as
|
|
3
|
-
vec4
|
|
2
|
+
import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as i}from"../views/webgl/NoParameters.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";class a extends i{constructor(){super(...arguments),this.borderColor=e()}}function u(){const e=new c;return e.include(r),e.outputs.add("fragColor","vec4",0),e.fragment.uniforms.add(new s("colorTexture",e=>e.color),new s("cutVolume",e=>e.cutVolume),new s("fillVolume",e=>e.fillVolume),new s("cutFillMask",e=>e.cutFillMask),new s("depthTexture",e=>e.sceneDepth),new s("cutFillReferenceDepthTexture",e=>e.referenceDepth),new l("pixelRatio",(e,r)=>r.camera.pixelRatio),new t("borderColor",e=>e.borderColor)).main.add(o`vec4 color = texture(colorTexture, uv, 0.0);
|
|
3
|
+
vec4 cutVolume = texture(cutVolume, uv, 0.0);
|
|
4
|
+
vec4 fillVolume = texture(fillVolume, uv, 0.0);
|
|
5
|
+
float sceneDepth = texture(depthTexture, uv, 0.0).r;
|
|
6
|
+
float referenceDepth = texture(cutFillReferenceDepthTexture, uv, 0.0).r;
|
|
4
7
|
ivec2 iuv = ivec2(uv * vec2(textureSize(cutFillMask, 0)));
|
|
5
8
|
vec2 m0 = texelFetch(cutFillMask, iuv, 0).rg;
|
|
6
9
|
vec2 m1 = texelFetch(cutFillMask, iuv + ivec2(-1, 0), 0).rg;
|
|
@@ -13,5 +16,8 @@ step(1.5, abs(m0.r - m1.r) + abs(m0.g - m1.g))
|
|
|
13
16
|
+ step(1.5, abs(m0.r - m3.r) + abs(m0.g - m3.g))
|
|
14
17
|
+ step(1.5, abs(m0.r - m4.r) + abs(m0.g - m4.g))
|
|
15
18
|
) * 0.25 * pixelRatio;
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
float visibleAgainstScene = step(referenceDepth, sceneDepth);
|
|
20
|
+
vec4 base = mix(color, cutVolume, m0.r * cutVolume.a * visibleAgainstScene);
|
|
21
|
+
base = mix(base, fillVolume, m0.g * fillVolume.a);
|
|
22
|
+
float borderFade = mix(0.5, 1.0, visibleAgainstScene);
|
|
23
|
+
fragColor = mix(base, borderColor, d * borderFade);`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,CutFillCompositionPassParameters:a,build:u},Symbol.toStringTag,{value:"Module"}));export{a as C,m as a,u as b};
|
package/chunks/OITBlend.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as s}from"./OITDim.glsl.js";import{oitResolution as
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as s}from"./OITDim.glsl.js";import{oitResolution as n}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";class i extends s{}function c(s){const i=new a;i.include(e);const{hasEmission:c,frontFaceMask:l,computeHudOcclusion:u,useFloatBlend:m}=s,f=i.fragment;f.include(n,s),f.uniforms.add(new t("colorTexture",e=>e.colorTexture),new t("alphaTexture",e=>e.alphaTexture));let d=0;return i.outputs.add("fragColor","vec4",d++),c&&i.outputs.add("fragEmission","vec4",d++),u&&i.outputs.add("fragOcclusion","vec4",d++),f.uniforms.add(new t("frontFaceTexture",e=>e.frontFaceTexture)),c&&(f.uniforms.add(new t("emissionTexture",e=>e.emissionTexture)),f.uniforms.add(new t("emissionFrontFaceTexture",e=>e.emissionFrontFaceTexture))),f.main.add(o`
|
|
3
3
|
float srcAlpha = texture(alphaTexture, uv).r * floatBlendInputScale;
|
|
4
4
|
${r(u,"fragOcclusion = vec4(1.0, 0.0, 0.0, 1.0);")}
|
|
5
5
|
|
|
@@ -22,7 +22,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
|
|
|
22
22
|
${r(!m,"float frontWeight = srcAlpha * floatBlendOutputScale;\n frontFace.a = mix(frontFace.a, 1.0, clamp((frontWeight - 0.9) * 10.0, 0.0, 1.0));")}
|
|
23
23
|
fragColor = vec4(mix(srcColor.rgb * floatBlendInputScale / srcAlpha, frontFace.rgb, frontFace.a), 1.0 - srcColor.a);
|
|
24
24
|
|
|
25
|
-
${r(c,"vec4 emission = texture(emissionTexture, uv)
|
|
25
|
+
${r(c,"vec4 emission = texture(emissionTexture, uv);\n emission.rgb *= floatBlendInputScale;\n vec4 emissionFrontFace = texture(emissionFrontFaceTexture, uv);\n emissionFrontFace.rgb *= floatBlendInputScale;\n\n // Modulate transparent emitter by front faces. This case is important for surfaces which contain emitter and\n // non-emitter at the same time. Non-emitter surface parts need to modulate emissions as well.\n emission.rgb = emission.rgb * (1.0 - frontFace.a);\n\n fragEmission = vec4(mix(emission.rgb / srcAlpha, emissionFrontFace.rgb, emissionFrontFace.a) * floatBlendOutputScale, 1.0 - srcColor.a);\n ")}
|
|
26
26
|
|
|
27
27
|
${r(u,"fragOcclusion.r = pow(srcColor.a, 0.5);")}
|
|
28
28
|
`),i}const l=Object.freeze(Object.defineProperty({__proto__:null,OITBlendPassParameters:i,build:c},Symbol.toStringTag,{value:"Module"}));export{i as O,l as a,c as b};
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as
|
|
3
|
-
return
|
|
2
|
+
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as m,addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as L}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as b}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as z}from"../views/webgl/ShaderBuilder.js";const P=1;function j(j){const C=new z,{attributes:W,varyings:R,vertex:F,fragment:A}=C,{applyMarkerOffset:V,draped:T,output:E,capType:N,stippleEnabled:O,falloffEnabled:M,roundJoins:$,wireframe:_,innerColorEnabled:k,hasAnimation:I,hasScreenSizePerspective:B,worldSizedImagePattern:H}=j;A.include(a),C.include(t,j),C.include(n,j),C.include(i,j),C.include(l,j),C.include(b,j);const J=V&&!T;J&&(F.uniforms.add(new u("markerScale",e=>e.markerScale)),C.include(r,{space:2,hasScreenSizePerspective:B})),m(F,j),F.uniforms.add(new w("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("nearFar",e=>e.camera.nearFar),new u("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new g("viewport",e=>e.camera.fullViewport)),F.constants.add("LARGE_HALF_FLOAT","float",65500),W.add("position","vec3"),W.add("previousDelta","vec4"),W.add("nextDelta","vec4"),W.add("lineParameters","vec2"),W.add("u0","float"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const U=O;U&&R.add("vLineSizeInv","float");const Z=2===N,G=O&&Z,X=M||G;X&&R.add("vLineDistanceNorm","float"),Z&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),F.code.add(S`vec3 perpendicular(vec3 v) {
|
|
3
|
+
return vec3(v.y, -v.x, 0.0);
|
|
4
4
|
}
|
|
5
5
|
float interp(float ncp, vec4 a, vec4 b) {
|
|
6
6
|
return (-ncp - a.z) / (b.z - a.z);
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
vec3 rotateZ(vec3 v, float a) {
|
|
9
9
|
float s = sin(a);
|
|
10
10
|
float c = cos(a);
|
|
11
11
|
mat2 m = mat2(c, -s, s, c);
|
|
12
|
-
return m * v;
|
|
13
|
-
}`),F.code.add(
|
|
12
|
+
return vec3(m * v.xy, v.z);
|
|
13
|
+
}`),F.code.add(S`vec4 projectAndScale(vec4 pos) {
|
|
14
14
|
vec4 posNdc = proj * pos;
|
|
15
15
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
16
|
+
posNdc.z /= posNdc.w;
|
|
16
17
|
return posNdc;
|
|
17
|
-
}`),F.code.add(
|
|
18
|
+
}`),F.code.add(S`void clip(
|
|
18
19
|
inout vec4 pos,
|
|
19
20
|
inout vec4 prev,
|
|
20
21
|
inout vec4 next,
|
|
@@ -45,7 +46,7 @@ if (next.z > -nearFar[0]) {
|
|
|
45
46
|
next = mix(next, pos, interp(vnp, next, pos));
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
|
-
}`),v(F),F.constants.add("aaWidth","float",
|
|
49
|
+
}`),v(F),F.constants.add("aaWidth","float",O?0:1).main.add(S`
|
|
49
50
|
// unpack values from vertex type
|
|
50
51
|
bool isStartVertex = abs(abs(lineParameters.y) - 3.0) == 1.0;
|
|
51
52
|
vec3 prevPosition = position + previousDelta.xyz * previousDelta.w;
|
|
@@ -64,11 +65,11 @@ next = mix(next, pos, interp(vnp, next, pos));
|
|
|
64
65
|
vec4 next = view * vec4(nextPosition, 1.0);
|
|
65
66
|
|
|
66
67
|
bool isJoin = abs(lineParameters.y) < 3.0;
|
|
67
|
-
`),J&&F.main.add(
|
|
68
|
+
`),J&&F.main.add(S`vec4 other = isStartVertex ? next : prev;
|
|
68
69
|
bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
|
|
69
70
|
if (!isJoin && !markersHidden) {
|
|
70
71
|
pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
71
|
-
}`),C.include(
|
|
72
|
+
}`),C.include(p),F.main.add(S`
|
|
72
73
|
clip(pos, prev, next, isStartVertex);
|
|
73
74
|
|
|
74
75
|
vec3 clippedPos = pos.xyz;
|
|
@@ -80,24 +81,24 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
80
81
|
next = projectAndScale(next);
|
|
81
82
|
prev = projectAndScale(prev);
|
|
82
83
|
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
vec3 left = (pos.xyz - prev.xyz);
|
|
85
|
+
vec3 right = (next.xyz - pos.xyz);
|
|
85
86
|
|
|
86
87
|
float leftLen = length(left);
|
|
87
88
|
float rightLen = length(right);
|
|
88
89
|
|
|
89
|
-
float lineSize = getSize(${
|
|
90
|
-
${
|
|
91
|
-
${
|
|
90
|
+
float lineSize = getSize(${D(B,"clippedPos")});
|
|
91
|
+
${D(O&&B,"float patternLineSize = getSize(clippedCenter);")}
|
|
92
|
+
${D(O&&!B,"float patternLineSize = lineSize;")}
|
|
92
93
|
|
|
93
|
-
${
|
|
94
|
+
${D(H,S`
|
|
94
95
|
lineSize += aaWidth;
|
|
95
96
|
float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
|
|
96
97
|
if (lineWidth < 1.0) {
|
|
97
98
|
coverage = lineWidth;
|
|
98
99
|
lineWidth = 1.0;
|
|
99
100
|
}
|
|
100
|
-
`,
|
|
101
|
+
`,S`
|
|
101
102
|
if (lineSize < 1.0) {
|
|
102
103
|
coverage = lineSize; // convert sub-pixel coverage to alpha
|
|
103
104
|
lineSize = 1.0;
|
|
@@ -108,21 +109,22 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
108
109
|
`)}
|
|
109
110
|
|
|
110
111
|
vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
|
|
111
|
-
${U?
|
|
112
|
-
`);(
|
|
112
|
+
${U?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
|
|
113
|
+
`);(O||Z)&&F.main.add(S`
|
|
113
114
|
float isEndVertex = float(!isStartVertex);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
${
|
|
117
|
-
`),F.main.add(
|
|
118
|
-
right = (rightLen > 0.001) ? right/rightLen :
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
|
|
116
|
+
vec3 segment = mix(right, left, isEndVertex);
|
|
117
|
+
${Z?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
|
|
118
|
+
`),F.main.add(S`left = (leftLen > 0.001) ? left/leftLen : vec3(0.0, 0.0, 0.0);
|
|
119
|
+
right = (rightLen > 0.001) ? right/rightLen : vec3(0.0, 0.0, 0.0);
|
|
120
|
+
vec3 segmentDirection = isStartVertex ? right : left;
|
|
121
|
+
vec3 capDisplacementDir = vec3(0.0, 0.0, 0.0);
|
|
122
|
+
vec3 joinDisplacementDir = vec3(0.0, 0.0, 0.0);
|
|
121
123
|
float displacementLen = lineWidth;
|
|
122
124
|
if (isJoin) {
|
|
123
125
|
bool isOutside = (left.x * right.y - left.y * right.x) * lineParameters.y > 0.0;
|
|
124
|
-
|
|
125
|
-
joinDisplacementDir = perpendicular(
|
|
126
|
+
vec3 joinDirection = normalize(left + right);
|
|
127
|
+
joinDisplacementDir = perpendicular(joinDirection);
|
|
126
128
|
if (leftLen > 0.001 && rightLen > 0.001) {
|
|
127
129
|
float nDotSeg = dot(joinDisplacementDir, left);
|
|
128
130
|
displacementLen /= length(nDotSeg * left - joinDisplacementDir);
|
|
@@ -131,18 +133,18 @@ displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
|
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
float subdivisionFactor = lineParameters.x;
|
|
134
|
-
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),$?F.main.add(
|
|
135
|
-
|
|
136
|
+
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),$?F.main.add(S`
|
|
137
|
+
vec3 startDir = leftLen < 0.001 ? right : left;
|
|
136
138
|
startDir = perpendicular(startDir);
|
|
137
139
|
|
|
138
|
-
|
|
140
|
+
vec3 endDir = rightLen < 0.001 ? left : right;
|
|
139
141
|
endDir = perpendicular(endDir);
|
|
140
142
|
|
|
141
|
-
float factor = ${
|
|
143
|
+
float factor = ${O?S`min(1.0, subdivisionFactor * ${S.float((P+2)/(P+1))})`:S`subdivisionFactor`};
|
|
142
144
|
|
|
143
|
-
float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));
|
|
144
|
-
joinDisplacementDir =
|
|
145
|
-
`):F.main.add(
|
|
145
|
+
float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
|
|
146
|
+
joinDisplacementDir = rotateZ(startDir, -sign(lineParameters.y) * factor * rotationAngle);
|
|
147
|
+
`):F.main.add(S`if (leftLen < 0.001) {
|
|
146
148
|
joinDisplacementDir = right;
|
|
147
149
|
}
|
|
148
150
|
else if (rightLen < 0.001) {
|
|
@@ -151,7 +153,7 @@ joinDisplacementDir = left;
|
|
|
151
153
|
else {
|
|
152
154
|
joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
|
|
153
155
|
}
|
|
154
|
-
joinDisplacementDir = perpendicular(joinDisplacementDir);`);const
|
|
156
|
+
joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Y=0!==N;return F.main.add(S`
|
|
155
157
|
displacementLen = lineWidth;
|
|
156
158
|
}
|
|
157
159
|
} else {
|
|
@@ -159,30 +161,39 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Q=0!==O;return
|
|
|
159
161
|
joinDisplacementDir = isStartVertex ? right : left;
|
|
160
162
|
joinDisplacementDir = perpendicular(joinDisplacementDir);
|
|
161
163
|
|
|
162
|
-
${
|
|
164
|
+
${Y?S`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
|
|
163
165
|
}
|
|
164
|
-
`),F.main.add(
|
|
166
|
+
`),F.main.add(S`
|
|
165
167
|
// Displacement (in pixels) caused by join/or cap
|
|
166
|
-
vec2
|
|
168
|
+
vec2 dposXY = (joinDisplacementDir.xy * sign(lineParameters.y) + capDisplacementDir.xy) * displacementLen;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* To prevent z-fighting between layers, we also adjust the z value.
|
|
172
|
+
* We want to ensure that the orientation of the final triangles is the same, regardless of the line width.
|
|
173
|
+
* To do so, the below formula projects the xy displacement onto the original segment direction
|
|
174
|
+
* to find the z-offset necessary so the triangle orientation is independent of the width.
|
|
175
|
+
*/
|
|
176
|
+
float dposZ = dot(dposXY, segmentDirection.xy) / dot(segmentDirection.xy, segmentDirection.xy) * segmentDirection.z;
|
|
177
|
+
vec3 dpos = vec3(dposXY, dposZ);
|
|
167
178
|
float lineDistNorm = noPerspectiveWrite(sign(lineParameters.y), pos.w);
|
|
168
179
|
|
|
169
180
|
vLineDistance = lineWidth * lineDistNorm;
|
|
170
|
-
${
|
|
181
|
+
${X?S`vLineDistanceNorm = lineDistNorm;`:""}
|
|
171
182
|
|
|
172
|
-
pos.
|
|
173
|
-
`),
|
|
174
|
-
vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin, segmentDir)), pos.w);
|
|
175
|
-
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd, -segmentDir)), pos.w);`),
|
|
176
|
-
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(
|
|
183
|
+
pos.xyz += dpos;
|
|
184
|
+
`),Z&&F.main.add(S`vec2 segmentDir = normalize(segment.xy);
|
|
185
|
+
vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
|
|
186
|
+
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),O&&(T?F.uniforms.add(new x("worldToScreenRatio",e=>1/e.screenToPCSRatio)):F.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
|
|
187
|
+
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(S`float segmentLengthScreenDouble = length(segment.xy);
|
|
177
188
|
float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
|
|
178
189
|
float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
|
|
179
190
|
float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
|
|
180
|
-
vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),T?F.main.add(
|
|
181
|
-
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(
|
|
182
|
-
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new
|
|
191
|
+
vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),T?F.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
|
|
192
|
+
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(S`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
|
|
193
|
+
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new u("stipplePatternPixelSize",e=>o(e))),F.main.add(S`
|
|
183
194
|
float patternLength = patternLineSize * stipplePatternPixelSize;
|
|
184
195
|
|
|
185
|
-
${
|
|
196
|
+
${D(H,S`
|
|
186
197
|
float uu = mix(u0, u0 - segmentLengthRender, isEndVertex);
|
|
187
198
|
vStippleDistanceLimits = vec2(uu, uu + segmentLengthRender);
|
|
188
199
|
vStipplePatternStretch = 1.0;
|
|
@@ -190,7 +201,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
190
201
|
// The v-coordinate used in case of an image pattern.
|
|
191
202
|
bool isLeft = sign(lineParameters.y) < 0.0;
|
|
192
203
|
vStippleV = isLeft ? 0.0 : 1.0;
|
|
193
|
-
`,
|
|
204
|
+
`,S`
|
|
194
205
|
// Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
|
|
195
206
|
// fragment shader
|
|
196
207
|
vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
|
|
@@ -203,8 +214,8 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
203
214
|
if (segmentLengthScreenDouble >= 0.001) {
|
|
204
215
|
// Project the actual vertex position onto the line segment. Note that the resulting factor is within [0..1]
|
|
205
216
|
// at the original vertex positions, and slightly outside of that range at the displaced positions
|
|
206
|
-
|
|
207
|
-
float stippleDisplacementFactor = dot(segment, stippleDisplacement) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
|
|
217
|
+
vec3 stippleDisplacement = pos.xyz - segmentOrigin;
|
|
218
|
+
float stippleDisplacementFactor = dot(segment.xy, stippleDisplacement.xy) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
|
|
208
219
|
|
|
209
220
|
// Apply this offset to the actual vertex coordinate (can be screen or pseudo-screen space)
|
|
210
221
|
vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (vStippleDistanceLimits.y - vStippleDistanceLimits.x);
|
|
@@ -221,9 +232,10 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
221
232
|
isStartVertex ?
|
|
222
233
|
vec2(-1e34, vStippleDistanceLimits.y) :
|
|
223
234
|
vec2(vStippleDistanceLimits.x, 1e34);
|
|
224
|
-
`)),F.main.add(
|
|
235
|
+
`)),F.main.add(S`
|
|
225
236
|
// Convert back into NDC
|
|
226
237
|
pos.xy = (pos.xy / viewport.zw) * pos.w;
|
|
238
|
+
pos.z = pos.z * pos.w;
|
|
227
239
|
|
|
228
240
|
vColor = getColor();
|
|
229
241
|
vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
|
|
@@ -234,37 +246,37 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
234
246
|
vpos = (inverseProjectionMatrix * pos).xyz;
|
|
235
247
|
gl_Position = pos;
|
|
236
248
|
forwardObjectAndLayerIdColor();
|
|
237
|
-
}`),C.fragment.include(e,
|
|
238
|
-
discardByTerrainDepth();`),C.include(c),A.include(
|
|
249
|
+
}`),C.fragment.include(e,j),C.include(y,j),A.include(d),A.main.add(S`discardBySlice(vpos);
|
|
250
|
+
discardByTerrainDepth();`),C.include(c),A.include(L),A.main.add(S`
|
|
239
251
|
float lineWidth = noPerspectiveRead(vLineWidth);
|
|
240
252
|
float lineDistance = noPerspectiveRead(vLineDistance);
|
|
241
|
-
${
|
|
242
|
-
`),_?A.main.add(
|
|
253
|
+
${D(X,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
|
|
254
|
+
`),_?A.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(Z&&A.main.add(S`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
|
|
243
255
|
vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
|
|
244
256
|
float fragmentRadius = length(fragmentPosition);
|
|
245
257
|
float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
|
|
246
258
|
float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
|
|
247
259
|
if (capCoverage < alphaCutoff) {
|
|
248
260
|
discard;
|
|
249
|
-
}`),
|
|
261
|
+
}`),G?A.main.add(S`vec2 stipplePosition = vec2(
|
|
250
262
|
min(getStippleSDF() * 2.0 - 1.0, 0.0),
|
|
251
263
|
lineDistanceNorm
|
|
252
264
|
);
|
|
253
265
|
float stippleRadius = length(stipplePosition * lineWidth);
|
|
254
266
|
float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
|
|
255
267
|
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
256
|
-
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):A.main.add(
|
|
257
|
-
color.a = noPerspectiveRead(color.a);`),k&&A.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new
|
|
268
|
+
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):A.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==E&&A.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),C.include(c),A.uniforms.add(new h("intrinsicColor",e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
|
|
269
|
+
color.a = noPerspectiveRead(color.a);`),k&&A.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new u("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
|
|
258
270
|
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
259
271
|
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
260
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),A.main.add(
|
|
272
|
+
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),A.main.add(S`vec4 finalColor = blendStipple(color, stippleAlpha);`),M&&(A.uniforms.add(new u("falloff",e=>e.falloff)),A.main.add(S`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),O||A.main.add(S`float featherStartDistance = max(lineWidth - 2.0, 0.0);
|
|
261
273
|
float value = abs(lineDistance);
|
|
262
274
|
float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
|
|
263
|
-
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),I&&A.main.add(
|
|
275
|
+
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),I&&A.main.add(S`
|
|
264
276
|
finalColor = animate(finalColor);
|
|
265
277
|
|
|
266
|
-
${
|
|
278
|
+
${D(11!==E,S`
|
|
267
279
|
if (finalColor.a <= alphaCutoff) {
|
|
268
280
|
discard;
|
|
269
281
|
}`)}
|
|
270
|
-
`)),A.main.add(
|
|
282
|
+
`)),A.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:j,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{C as R,j as b,P as r};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ShadowmapFiltering as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js";import{Float3BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as w}from"../views/webgl/ShaderBuilder.js";const m=.025;function p(){const o=new w;o.include(a),o.include(l),o.include(t),o.include(r);const p=o.fragment;return p.uniforms.add(new c("shadowMapExcludingHighlight",({shadowMap:e})=>e.getOutput(7)),new c("shadowMapHighlight",({shadowMap:e})=>e.getOutput(6)),new s("depthMap",e=>e.
|
|
2
|
+
import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ShadowmapFiltering as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js";import{Float3BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as w}from"../views/webgl/ShaderBuilder.js";const m=.025;function p(){const o=new w;o.include(a),o.include(l),o.include(t),o.include(r);const p=o.fragment;return p.uniforms.add(new c("shadowMapExcludingHighlight",({shadowMap:e})=>e.getOutput(7)),new c("shadowMapHighlight",({shadowMap:e})=>e.getOutput(6)),new s("depthMap",e=>e.mainDepth),new u("highlightTexture",e=>e.highlightTexture),new d("uColor",e=>e.shadowColor),new g("opacity",e=>e.shadowOpacity),new g("occludedOpacity",e=>e.occludedShadowOpacity),new g("terminationFactor",e=>e.opacityElevation*e.dayNightTerminator),new h("lightingMainDirectionView",({lighting:o,camera:r})=>e(f,i(f,o.mainLight.direction,r.viewInverseTransposeMatrix)))),p.main.add(n`
|
|
3
3
|
ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
|
|
4
4
|
ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
|
|
5
5
|
uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
|
package/chunks/Viewshed.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as i,create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{LocalFromScreenSpacePassParameters as r,localFromScreenSpace as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import{Float2PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Matrix4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4sPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js";import{
|
|
2
|
+
import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as i,create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{LocalFromScreenSpacePassParameters as r,localFromScreenSpace as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import{Float2PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Matrix4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4sPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as u}from"../views/webgl/ShaderBuilder.js";class x extends r{constructor(){super(...arguments),this.shadowMap={depthTexture:null,nearFar:[1,100],numActiveFaces:1,atlasRegions:[[0,0,1,1]]},this.targetVector=[1,0,0],this.upVector=[0,0,1],this.fovs=[45,45],this.headingAndTilt=[0,0],this.observerOffset=[0,0,0],this.projectionMatrices=i.flat(),this.viewMatrices=i.flat(),this.volumeOffset=0}}function V(){const i=new u,o=i.fragment;return i.include(t),i.include(n),o.include(s),o.include(a),o.uniforms.add(new f("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("inverseViewNormalMatrix",({camera:i})=>e(b,i.viewInverseTransposeMatrix)),new l("viewshedObserverOffset",e=>e.observerOffset),new l("viewshedTargetVector",e=>e.targetVector),new l("viewshedUpVector",e=>e.upVector),new d("viewshedFOVs",e=>e.fovs),new d("viewshedHeadingAndTilt",e=>e.headingAndTilt),new d("viewshedNearFar",e=>e.shadowMap.nearFar??[1,100]),new h("viewshedVolumeOffset",e=>e.volumeOffset),new g("viewshedShadowMap",e=>e.shadowMap.depthTexture),new p("viewshedProjectionMatrices",e=>e.projectionMatrices,6),new p("viewshedViewMatrices",e=>e.viewMatrices,6),new w("viewshedNumFaces",e=>e.shadowMap.numActiveFaces),new v("viewshedAtlasRegions",24,e=>e.shadowMap.atlasRegions.flat()),new m("depthTexture",e=>e.mainDepth),new g("normalMap",e=>e.normals)),o.constants.add("visibleColor","vec4",[0,1,0,.5]),o.constants.add("occludedColor","vec4",[1,0,0,.5]),o.code.add(c`vec2 getViewshedUv(vec4 worldPosition, int face) {
|
|
3
3
|
mat4 viewshedMatrix = viewshedProjectionMatrices[face];
|
|
4
4
|
vec4 viewshedUv4 = viewshedMatrix * worldPosition;
|
|
5
5
|
vec3 viewshedUv = viewshedUv4.xyz / viewshedUv4.w;
|
|
@@ -140,4 +140,4 @@ float cosAngle = normalCosAngle(linearDepth, localPosition.xyz);
|
|
|
140
140
|
float threshold = -0.01;
|
|
141
141
|
if (cosAngle > threshold) {
|
|
142
142
|
fragColor = occludedColor;
|
|
143
|
-
}`),i}const
|
|
143
|
+
}`),i}const b=o(),M=Object.freeze(Object.defineProperty({__proto__:null,ViewshedPassParameters:x,build:V},Symbol.toStringTag,{value:"Module"}));export{x as V,M as a,V as b};
|
package/chunks/Water.glsl.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{isColor as
|
|
3
|
-
if (waterColor.a < ${
|
|
2
|
+
import e from"../core/Error.js";import{isColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as s,addMainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{WaterColor as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as u,addCameraPosition as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as b}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as j}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as L}from"../webscene/support/AlphaCutoff.js";function P(P){const C=new j,{vertex:x,fragment:S,varyings:_}=C,{output:D,draped:O,receiveShadows:M}=P;u(x,P),C.include(i),C.attributes.add("position","vec3"),C.attributes.add("uv0","vec2");const F=new f("waterColor",e=>e.color);if(_.add("vpos","vec3",{invariant:!0}),x.uniforms.add(F),r(D)){if(O)return x.main.add(b`
|
|
3
|
+
if (waterColor.a < ${b.float(L)}) {
|
|
4
4
|
// Discard this vertex
|
|
5
5
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
6
6
|
return;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
vpos = position;
|
|
10
|
-
gl_Position = transformPosition(proj, view, vpos);`),
|
|
11
|
-
if (waterColor.a < ${
|
|
10
|
+
gl_Position = transformPosition(proj, view, vpos);`),S.uniforms.add(F),S.main.add(b`fragColor = waterColor;`),C;C.include(d,P),_.add("vuv","vec2"),_.add("vnormal","vec3"),_.add("vtbnMatrix","mat3"),x.main.add(b`
|
|
11
|
+
if (waterColor.a < ${b.float(L)}) {
|
|
12
12
|
// Discard this vertex
|
|
13
13
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
14
14
|
return;
|
|
@@ -22,7 +22,7 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
|
|
|
22
22
|
forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
|
|
23
23
|
|
|
24
24
|
gl_Position = transformPosition(proj, view, vpos);
|
|
25
|
-
forwardLinearDepthToReadShadowMap();`)}switch(C.include(
|
|
25
|
+
forwardLinearDepthToReadShadowMap();`)}switch(C.include(c,P),C.include(g,P),D){case 0:case 1:case 2:S.include(n,{pbrMode:0}),C.include(v),C.include(m,P),S.include(o,P),C.include(y,P),S.include(p),w(S,P),s(S),l(S),S.uniforms.add(F,new h("timeElapsed",({timeElapsed:e})=>e),x.uniforms.get("view"),x.uniforms.get("localOrigin")).main.add(b`
|
|
26
26
|
discardBySlice(vpos);
|
|
27
27
|
discardByTerrainDepth();
|
|
28
28
|
vec3 localUp = vnormal;
|
|
@@ -32,13 +32,13 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
|
|
|
32
32
|
// we rotate the normal according to the tangent-bitangent-normal-Matrix
|
|
33
33
|
vec3 n = normalize(vtbnMatrix * tangentNormalFoam.xyz);
|
|
34
34
|
vec3 v = -normalize(vpos - cameraPosition);
|
|
35
|
-
float shadow = ${M?
|
|
35
|
+
float shadow = ${M?b`1.0 - readShadowMap(vpos, linearDepth)`:"1.0"};
|
|
36
36
|
vec4 vPosView = view * vec4(vpos, 1.0);
|
|
37
37
|
vec4 final = vec4(getWaterColor(n, v, mainLightDirection, waterColor.rgb, mainLightIntensity, localUp, shadow, tangentNormalFoam.w, vPosView.xyz, vpos + localOrigin), waterColor.w);
|
|
38
38
|
|
|
39
39
|
fragColor = delinearizeGamma(final);
|
|
40
|
-
outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:C.include(
|
|
41
|
-
if (waterColor.a < ${
|
|
40
|
+
outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:C.include(d,P),C.include(v,P),S.include(o,P),_.add("vuv","vec2"),x.main.add(b`
|
|
41
|
+
if (waterColor.a < ${b.float(L)}) {
|
|
42
42
|
// Discard this vertex
|
|
43
43
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
44
44
|
return;
|
|
@@ -47,20 +47,28 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
|
|
|
47
47
|
vuv = uv0;
|
|
48
48
|
vpos = position;
|
|
49
49
|
|
|
50
|
-
gl_Position = transformPosition(proj, view, vpos);`),
|
|
50
|
+
gl_Position = transformPosition(proj, view, vpos);`),S.uniforms.add(new h("timeElapsed",({timeElapsed:e})=>e)).main.add(b`discardBySlice(vpos);
|
|
51
51
|
vec4 tangentNormalFoam = getSurfaceNormalAndFoam(vuv, timeElapsed);
|
|
52
52
|
tangentNormalFoam.xyz = normalize(tangentNormalFoam.xyz);
|
|
53
|
-
fragColor = vec4((tangentNormalFoam.xyz + vec3(1.0)) * 0.5, tangentNormalFoam.w);`);break;case
|
|
54
|
-
if (waterColor.a < ${
|
|
53
|
+
fragColor = vec4((tangentNormalFoam.xyz + vec3(1.0)) * 0.5, tangentNormalFoam.w);`);break;case 3:x.main.add(b`
|
|
54
|
+
if (waterColor.a < ${b.float(L)}) {
|
|
55
55
|
// Discard this vertex
|
|
56
56
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
vpos = position;
|
|
61
|
-
gl_Position = transformPosition(proj, view, vpos);`),
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
gl_Position = transformPosition(proj, view, vpos);`),S.include(o,P),S.main.add("discardBySlice(vpos);");break;case 10:C.include(t,P),x.main.add(b`
|
|
62
|
+
if (waterColor.a < ${b.float(L)}) {
|
|
63
|
+
// Discard this vertex
|
|
64
|
+
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
vpos = position;
|
|
69
|
+
gl_Position = transformPosition(proj, view, vpos);`),S.include(o,P),S.main.add(b`discardBySlice(vpos);
|
|
70
|
+
calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(a,P),x.main.add(b`
|
|
71
|
+
if (waterColor.a < ${b.float(L)}) {
|
|
64
72
|
// Discard this vertex
|
|
65
73
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
66
74
|
return;
|
|
@@ -68,5 +76,5 @@ calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(i,L),P.main.ad
|
|
|
68
76
|
|
|
69
77
|
vpos = position;
|
|
70
78
|
gl_Position = transformPosition(proj, view, vpos);
|
|
71
|
-
forwardObjectAndLayerIdColor();`),
|
|
72
|
-
outputObjectAndLayerIdColor();`)}return C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:
|
|
79
|
+
forwardObjectAndLayerIdColor();`),S.include(o,P),S.main.add(b`discardBySlice(vpos);
|
|
80
|
+
outputObjectAndLayerIdColor();`);break;default:throw new e("shaderbuilder:missing-output",`Unimplemented shader output ${D} for WaterTechnique`)}return C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:P},Symbol.toStringTag,{value:"Module"}));export{C as W,P as b};
|