@itwin/core-frontend 5.0.0-dev.90 → 5.0.0-dev.92
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/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
- package/lib/cjs/ContextRealityModelState.js +2 -0
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +4 -0
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -0
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +4 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.d.ts +2 -0
- package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
- package/lib/cjs/internal/render/{RealityMeshGraphicParams.d.ts → MeshMapLayerGraphicParams.d.ts} +4 -4
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/{RealityMeshGraphicParams.js → MeshMapLayerGraphicParams.js} +1 -1
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -0
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts +54 -0
- package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/webgl/MapLayerParams.js +198 -0
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -0
- package/lib/cjs/internal/render/webgl/Mesh.js +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.d.ts +6 -35
- package/lib/cjs/internal/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js +41 -154
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.d.ts +7 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.js +7 -0
- package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +12 -11
- package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js +13 -8
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts +5 -2
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js +49 -3
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.d.ts +2 -2
- package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js +11 -2
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Blur.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/cjs/internal/render/webgl/glsl/EDL.js +4 -4
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Edge.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js +2 -2
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js +9 -9
- package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.d.ts +12 -0
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.d.ts.map +1 -0
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js +116 -0
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -0
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +3 -3
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js +2 -2
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +6 -91
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js +73 -7
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/cjs/internal/tile/B3dmReader.d.ts +2 -1
- package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js +5 -5
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.d.ts +2 -1
- package/lib/cjs/internal/tile/I3dmReader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.js +4 -4
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +2 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +1 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +14 -3
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +51 -11
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +8 -2
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.d.ts +3 -0
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +4 -3
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +2 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +8 -2
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +11 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +2 -1
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/LayerTileTreeHandler.d.ts +47 -0
- package/lib/cjs/tile/LayerTileTreeHandler.d.ts.map +1 -0
- package/lib/cjs/tile/LayerTileTreeHandler.js +54 -0
- package/lib/cjs/tile/LayerTileTreeHandler.js.map +1 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts +36 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.js +150 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.js.map +1 -0
- package/lib/cjs/tile/Tile.d.ts +2 -0
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +7 -0
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +3 -1
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +2 -0
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +2 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +2 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +8 -2
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +10 -16
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +8 -36
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +47 -176
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +9 -9
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
- package/lib/esm/ContextRealityModelState.js +2 -0
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +4 -0
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -0
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +4 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.d.ts +2 -0
- package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
- package/lib/esm/internal/render/{RealityMeshGraphicParams.d.ts → MeshMapLayerGraphicParams.d.ts} +4 -4
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.d.ts.map +1 -0
- package/lib/esm/internal/render/{RealityMeshGraphicParams.js → MeshMapLayerGraphicParams.js} +1 -1
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -0
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.d.ts +54 -0
- package/lib/esm/internal/render/webgl/MapLayerParams.d.ts.map +1 -0
- package/lib/esm/internal/render/webgl/MapLayerParams.js +192 -0
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -0
- package/lib/esm/internal/render/webgl/Mesh.js +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.d.ts +6 -35
- package/lib/esm/internal/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js +41 -153
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.d.ts +7 -1
- package/lib/esm/internal/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.js +7 -0
- package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +12 -11
- package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js +13 -8
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts +5 -2
- package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js +50 -4
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.d.ts +2 -2
- package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js +11 -2
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Blur.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Clipping.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/esm/internal/render/webgl/glsl/EDL.js +4 -4
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Edge.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js +2 -2
- package/lib/esm/internal/render/webgl/glsl/Fragment.js +9 -9
- package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.d.ts +12 -0
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.d.ts.map +1 -0
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js +111 -0
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -0
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +3 -3
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js +2 -2
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +5 -90
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.d.ts +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js +73 -7
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Translucency.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/esm/internal/tile/B3dmReader.d.ts +2 -1
- package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js +5 -5
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.d.ts +2 -1
- package/lib/esm/internal/tile/I3dmReader.d.ts.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.js +4 -4
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js +2 -2
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +2 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js +1 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts +14 -3
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +53 -13
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +8 -2
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.d.ts +3 -0
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +4 -3
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +2 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +8 -2
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +11 -2
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +2 -1
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/LayerTileTreeHandler.d.ts +47 -0
- package/lib/esm/tile/LayerTileTreeHandler.d.ts.map +1 -0
- package/lib/esm/tile/LayerTileTreeHandler.js +50 -0
- package/lib/esm/tile/LayerTileTreeHandler.js.map +1 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts +36 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.js +146 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.js.map +1 -0
- package/lib/esm/tile/Tile.d.ts +2 -0
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +7 -0
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +3 -1
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +2 -0
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +2 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +2 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +8 -2
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +9 -16
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +8 -36
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +49 -178
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +9 -9
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/package.json +16 -16
- package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts.map +0 -1
- package/lib/cjs/internal/render/RealityMeshGraphicParams.js.map +0 -1
- package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts.map +0 -1
- package/lib/esm/internal/render/RealityMeshGraphicParams.js.map +0 -1
|
@@ -30,7 +30,7 @@ export function createCombineTexturesProgram(context) {
|
|
|
30
30
|
Texture2DHandle.bindSampler(uniform, params.geometry.texture1, TextureUnit.One);
|
|
31
31
|
});
|
|
32
32
|
}, 3 /* VariablePrecision.High */);
|
|
33
|
-
frag.set(
|
|
33
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragData);
|
|
34
34
|
builder.vert.headerComment = "//!V! CombineTextures";
|
|
35
35
|
builder.frag.headerComment = "//!F! CombineTextures";
|
|
36
36
|
return builder.buildProgram(context);
|
|
@@ -113,7 +113,7 @@ export function createCompositeProgram(flags, context) {
|
|
|
113
113
|
const frag = builder.frag;
|
|
114
114
|
frag.addFunction(wantOcclusion ? computeAmbientOcclusion : computeDefaultAmbientOcclusion);
|
|
115
115
|
frag.addFunction(computeOpaqueColor);
|
|
116
|
-
frag.set(
|
|
116
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
117
117
|
frag.addUniform("u_opaque", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
118
118
|
prog.addGraphicUniform("u_opaque", (uniform, params) => {
|
|
119
119
|
Texture2DHandle.bindSampler(uniform, params.geometry.opaque, TextureUnit.Zero);
|
|
@@ -24,7 +24,7 @@ export function createCopyColorProgram(context, copyAlpha = true) {
|
|
|
24
24
|
const builder = createViewportQuadBuilder(true);
|
|
25
25
|
const frag = builder.frag;
|
|
26
26
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, copyAlpha ? computeColor : computeColorNoAlpha);
|
|
27
|
-
frag.set(
|
|
27
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
28
28
|
frag.addUniform("u_color", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
29
29
|
prog.addGraphicUniform("u_color", (uniform, params) => {
|
|
30
30
|
const geom = params.geometry;
|
|
@@ -29,7 +29,7 @@ export function createCopyPickBuffersProgram(context) {
|
|
|
29
29
|
});
|
|
30
30
|
}, 3 /* VariablePrecision.High */);
|
|
31
31
|
frag.addDrawBuffersExtension(2);
|
|
32
|
-
frag.set(
|
|
32
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragData);
|
|
33
33
|
builder.vert.headerComment = "//!V! CopyPickBuffers";
|
|
34
34
|
builder.frag.headerComment = "//!F! CopyPickBuffers";
|
|
35
35
|
return builder.buildProgram(context);
|
|
@@ -52,7 +52,7 @@ export function createVolClassColorUsingStencilProgram(context) {
|
|
|
52
52
|
const builder = createViewportQuadBuilder(false);
|
|
53
53
|
const frag = builder.frag;
|
|
54
54
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computehiliteColor);
|
|
55
|
-
frag.set(
|
|
55
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
56
56
|
frag.addUniform("u_hilite_color", 5 /* VariableType.Vec4 */, (prog) => {
|
|
57
57
|
prog.addGraphicUniform("u_hilite_color", (uniform, params) => {
|
|
58
58
|
const useLighting = params.geometry.getFlashMode(params);
|
|
@@ -75,7 +75,7 @@ export function createVolClassCopyZProgram(context) {
|
|
|
75
75
|
builder.addInlineComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, computeTexCoord); // TODO: I think this is not necessary because it's already added from the create above
|
|
76
76
|
const frag = builder.frag;
|
|
77
77
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeSetBlendColor);
|
|
78
|
-
frag.set(
|
|
78
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
79
79
|
frag.addUniform("u_blend_color", 5 /* VariableType.Vec4 */, (prog) => {
|
|
80
80
|
prog.addGraphicUniform("u_blend_color", (uniform, _params) => {
|
|
81
81
|
scratchColor.set(0.0, 0.0, 0.0, 0.0);
|
|
@@ -88,7 +88,7 @@ export function createVolClassCopyZProgram(context) {
|
|
|
88
88
|
Texture2DHandle.bindSampler(uniform, geom.texture, TextureUnit.Zero);
|
|
89
89
|
});
|
|
90
90
|
});
|
|
91
|
-
frag.set(
|
|
91
|
+
frag.set(20 /* FragmentShaderComponent.FinalizeDepth */, depthFromTexture);
|
|
92
92
|
builder.vert.headerComment = "//!V! VolClassCopyZ";
|
|
93
93
|
builder.frag.headerComment = "//!F! VolClassCopyZ";
|
|
94
94
|
return builder.buildProgram(context);
|
|
@@ -101,7 +101,7 @@ export function createVolClassSetBlendProgram(context) {
|
|
|
101
101
|
addBoundaryTypeConstants(frag);
|
|
102
102
|
frag.set(0 /* FragmentShaderComponent.CheckForEarlyDiscard */, checkDiscardBackgroundByZ);
|
|
103
103
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeSetBlendColor);
|
|
104
|
-
frag.set(
|
|
104
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
105
105
|
frag.addUniform("u_boundaryType", 1 /* VariableType.Int */, (prog) => {
|
|
106
106
|
prog.addGraphicUniform("u_boundaryType", (uniform, params) => {
|
|
107
107
|
const geom = params.geometry;
|
|
@@ -144,7 +144,7 @@ export function createVolClassBlendProgram(context) {
|
|
|
144
144
|
builder.addInlineComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, computeTexCoord);
|
|
145
145
|
const frag = builder.frag;
|
|
146
146
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeBlendTextureColor);
|
|
147
|
-
frag.set(
|
|
147
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
148
148
|
frag.addUniform("u_blendTexture", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
149
149
|
prog.addGraphicUniform("u_blendTexture", (uniform, params) => {
|
|
150
150
|
const geom = params.geometry;
|
|
@@ -45,7 +45,7 @@ export function createEDLCalcBasicProgram(context) {
|
|
|
45
45
|
const builder = createViewportQuadBuilder(true);
|
|
46
46
|
const frag = builder.frag;
|
|
47
47
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, calcBasicEDL);
|
|
48
|
-
frag.set(
|
|
48
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
49
49
|
frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
|
|
50
50
|
prog.addGraphicUniform("u_texInfo", (uniform, params) => {
|
|
51
51
|
const geom = params.geometry;
|
|
@@ -111,7 +111,7 @@ export function createEDLCalcFullProgram(context) {
|
|
|
111
111
|
const builder = createViewportQuadBuilder(true);
|
|
112
112
|
const frag = builder.frag;
|
|
113
113
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, calcFullEDL);
|
|
114
|
-
frag.set(
|
|
114
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
115
115
|
frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
|
|
116
116
|
prog.addGraphicUniform("u_texInfo", (uniform, params) => {
|
|
117
117
|
const geom = params.geometry;
|
|
@@ -182,7 +182,7 @@ export function createEDLFilterProgram(context) {
|
|
|
182
182
|
const builder = createViewportQuadBuilder(true);
|
|
183
183
|
const frag = builder.frag;
|
|
184
184
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, filterEDL);
|
|
185
|
-
frag.set(
|
|
185
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
186
186
|
frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
|
|
187
187
|
prog.addGraphicUniform("u_texInfo", (uniform, params) => {
|
|
188
188
|
const geom = params.geometry;
|
|
@@ -221,7 +221,7 @@ export function createEDLMixProgram(context) {
|
|
|
221
221
|
const builder = createViewportQuadBuilder(true);
|
|
222
222
|
const frag = builder.frag;
|
|
223
223
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, mixEDL);
|
|
224
|
-
frag.set(
|
|
224
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
225
225
|
frag.addUniform("u_colorTexture1", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
226
226
|
prog.addGraphicUniform("u_colorTexture1", (uniform, params) => {
|
|
227
227
|
const geom = params.geometry;
|
|
@@ -63,7 +63,7 @@ export function createEVSMProgram(context) {
|
|
|
63
63
|
addEvsmExponent(frag);
|
|
64
64
|
frag.addFunction(warpDepth);
|
|
65
65
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeEVSM);
|
|
66
|
-
frag.set(
|
|
66
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
67
67
|
builder.vert.headerComment = "//!V! EVSMFromDepth";
|
|
68
68
|
builder.frag.headerComment = "//!F! EVSMFromDepth";
|
|
69
69
|
return builder.buildProgram(context);
|
|
@@ -237,7 +237,7 @@ function createBase(type, instanced, isAnimated, positionType) {
|
|
|
237
237
|
addRenderOrder(vert);
|
|
238
238
|
addRenderOrderConstants(vert);
|
|
239
239
|
builder.addInlineComputedVarying("v_renderOrder", 2 /* VariableType.Float */, computeIndexedRenderOrder);
|
|
240
|
-
builder.frag.set(
|
|
240
|
+
builder.frag.set(22 /* FragmentShaderComponent.OverrideRenderOrder */, "return v_renderOrder;");
|
|
241
241
|
}
|
|
242
242
|
else {
|
|
243
243
|
vert.addInitializer(decodeEndPointAndQuadIndices);
|
|
@@ -297,7 +297,7 @@ export function addHiliter(builder, wantWeight = false) {
|
|
|
297
297
|
addEmphasisFlags(builder.frag);
|
|
298
298
|
addExtractNthBit(builder.frag);
|
|
299
299
|
builder.frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeHiliteColor);
|
|
300
|
-
builder.frag.set(
|
|
300
|
+
builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
301
301
|
}
|
|
302
302
|
function addSamplers(frag, testFeatureId) {
|
|
303
303
|
if (testFeatureId) {
|
|
@@ -663,7 +663,7 @@ export function addUniformHiliter(builder) {
|
|
|
663
663
|
addEmphasisFlags(builder.frag);
|
|
664
664
|
addExtractNthBit(builder.frag);
|
|
665
665
|
builder.frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeHiliteColor);
|
|
666
|
-
builder.frag.set(
|
|
666
|
+
builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
667
667
|
}
|
|
668
668
|
/** For a uniform feature table, the feature ID output to pick buffers is equal to the batch ID.
|
|
669
669
|
* The following symbology overrides are supported:
|
|
@@ -68,7 +68,7 @@ export function addPickBufferOutputs(frag) {
|
|
|
68
68
|
frag.addFunction(encodeDepthRgb);
|
|
69
69
|
frag.addFunction(computeLinearDepth);
|
|
70
70
|
const prelude = new SourceBuilder();
|
|
71
|
-
const overrideOrder = frag.get(
|
|
71
|
+
const overrideOrder = frag.get(22 /* FragmentShaderComponent.OverrideRenderOrder */);
|
|
72
72
|
if (overrideOrder) {
|
|
73
73
|
frag.addFunction("float overrideRenderOrder(float currentOrder)", overrideOrder);
|
|
74
74
|
prelude.addline(" float renderOrder = overrideRenderOrder(u_renderOrder);");
|
|
@@ -77,43 +77,43 @@ export function addPickBufferOutputs(frag) {
|
|
|
77
77
|
prelude.addline(" float renderOrder = u_renderOrder;");
|
|
78
78
|
}
|
|
79
79
|
prelude.add(computePickBufferOutputs);
|
|
80
|
-
const overrideColor = frag.get(
|
|
80
|
+
const overrideColor = frag.get(21 /* FragmentShaderComponent.OverrideColor */);
|
|
81
81
|
if (undefined !== overrideColor) {
|
|
82
82
|
frag.addFunction("vec4 overrideColor(vec4 currentColor)", overrideColor);
|
|
83
83
|
prelude.addline(" output0 = overrideColor(output0);");
|
|
84
84
|
}
|
|
85
|
-
const overrideFeatureId = frag.get(
|
|
85
|
+
const overrideFeatureId = frag.get(19 /* FragmentShaderComponent.OverrideFeatureId */);
|
|
86
86
|
if (undefined !== overrideFeatureId) {
|
|
87
87
|
frag.addFunction("vec4 overrideFeatureId(vec4 currentId)", overrideFeatureId);
|
|
88
88
|
prelude.addline(reassignFeatureId);
|
|
89
89
|
}
|
|
90
90
|
addRenderPass(frag);
|
|
91
91
|
frag.addDrawBuffersExtension(3);
|
|
92
|
-
frag.set(
|
|
92
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, prelude.source + assignPickBufferOutputsMRT);
|
|
93
93
|
}
|
|
94
94
|
/** @internal */
|
|
95
95
|
export function addAltPickBufferOutputs(frag) {
|
|
96
96
|
const prelude = new SourceBuilder();
|
|
97
97
|
prelude.add(computeAltPickBufferOutputs);
|
|
98
|
-
const overrideColor = frag.get(
|
|
98
|
+
const overrideColor = frag.get(21 /* FragmentShaderComponent.OverrideColor */);
|
|
99
99
|
if (undefined !== overrideColor) {
|
|
100
100
|
frag.addFunction("vec4 overrideColor(vec4 currentColor)", overrideColor);
|
|
101
101
|
prelude.addline(" output0 = overrideColor(output0);");
|
|
102
102
|
}
|
|
103
103
|
addRenderPass(frag);
|
|
104
104
|
frag.addDrawBuffersExtension(3);
|
|
105
|
-
frag.set(
|
|
105
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, prelude.source + assignPickBufferOutputsMRT);
|
|
106
106
|
}
|
|
107
107
|
/** @internal */
|
|
108
108
|
export function addFragColorWithPreMultipliedAlpha(frag) {
|
|
109
109
|
addRenderPass(frag);
|
|
110
|
-
const overrideColor = frag.get(
|
|
110
|
+
const overrideColor = frag.get(21 /* FragmentShaderComponent.OverrideColor */);
|
|
111
111
|
if (undefined === overrideColor) {
|
|
112
|
-
frag.set(
|
|
112
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColorWithPreMultipliedAlpha);
|
|
113
113
|
}
|
|
114
114
|
else {
|
|
115
115
|
frag.addFunction("vec4 overrideColor(vec4 currentColor)", overrideColor);
|
|
116
|
-
frag.set(
|
|
116
|
+
frag.set(18 /* FragmentShaderComponent.AssignFragData */, overrideAndAssignFragColorWithPreMultipliedAlpha);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
/** @internal */
|
|
@@ -22,6 +22,6 @@ export function addLogDepth(builder) {
|
|
|
22
22
|
uniform.setUniform2fv(params.target.uniforms.frustum.logZ);
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
|
-
frag.set(
|
|
25
|
+
frag.set(20 /* FragmentShaderComponent.FinalizeDepth */, finalizeDepth);
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=LogarithmicDepthBuffer.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module WebGL
|
|
3
|
+
*/
|
|
4
|
+
import { FragmentShaderBuilder } from "../ShaderBuilder";
|
|
5
|
+
export declare const testInside = "\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\n return dot >= -0.001;\n}\n";
|
|
6
|
+
export declare const applyTexture: (isRealityTile: boolean) => string;
|
|
7
|
+
export declare const overrideFeatureId = "return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;";
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare function addApplySurfaceDraping(frag: FragmentShaderBuilder): void;
|
|
12
|
+
//# sourceMappingURL=MaplayerDraping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaplayerDraping.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/MaplayerDraping.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAyC,MAAM,kBAAkB,CAAC;AAIhG,eAAO,MAAM,UAAU,kRAMtB,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,OAAO,WAoElD,CAAC;AAEF,eAAO,MAAM,iBAAiB,uIAAuI,CAAC;AAwBtK;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,QAQjE"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { System } from "../System";
|
|
2
|
+
import { addUInt32s } from "./Common";
|
|
3
|
+
export const testInside = `
|
|
4
|
+
bool testInside(float x0, float y0, float x1, float y1, float x, float y) {
|
|
5
|
+
vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);
|
|
6
|
+
float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);
|
|
7
|
+
return dot >= -0.001;
|
|
8
|
+
}
|
|
9
|
+
`;
|
|
10
|
+
export const applyTexture = (isRealityTile) => `
|
|
11
|
+
bool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {
|
|
12
|
+
vec2 uv;
|
|
13
|
+
float layerAlpha;
|
|
14
|
+
bool isProjected = params[0][0] != 0.0;
|
|
15
|
+
float imageCount = params[0][1];
|
|
16
|
+
vec2 classPos;
|
|
17
|
+
|
|
18
|
+
if (isProjected) {
|
|
19
|
+
vec4 eye4 = vec4(v_eyeSpace, 1.0);
|
|
20
|
+
vec4 classPos4 = matrix * eye4;
|
|
21
|
+
classPos = classPos4.xy / classPos4.w;
|
|
22
|
+
|
|
23
|
+
if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y)
|
|
24
|
+
${isRealityTile ? "||" : "&&"}
|
|
25
|
+
!testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y)
|
|
26
|
+
${isRealityTile ? "||" : "&&"}
|
|
27
|
+
!testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y)
|
|
28
|
+
${isRealityTile ? "||" : "&&"}
|
|
29
|
+
!testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))
|
|
30
|
+
return false;
|
|
31
|
+
|
|
32
|
+
uv.x = classPos.x;
|
|
33
|
+
uv.y = classPos.y / imageCount;
|
|
34
|
+
layerAlpha = params[0][2];
|
|
35
|
+
|
|
36
|
+
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)
|
|
37
|
+
return false;
|
|
38
|
+
|
|
39
|
+
} else {
|
|
40
|
+
vec4 texTransform = matrix[0].xyzw;
|
|
41
|
+
vec4 texClip = matrix[1].xyzw;
|
|
42
|
+
layerAlpha = matrix[2].x;
|
|
43
|
+
uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);
|
|
44
|
+
|
|
45
|
+
if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])
|
|
46
|
+
return false;
|
|
47
|
+
|
|
48
|
+
uv.y = 1.0 - uv.y;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
vec4 texCol = TEXTURE(sampler, uv);
|
|
52
|
+
float alpha = layerAlpha * texCol.a;
|
|
53
|
+
|
|
54
|
+
if (alpha > 0.05) {
|
|
55
|
+
vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // If projected, undo premultiplication
|
|
56
|
+
// Texture color is premultiplied earlier by alpha only if projected (from classification).
|
|
57
|
+
|
|
58
|
+
col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;
|
|
59
|
+
|
|
60
|
+
if (isProjected) {
|
|
61
|
+
vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));
|
|
62
|
+
classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;
|
|
63
|
+
} else {
|
|
64
|
+
featureIncrement = matrix[2].y;
|
|
65
|
+
classifierId = vec4(0);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (alpha > col.a)
|
|
69
|
+
col.a = alpha;
|
|
70
|
+
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// If texture color is transparent but base color is not, return true (don't discard)
|
|
75
|
+
// Else return false (discard) if both the texture and base color are transparent
|
|
76
|
+
return (col.a > 0.05);
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
export const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;
|
|
80
|
+
function applyDraping() {
|
|
81
|
+
const applyTextureStrings = [];
|
|
82
|
+
for (let i = 0; i < System.instance.maxRealityImageryLayers; i++)
|
|
83
|
+
applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);
|
|
84
|
+
return `
|
|
85
|
+
if (!u_texturesPresent) {
|
|
86
|
+
vec4 col = baseColor;
|
|
87
|
+
return col;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
bool doDiscard = baseColor.a < 0.05;
|
|
91
|
+
vec4 col = baseColor;
|
|
92
|
+
${applyTextureStrings.join("\n ")}
|
|
93
|
+
if (doDiscard)
|
|
94
|
+
discard;
|
|
95
|
+
|
|
96
|
+
return col;
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @internal
|
|
101
|
+
*/
|
|
102
|
+
export function addApplySurfaceDraping(frag) {
|
|
103
|
+
frag.addGlobal("featureIncrement", 2 /* VariableType.Float */, "0.0");
|
|
104
|
+
frag.addGlobal("classifierId", 5 /* VariableType.Vec4 */);
|
|
105
|
+
frag.addFunction(addUInt32s);
|
|
106
|
+
frag.addFunction(testInside);
|
|
107
|
+
frag.addFunction(applyTexture(false));
|
|
108
|
+
frag.set(14 /* FragmentShaderComponent.ApplyDraping */, applyDraping());
|
|
109
|
+
frag.set(19 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=MaplayerDraping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaplayerDraping.js","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/MaplayerDraping.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;CAMzB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,aAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;UAc9C,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;UAE3B,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;UAE3B,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDpC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,oIAAoI,CAAC;AAEtK,SAAS,YAAY;IACnB,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,EAAE;QAC9D,mBAAmB,CAAC,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;IAE1H,OAAO;;;;;;;;IAQL,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;GAKjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA2B;IAChE,IAAI,CAAC,SAAS,CAAC,kBAAkB,8BAAsB,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,CAAC,cAAc,4BAAoB,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,gDAAuC,YAAY,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,qDAA4C,iBAAiB,CAAC,CAAC;AACzE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\nimport { FragmentShaderBuilder, FragmentShaderComponent, VariableType } from \"../ShaderBuilder\";\nimport { System } from \"../System\";\nimport { addUInt32s } from \"./Common\";\n\nexport const testInside = `\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\n return dot >= -0.001;\n}\n`;\n\nexport const applyTexture = (isRealityTile: boolean) => `\nbool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {\n vec2 uv;\n float layerAlpha;\n bool isProjected = params[0][0] != 0.0;\n float imageCount = params[0][1];\n vec2 classPos;\n\n if (isProjected) {\n vec4 eye4 = vec4(v_eyeSpace, 1.0);\n vec4 classPos4 = matrix * eye4;\n classPos = classPos4.xy / classPos4.w;\n\n if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y)\n ${isRealityTile ? \"||\" : \"&&\"}\n !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y)\n ${isRealityTile ? \"||\" : \"&&\"}\n !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y)\n ${isRealityTile ? \"||\" : \"&&\"}\n !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))\n return false;\n\n uv.x = classPos.x;\n uv.y = classPos.y / imageCount;\n layerAlpha = params[0][2];\n\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)\n return false;\n\n } else {\n vec4 texTransform = matrix[0].xyzw;\n vec4 texClip = matrix[1].xyzw;\n layerAlpha = matrix[2].x;\n uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);\n\n if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])\n return false;\n\n uv.y = 1.0 - uv.y;\n }\n\n vec4 texCol = TEXTURE(sampler, uv);\n float alpha = layerAlpha * texCol.a;\n\n if (alpha > 0.05) {\n vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // If projected, undo premultiplication\n // Texture color is premultiplied earlier by alpha only if projected (from classification).\n\n col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;\n\n if (isProjected) {\n vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));\n classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;\n } else {\n featureIncrement = matrix[2].y;\n classifierId = vec4(0);\n }\n\n if (alpha > col.a)\n col.a = alpha;\n\n return true;\n }\n\n // If texture color is transparent but base color is not, return true (don't discard)\n // Else return false (discard) if both the texture and base color are transparent\n return (col.a > 0.05);\n}\n`;\n\nexport const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;\n\nfunction applyDraping(){\n const applyTextureStrings = [];\n\n for (let i = 0; i < System.instance.maxRealityImageryLayers; i++)\n applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);\n\n return `\n if (!u_texturesPresent) {\n vec4 col = baseColor;\n return col;\n }\n\n bool doDiscard = baseColor.a < 0.05;\n vec4 col = baseColor;\n ${applyTextureStrings.join(\"\\n \")}\n if (doDiscard)\n discard;\n\n return col;\n `;\n}\n\n/**\n * @internal\n */\nexport function addApplySurfaceDraping(frag: FragmentShaderBuilder) {\n frag.addGlobal(\"featureIncrement\", VariableType.Float, \"0.0\");\n frag.addGlobal(\"classifierId\", VariableType.Vec4);\n frag.addFunction(addUInt32s);\n frag.addFunction(testInside);\n frag.addFunction(applyTexture(false));\n frag.set(FragmentShaderComponent.ApplyDraping, applyDraping());\n frag.set(FragmentShaderComponent.OverrideFeatureId, overrideFeatureId);\n}"]}
|
|
@@ -290,7 +290,7 @@ export function addFeaturePlanarClassifier(builder) {
|
|
|
290
290
|
uniform.setUniform4fv(scratchBatchBaseComponents);
|
|
291
291
|
});
|
|
292
292
|
});
|
|
293
|
-
frag.set(
|
|
293
|
+
frag.set(19 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
|
|
294
294
|
frag.addFunction(addUInt32s);
|
|
295
295
|
}
|
|
296
296
|
/** @internal */
|
|
@@ -379,8 +379,8 @@ export function addOverrideClassifierColor(builder, isThematic) {
|
|
|
379
379
|
const haveOverrides = undefined !== builder.frag.find("v_feature_emphasis");
|
|
380
380
|
builder.frag.addFunction(haveOverrides ? encodeNonLocatableWithFeatures : encodeNonLocatable);
|
|
381
381
|
if (isThematic === 0 /* IsThematic.No */)
|
|
382
|
-
builder.frag.set(
|
|
382
|
+
builder.frag.set(21 /* FragmentShaderComponent.OverrideColor */, haveOverrides ? overrideClassifierWithFeatures : overrideClassifierForClip);
|
|
383
383
|
else
|
|
384
|
-
builder.frag.set(
|
|
384
|
+
builder.frag.set(21 /* FragmentShaderComponent.OverrideColor */, haveOverrides ? overrideClassifierWithFeaturesForThematic : overrideClassifierForClipForThematic);
|
|
385
385
|
}
|
|
386
386
|
//# sourceMappingURL=PlanarClassification.js.map
|
|
@@ -89,7 +89,7 @@ export function createPointCloudBuilder(classified, featureMode, thematic) {
|
|
|
89
89
|
}
|
|
90
90
|
if (1 /* IsThematic.Yes */ === thematic) {
|
|
91
91
|
addThematicDisplay(builder, true);
|
|
92
|
-
addTexture(builder, 0 /* IsAnimated.No */, 1 /* IsThematic.Yes */, true, false);
|
|
92
|
+
addTexture(builder, 0 /* IsAnimated.No */, 1 /* IsThematic.Yes */, true, false, false);
|
|
93
93
|
}
|
|
94
94
|
return builder;
|
|
95
95
|
}
|
|
@@ -98,7 +98,7 @@ export function createPointCloudHiliter(classified) {
|
|
|
98
98
|
const builder = createBuilder();
|
|
99
99
|
if (classified) {
|
|
100
100
|
addHilitePlanarClassifier(builder, false);
|
|
101
|
-
builder.frag.set(
|
|
101
|
+
builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
104
|
addUniformHiliter(builder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/PointCloud.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/PointCloud.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { AttributeMap } from \"../AttributeMap\";\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { FeatureMode, IsAnimated, IsClassified, IsThematic } from \"../TechniqueFlags\";\nimport { TechniqueId } from \"../TechniqueId\";\nimport { addUniformHiliter } from \"./FeatureSymbology\";\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\nimport { addModelViewProjectionMatrix } from \"./Vertex\";\nimport { addViewportTransformation } from \"./Viewport\";\nimport { addThematicDisplay } from \"./Thematic\";\nimport { addTexture } from \"./Surface\";\nimport { assignFragColor } from \"./Fragment\";\n\n// Revert components if color format is BGR instead of RGB.\nconst computeColor = `\n return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);\n`;\n\nconst computeBaseColor = \"return v_color;\";\n\n// Round the point unless drawing square points.\nconst roundPointDiscard = `\n if (u_pointCloudSettings.w == 1.0)\n return false;\n\n vec2 pointXY = (2.0 * gl_PointCoord - 1.0);\n return dot(pointXY, pointXY) > 1.0;\n`;\n\nconst checkForClassifiedDiscard = \"return baseColor.a == 0.0;\";\n\nconst computePosition = `\n gl_PointSize = 1.0;\n vec4 pos = MAT_MVP * rawPos;\n if (u_pointCloudSettings.x > 0.0) {\n // Size is specified in pixels.\n gl_PointSize = u_pointCloudSettings.x;\n return pos;\n }\n\n // Point size is in meters (voxel size).\n if (pos.w <= 0.0) {\n // Cannot perform perspective divide below.\n return pos;\n }\n\n // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.\n mat4 toView = u_viewportTransformation * MAT_MVP;\n float scale = length(toView[0].xyz);\n gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);\n return pos;\n`;\n\nfunction createBuilder(): ProgramBuilder {\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.PointCloud, false));\n const vert = builder.vert;\n addViewportTransformation(vert);\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\n addModelViewProjectionMatrix(vert);\n\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundPointDiscard);\n\n // Uniforms based on the PointCloudDisplaySettings.\n builder.addUniform(\"u_pointCloudSettings\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_pointCloudSettings\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bind(uniform);\n });\n });\n\n // Uniforms based on the PointCloudGeometry.\n builder.vert.addUniform(\"u_pointCloud\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_pointCloud\", (uniform, params) => {\n assert(params.geometry.asPointCloud !== undefined);\n scratchPointCloud[0] = params.geometry.asPointCloud.voxelSize;\n scratchPointCloud[1] = params.geometry.asPointCloud.colorIsBgr ? 1 : 0;\n uniform.setUniform2fv(scratchPointCloud);\n });\n });\n\n return builder;\n}\n\nconst scratchPointCloud = new Float32Array([0, 0]);\n\n/** @internal */\nexport function createPointCloudBuilder(classified: IsClassified, featureMode: FeatureMode, thematic: IsThematic): ProgramBuilder {\n const builder = createBuilder();\n\n builder.addVarying(\"v_color\", VariableType.Vec4);\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeColor);\n\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n if (classified) {\n addColorPlanarClassifier(builder, false, thematic);\n builder.frag.set(FragmentShaderComponent.CheckForDiscard, checkForClassifiedDiscard);\n\n if (FeatureMode.None !== featureMode)\n addFeaturePlanarClassifier(builder);\n }\n\n if (IsThematic.Yes === thematic) {\n addThematicDisplay(builder, true);\n addTexture(builder, IsAnimated.No, IsThematic.Yes, true, false, false);\n }\n\n return builder;\n}\n\n/** @internal */\nexport function createPointCloudHiliter(classified: IsClassified): ProgramBuilder {\n const builder = createBuilder();\n if (classified) {\n addHilitePlanarClassifier(builder, false);\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n } else {\n addUniformHiliter(builder);\n }\n\n return builder;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,EAA2B,cAAc,EAAE,aAAa,EAAuC,MAAM,kBAAkB,CAAC;AAE/H,OAAO,EAAyC,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,EAA2B,cAAc,EAAE,aAAa,EAAuC,MAAM,kBAAkB,CAAC;AAE/H,OAAO,EAAyC,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwB1F,eAAO,MAAM,cAAc,uEAE1B,CAAC;AA0HF,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,QAMtD;AAYD,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,cAAc,CAInE;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,cAAc,CAIzD;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAyE9E"}
|
|
@@ -25,6 +25,7 @@ import { addClassificationTranslucencyDiscard, octDecodeNormal } from "./Surface
|
|
|
25
25
|
import { addThematicDisplay, getComputeThematicIndex } from "./Thematic";
|
|
26
26
|
import { addModelViewProjectionMatrix, addNormalMatrix } from "./Vertex";
|
|
27
27
|
import { addWiremesh } from "./Wiremesh";
|
|
28
|
+
import { applyTexture, overrideFeatureId, testInside } from "./MaplayerDraping";
|
|
28
29
|
const computePosition = "gl_PointSize = 1.0; return MAT_MVP * rawPos;";
|
|
29
30
|
const computeNormal = `
|
|
30
31
|
vec3 normal = octDecodeNormal(a_norm); // normal coming in for is already in world space
|
|
@@ -34,95 +35,10 @@ const computeNormal = `
|
|
|
34
35
|
export const finalizeNormal = `
|
|
35
36
|
return normalize(v_n) * (2.0 * float(gl_FrontFacing) - 1.0);
|
|
36
37
|
`;
|
|
37
|
-
const testInside = `
|
|
38
|
-
bool testInside(float x0, float y0, float x1, float y1, float x, float y) {
|
|
39
|
-
vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);
|
|
40
|
-
float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);
|
|
41
|
-
return dot >= -0.001;
|
|
42
|
-
}
|
|
43
|
-
`;
|
|
44
|
-
/* There are two methods of applying a texture to a reality mesh. the first member of "params" denotes which
|
|
45
|
-
method is to be used. A value of zero indicates a standard texture and one represents a projected texture.
|
|
46
|
-
|
|
47
|
-
A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row
|
|
48
|
-
of "matrix". A clip rectangle is packed into second row of "matrix".
|
|
49
|
-
|
|
50
|
-
A "projected" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates
|
|
51
|
-
are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position
|
|
52
|
-
so the matrix in this case is a real transform matrix that contains a mapping from eye to model position
|
|
53
|
-
followed by the model to texture projection.
|
|
54
|
-
*/
|
|
55
|
-
const applyTexture = `
|
|
56
|
-
bool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {
|
|
57
|
-
vec2 uv;
|
|
58
|
-
float layerAlpha;
|
|
59
|
-
bool isProjected = params[0][0] != 0.0;
|
|
60
|
-
float imageCount = params[0][1];
|
|
61
|
-
vec2 classPos;
|
|
62
|
-
|
|
63
|
-
if (isProjected) {
|
|
64
|
-
vec4 eye4 = vec4(v_eyeSpace, 1.0);
|
|
65
|
-
vec4 classPos4 = matrix * eye4;
|
|
66
|
-
classPos = classPos4.xy / classPos4.w;
|
|
67
|
-
|
|
68
|
-
if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y) ||
|
|
69
|
-
!testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y) ||
|
|
70
|
-
!testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y) ||
|
|
71
|
-
!testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))
|
|
72
|
-
return false;
|
|
73
|
-
|
|
74
|
-
uv.x = classPos.x;
|
|
75
|
-
uv.y = classPos.y / imageCount;
|
|
76
|
-
layerAlpha = params[0][2];
|
|
77
|
-
|
|
78
|
-
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)
|
|
79
|
-
return false;
|
|
80
|
-
|
|
81
|
-
} else {
|
|
82
|
-
vec4 texTransform = matrix[0].xyzw;
|
|
83
|
-
vec4 texClip = matrix[1].xyzw;
|
|
84
|
-
layerAlpha = matrix[2].x;
|
|
85
|
-
uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);
|
|
86
|
-
|
|
87
|
-
if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])
|
|
88
|
-
return false;
|
|
89
|
-
|
|
90
|
-
uv.y = 1.0 - uv.y;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
vec4 texCol = TEXTURE(sampler, uv);
|
|
94
|
-
float alpha = layerAlpha * texCol.a;
|
|
95
|
-
|
|
96
|
-
if (alpha > 0.05) {
|
|
97
|
-
vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // If projected, undo premultiplication
|
|
98
|
-
// Texture color is premultiplied earlier by alpha only if projected (from classification).
|
|
99
|
-
|
|
100
|
-
col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;
|
|
101
|
-
|
|
102
|
-
if (isProjected) {
|
|
103
|
-
vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));
|
|
104
|
-
classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;
|
|
105
|
-
} else {
|
|
106
|
-
featureIncrement = matrix[2].y;
|
|
107
|
-
classifierId = vec4(0);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (alpha > col.a)
|
|
111
|
-
col.a = alpha;
|
|
112
|
-
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// If texture color is transparent but base color is not, return true (don't discard)
|
|
117
|
-
// Else return false (discard) if both the texture and base color are transparent
|
|
118
|
-
return (col.a > 0.05);
|
|
119
|
-
}
|
|
120
|
-
`;
|
|
121
38
|
const computeTexCoord = "return unquantize2d(a_uvParam, u_qTexCoordParams);";
|
|
122
39
|
const scratchMatrix4d1 = Matrix4d.createIdentity();
|
|
123
40
|
const scratchMatrix4d2 = Matrix4d.createIdentity();
|
|
124
41
|
const scratchMatrix = new Matrix4();
|
|
125
|
-
const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;
|
|
126
42
|
function addTextures(builder, maxTexturesPerMesh) {
|
|
127
43
|
builder.vert.addFunction(unquantize2d);
|
|
128
44
|
builder.addFunctionComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, "computeTexCoord", computeTexCoord);
|
|
@@ -151,7 +67,6 @@ function addTextures(builder, maxTexturesPerMesh) {
|
|
|
151
67
|
texture.texture.bindSampler(uniform, textureUnits[i]);
|
|
152
68
|
}
|
|
153
69
|
else {
|
|
154
|
-
// assert(false, "Terrain Mesh texture not defined when beginning texture.");
|
|
155
70
|
System.instance.ensureSamplerBound(uniform, textureUnits[i]);
|
|
156
71
|
}
|
|
157
72
|
});
|
|
@@ -220,7 +135,7 @@ function addThematicToRealityMesh(builder, gradientTextureUnit) {
|
|
|
220
135
|
builder.vert.addGlobal("g_hillshadeIndex", 2 /* VariableType.Float */);
|
|
221
136
|
builder.addFunctionComputedVarying("v_n", 4 /* VariableType.Vec3 */, "computeLightingNormal", computeNormal);
|
|
222
137
|
builder.frag.addGlobal("g_normal", 4 /* VariableType.Vec3 */);
|
|
223
|
-
builder.frag.set(
|
|
138
|
+
builder.frag.set(24 /* FragmentShaderComponent.FinalizeNormal */, finalizeNormal);
|
|
224
139
|
addThematicDisplay(builder, false, true);
|
|
225
140
|
builder.addInlineComputedVarying("v_thematicIndex", 2 /* VariableType.Float */, getComputeThematicIndex(builder.vert.usesInstancedGeometry, false, false));
|
|
226
141
|
builder.vert.addUniform("u_worldToViewN", 6 /* VariableType.Mat3 */, (prog) => {
|
|
@@ -247,7 +162,7 @@ function createRealityMeshHiliterBuilder() {
|
|
|
247
162
|
const vert = builder.vert;
|
|
248
163
|
vert.set(10 /* VertexShaderComponent.ComputePosition */, computePosition);
|
|
249
164
|
addModelViewProjectionMatrix(vert);
|
|
250
|
-
builder.frag.set(
|
|
165
|
+
builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
|
|
251
166
|
return builder;
|
|
252
167
|
}
|
|
253
168
|
/** @internal */
|
|
@@ -273,7 +188,7 @@ export function createRealityMeshBuilder(flags) {
|
|
|
273
188
|
const frag = builder.frag;
|
|
274
189
|
frag.addGlobal("featureIncrement", 2 /* VariableType.Float */, "0.0");
|
|
275
190
|
frag.addGlobal("classifierId", 5 /* VariableType.Vec4 */);
|
|
276
|
-
frag.set(
|
|
191
|
+
frag.set(19 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
|
|
277
192
|
const textureCount = System.instance.maxRealityImageryLayers;
|
|
278
193
|
const gradientTextureUnit = TextureUnit.RealityMeshThematicGradient;
|
|
279
194
|
const feat = flags.featureMode;
|
|
@@ -295,7 +210,7 @@ export function createRealityMeshBuilder(flags) {
|
|
|
295
210
|
frag.addFunction(addUInt32s);
|
|
296
211
|
frag.addFunction(testInside);
|
|
297
212
|
addEyeSpace(builder);
|
|
298
|
-
frag.addFunction(applyTexture);
|
|
213
|
+
frag.addFunction(applyTexture(true));
|
|
299
214
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeFragmentBaseColor);
|
|
300
215
|
builder.frag.addUniform("u_baseColor", 5 /* VariableType.Vec4 */, (prog) => {
|
|
301
216
|
prog.addGraphicUniform("u_baseColor", (uniform, params) => {
|