@itwin/core-frontend 3.6.0-dev.8 → 4.0.0-dev.2
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/CHANGELOG.md +35 -1
- package/LICENSE.md +1 -1
- package/lib/cjs/AccuDraw.js +1 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +23 -3
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +11 -3
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +2 -2
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +12 -4
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +3 -3
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +2 -2
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +4 -6
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +6 -7
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts +8 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +10 -6
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +3 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +4 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +19 -5
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Tiles.d.ts +4 -0
- package/lib/cjs/Tiles.d.ts.map +1 -1
- package/lib/cjs/Tiles.js +11 -0
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/ViewContext.js +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +2 -3
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +4 -5
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +0 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +53 -4
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +82 -34
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/extension/ExtensionImpl.js +2 -2
- package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +3 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +3 -0
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +1 -1
- package/lib/cjs/render/GraphicBuilder.js +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +3 -0
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.d.ts +3 -4
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js +9 -5
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderMaterial.d.ts +1 -1
- package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
- package/lib/cjs/render/RenderMaterial.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +4 -4
- package/lib/cjs/render/RenderSystem.js +4 -4
- 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/render/VisibleFeature.d.ts +5 -5
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.js +2 -1
- package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +5 -0
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +6 -4
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/EDL.d.ts +40 -0
- package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
- package/lib/cjs/render/webgl/EDL.js +264 -0
- package/lib/cjs/render/webgl/EDL.js.map +1 -0
- package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
- package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
- package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
- package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
- package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/Layer.js +2 -2
- package/lib/cjs/render/webgl/LayerCommands.js +2 -2
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +9 -8
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +2 -0
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +8 -3
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +46 -38
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +19 -17
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +8 -6
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +6 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +195 -76
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +5 -5
- package/lib/cjs/render/webgl/Target.js +7 -7
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +18 -3
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
- package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +1 -2
- package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
- package/lib/cjs/render/webgl/glsl/EDL.d.ts +14 -0
- package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
- package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
- package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
- package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
- package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/tile/BatchedTileIdMap.js +1 -1
- package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +4 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/IModelTile.js +1 -1
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +6 -0
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +20 -7
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts +14 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +30 -11
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -3
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +61 -53
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +2 -2
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts +5 -0
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +9 -4
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +15 -7
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +3 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +3 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +14 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +57 -27
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +26 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +54 -4
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -2
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +12 -2
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +16 -4
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +2 -0
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +5 -0
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +33 -14
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +42 -3
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +126 -9
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +26 -0
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts +23 -68
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +269 -260
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +2 -2
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +2 -2
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/esm/AccuDraw.js +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +23 -3
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +11 -3
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CheckpointConnection.js +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +2 -2
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +12 -4
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +3 -3
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +2 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +4 -6
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +6 -7
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/NativeApp.d.ts +8 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +10 -6
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +3 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +4 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +19 -5
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Tiles.d.ts +4 -0
- package/lib/esm/Tiles.d.ts.map +1 -1
- package/lib/esm/Tiles.js +11 -0
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/ViewContext.js +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +2 -3
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewState.d.ts +4 -5
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +0 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +53 -4
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +83 -35
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/extension/ExtensionImpl.js +2 -2
- package/lib/esm/extension/ExtensionImpl.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +5 -2
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +3 -0
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +1 -1
- package/lib/esm/render/GraphicBuilder.js +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +3 -0
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.d.ts +3 -4
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshParams.js +10 -6
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderMaterial.d.ts +1 -1
- package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
- package/lib/esm/render/RenderMaterial.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +4 -4
- package/lib/esm/render/RenderSystem.js +4 -4
- 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/render/VisibleFeature.d.ts +5 -5
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.js +2 -1
- package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +3 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +5 -0
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +69 -0
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +6 -4
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/EDL.d.ts +40 -0
- package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
- package/lib/esm/render/webgl/EDL.js +260 -0
- package/lib/esm/render/webgl/EDL.js.map +1 -0
- package/lib/esm/render/webgl/EdgeSettings.js +2 -2
- package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
- package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js +9 -0
- package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
- package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/render/webgl/Layer.js +2 -2
- package/lib/esm/render/webgl/LayerCommands.js +2 -2
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +9 -8
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +2 -0
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +8 -3
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
- package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts +2 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +46 -38
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +19 -17
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +8 -6
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +6 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +194 -77
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +5 -5
- package/lib/esm/render/webgl/Target.js +7 -7
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +18 -3
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
- package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +1 -2
- package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
- package/lib/esm/render/webgl/glsl/EDL.d.ts +14 -0
- package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
- package/lib/esm/render/webgl/glsl/EDL.js +253 -0
- package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
- package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
- package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/tile/BatchedTileIdMap.js +1 -1
- package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -1
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +4 -2
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/IModelTile.js +1 -1
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +6 -0
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +20 -7
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts +14 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +30 -12
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +4 -3
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +62 -54
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +2 -2
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts +5 -0
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +9 -4
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +15 -7
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +3 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +3 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +14 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +57 -27
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +26 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +53 -4
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -2
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +12 -2
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +16 -4
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +2 -0
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +5 -0
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +33 -14
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +42 -3
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +126 -9
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +26 -0
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.d.ts +23 -68
- package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +268 -259
- package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +2 -2
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js +2 -2
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/public/locales/en/iModelJs.json +2 -2
- package/package.json +20 -21
|
@@ -26,7 +26,8 @@ import { SolarShadowMap } from "./SolarShadowMap";
|
|
|
26
26
|
import { System } from "./System";
|
|
27
27
|
import { TextureHandle } from "./Texture";
|
|
28
28
|
import { RenderBufferMultiSample } from "./RenderBuffer";
|
|
29
|
-
|
|
29
|
+
import { EDLMode, EyeDomeLighting } from "./EDL";
|
|
30
|
+
export function collectTextureStatistics(texture, stats) {
|
|
30
31
|
if (undefined !== texture)
|
|
31
32
|
stats.addTextureAttachment(texture.bytesUsed);
|
|
32
33
|
}
|
|
@@ -294,7 +295,7 @@ class FrameBuffers {
|
|
|
294
295
|
this.volClassCreateBlendAltZ = dispose(this.volClassCreateBlendAltZ);
|
|
295
296
|
}
|
|
296
297
|
}
|
|
297
|
-
function collectGeometryStatistics(geom, stats) {
|
|
298
|
+
export function collectGeometryStatistics(geom, stats) {
|
|
298
299
|
if (undefined !== geom)
|
|
299
300
|
geom.collectStatistics(stats);
|
|
300
301
|
}
|
|
@@ -516,6 +517,7 @@ export class SceneCompositor {
|
|
|
516
517
|
constructor(target) {
|
|
517
518
|
this.target = target;
|
|
518
519
|
this.solarShadowMap = new SolarShadowMap(target);
|
|
520
|
+
this.eyeDomeLighting = new EyeDomeLighting(target);
|
|
519
521
|
this._needHiddenEdges = false;
|
|
520
522
|
}
|
|
521
523
|
get needHiddenEdges() { return this._needHiddenEdges; }
|
|
@@ -545,6 +547,7 @@ class Compositor extends SceneCompositor {
|
|
|
545
547
|
this._hiliteRenderState = new RenderState();
|
|
546
548
|
this._noDepthMaskRenderState = new RenderState();
|
|
547
549
|
this._backgroundMapRenderState = new RenderState();
|
|
550
|
+
this._pointCloudRenderState = new RenderState();
|
|
548
551
|
this._debugStencil = 0; // 0 to draw stencil volumes normally, 1 to draw as opaque, 2 to draw blended
|
|
549
552
|
this._haveVolumeClassifier = false;
|
|
550
553
|
this._antialiasSamples = 1;
|
|
@@ -553,6 +556,7 @@ class Compositor extends SceneCompositor {
|
|
|
553
556
|
this._frameBuffers = fbos;
|
|
554
557
|
this._geom = geometry;
|
|
555
558
|
this._opaqueRenderState.flags.depthTest = true;
|
|
559
|
+
this._pointCloudRenderState.flags.depthTest = true;
|
|
556
560
|
this._translucentRenderState.flags.depthMask = false;
|
|
557
561
|
this._translucentRenderState.flags.blend = this._translucentRenderState.flags.depthTest = true;
|
|
558
562
|
this._translucentRenderState.blend.setBlendFuncSeparate(GL.BlendFactor.One, GL.BlendFactor.Zero, GL.BlendFactor.One, GL.BlendFactor.OneMinusSrcAlpha);
|
|
@@ -784,6 +788,12 @@ class Compositor extends SceneCompositor {
|
|
|
784
788
|
frameBufferStack: System.instance.frameBufferStack,
|
|
785
789
|
});
|
|
786
790
|
this.target.frameStatsCollector.endTime("onRenderOpaqueTime");
|
|
791
|
+
// Render point cloud geometry with possible EDL (WebGL2 only)
|
|
792
|
+
if (System.instance.capabilities.isWebGL2) {
|
|
793
|
+
this.target.beginPerfMetricRecord("Render PointClouds");
|
|
794
|
+
this.renderPointClouds(commands, compositeFlags);
|
|
795
|
+
this.target.endPerfMetricRecord();
|
|
796
|
+
}
|
|
787
797
|
// Render opaque geometry
|
|
788
798
|
this.target.beginPerfMetricRecord("Render Opaque");
|
|
789
799
|
this.renderOpaque(commands, compositeFlags, false);
|
|
@@ -792,7 +802,7 @@ class Compositor extends SceneCompositor {
|
|
|
792
802
|
this.target.frameStatsCollector.beginTime("translucentTime");
|
|
793
803
|
// Render translucent layers
|
|
794
804
|
this.target.beginPerfMetricRecord("Render Translucent Layers");
|
|
795
|
-
this.renderLayers(commands, needComposite,
|
|
805
|
+
this.renderLayers(commands, needComposite, 7 /* TranslucentLayers */);
|
|
796
806
|
this.target.endPerfMetricRecord();
|
|
797
807
|
if (needComposite) {
|
|
798
808
|
this._geom.composite.update(compositeFlags);
|
|
@@ -813,13 +823,13 @@ class Compositor extends SceneCompositor {
|
|
|
813
823
|
// Render overlay Layers
|
|
814
824
|
this.target.frameStatsCollector.beginTime("overlaysTime");
|
|
815
825
|
this.target.beginPerfMetricRecord("Render Overlay Layers");
|
|
816
|
-
this.renderLayers(commands, false,
|
|
826
|
+
this.renderLayers(commands, false, 11 /* OverlayLayers */);
|
|
817
827
|
this.target.endPerfMetricRecord();
|
|
818
828
|
this.target.frameStatsCollector.endTime("overlaysTime");
|
|
819
829
|
this.target.popViewClip();
|
|
820
830
|
}
|
|
821
831
|
get fullHeight() { return this.target.viewRect.height; }
|
|
822
|
-
drawForReadPixels(commands, sceneOverlays,
|
|
832
|
+
drawForReadPixels(commands, sceneOverlays, worldOverlayDecorations, viewOverlayDecorations) {
|
|
823
833
|
this.target.beginPerfMetricRecord("Render Background", true);
|
|
824
834
|
if (!this.preDraw()) {
|
|
825
835
|
this.target.endPerfMetricRecord(true); // End Render Background record if returning
|
|
@@ -842,28 +852,29 @@ class Compositor extends SceneCompositor {
|
|
|
842
852
|
// Ensure it draws before any opaque geometry (including layers), without depth.
|
|
843
853
|
this.target.beginPerfMetricRecord("Render background map", true);
|
|
844
854
|
this.target.drawingBackgroundForReadPixels = true;
|
|
845
|
-
this.renderLayers(commands, false,
|
|
855
|
+
this.renderLayers(commands, false, 15 /* BackgroundMap */);
|
|
846
856
|
this.target.drawingBackgroundForReadPixels = false;
|
|
847
857
|
this.target.endPerfMetricRecord(true);
|
|
848
858
|
this.target.beginPerfMetricRecord("Render Opaque Layers", true);
|
|
849
859
|
this.renderLayers(commands, false, 1 /* OpaqueLayers */);
|
|
850
860
|
this.target.endPerfMetricRecord(true);
|
|
861
|
+
// PointClouds are rendered in Opaque pass for readPixels
|
|
851
862
|
this.target.beginPerfMetricRecord("Render Opaque", true);
|
|
852
863
|
this.renderOpaque(commands, 0 /* None */, true);
|
|
853
864
|
this.target.endPerfMetricRecord(true);
|
|
854
865
|
this.target.beginPerfMetricRecord("Render Translucent Layers", true);
|
|
855
|
-
this.renderLayers(commands, false,
|
|
866
|
+
this.renderLayers(commands, false, 7 /* TranslucentLayers */);
|
|
856
867
|
this.target.endPerfMetricRecord(true);
|
|
857
868
|
this.target.beginPerfMetricRecord("Render Overlay Layers", true);
|
|
858
|
-
this.renderLayers(commands, false,
|
|
869
|
+
this.renderLayers(commands, false, 11 /* OverlayLayers */);
|
|
859
870
|
this.target.endPerfMetricRecord(true);
|
|
860
871
|
this.target.popViewClip();
|
|
861
872
|
}
|
|
862
|
-
if (
|
|
873
|
+
if (!sceneOverlays.length && !(worldOverlayDecorations === null || worldOverlayDecorations === void 0 ? void 0 : worldOverlayDecorations.length) && !(viewOverlayDecorations === null || viewOverlayDecorations === void 0 ? void 0 : viewOverlayDecorations.length))
|
|
863
874
|
return;
|
|
864
875
|
// Now populate the opaque passes with any pickable world overlays
|
|
865
876
|
this.target.beginPerfMetricRecord("Overlay Draws", true);
|
|
866
|
-
commands.initForPickOverlays(sceneOverlays,
|
|
877
|
+
commands.initForPickOverlays(sceneOverlays, worldOverlayDecorations, viewOverlayDecorations);
|
|
867
878
|
if (commands.isEmpty) {
|
|
868
879
|
this.target.endPerfMetricRecord(true); // End Overlay Draws record if returning
|
|
869
880
|
return;
|
|
@@ -933,11 +944,13 @@ class Compositor extends SceneCompositor {
|
|
|
933
944
|
&& this._frameBuffers.isDisposed
|
|
934
945
|
&& this._geom.isDisposed
|
|
935
946
|
&& !this._haveVolumeClassifier
|
|
936
|
-
&& this.solarShadowMap.isDisposed
|
|
947
|
+
&& this.solarShadowMap.isDisposed
|
|
948
|
+
&& this.eyeDomeLighting.isDisposed;
|
|
937
949
|
}
|
|
938
950
|
dispose() {
|
|
939
951
|
this.reset();
|
|
940
952
|
dispose(this.solarShadowMap);
|
|
953
|
+
dispose(this.eyeDomeLighting);
|
|
941
954
|
}
|
|
942
955
|
// Resets anything that depends on the dimensions of the render target.
|
|
943
956
|
// Does *not* dispose the solar shadow map.
|
|
@@ -950,6 +963,7 @@ class Compositor extends SceneCompositor {
|
|
|
950
963
|
dispose(this._frameBuffers);
|
|
951
964
|
dispose(this._geom);
|
|
952
965
|
this._haveVolumeClassifier = false;
|
|
966
|
+
this.eyeDomeLighting.reset();
|
|
953
967
|
}
|
|
954
968
|
init() {
|
|
955
969
|
this.reset();
|
|
@@ -961,7 +975,8 @@ class Compositor extends SceneCompositor {
|
|
|
961
975
|
if (this._depth !== undefined) {
|
|
962
976
|
return this._textures.init(this._width, this._height, this._antialiasSamples)
|
|
963
977
|
&& this._frameBuffers.init(this._textures, this._depth, this._depthMS)
|
|
964
|
-
&& this._geom.init(this._textures)
|
|
978
|
+
&& this._geom.init(this._textures)
|
|
979
|
+
&& this.eyeDomeLighting.init(this._width, this._height, this._depth);
|
|
965
980
|
}
|
|
966
981
|
return false;
|
|
967
982
|
}
|
|
@@ -980,27 +995,27 @@ class Compositor extends SceneCompositor {
|
|
|
980
995
|
return this._textures.disableMultiSampling();
|
|
981
996
|
}
|
|
982
997
|
renderBackgroundMap(commands, needComposite) {
|
|
983
|
-
const cmds = commands.getCommands(
|
|
998
|
+
const cmds = commands.getCommands(15 /* BackgroundMap */);
|
|
984
999
|
if (0 === cmds.length) {
|
|
985
1000
|
return;
|
|
986
1001
|
}
|
|
987
1002
|
const fbStack = System.instance.frameBufferStack;
|
|
988
1003
|
const fbo = this.getBackgroundFbo(needComposite);
|
|
989
1004
|
fbStack.execute(fbo, true, this.useMsBuffers, () => {
|
|
990
|
-
System.instance.applyRenderState(this.getRenderState(
|
|
991
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1005
|
+
System.instance.applyRenderState(this.getRenderState(15 /* BackgroundMap */));
|
|
1006
|
+
this.target.techniques.execute(this.target, cmds, 15 /* BackgroundMap */);
|
|
992
1007
|
});
|
|
993
1008
|
}
|
|
994
1009
|
renderSkyBox(commands, needComposite) {
|
|
995
|
-
const cmds = commands.getCommands(
|
|
1010
|
+
const cmds = commands.getCommands(14 /* SkyBox */);
|
|
996
1011
|
if (0 === cmds.length) {
|
|
997
1012
|
return;
|
|
998
1013
|
}
|
|
999
1014
|
const fbStack = System.instance.frameBufferStack;
|
|
1000
1015
|
const fbo = this.getBackgroundFbo(needComposite);
|
|
1001
1016
|
fbStack.execute(fbo, true, this.useMsBuffers, () => {
|
|
1002
|
-
System.instance.applyRenderState(this.getRenderState(
|
|
1003
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1017
|
+
System.instance.applyRenderState(this.getRenderState(14 /* SkyBox */));
|
|
1018
|
+
this.target.techniques.execute(this.target, cmds, 14 /* SkyBox */);
|
|
1004
1019
|
});
|
|
1005
1020
|
}
|
|
1006
1021
|
renderBackground(commands, needComposite) {
|
|
@@ -1122,7 +1137,7 @@ class Compositor extends SceneCompositor {
|
|
|
1122
1137
|
System.instance.frameBufferStack.execute(this._frameBuffers.stencilSet, false, this.useMsBuffers, () => {
|
|
1123
1138
|
this.target.pushState(this._vcBranchState);
|
|
1124
1139
|
System.instance.applyRenderState(this._vcSetStencilRenderState);
|
|
1125
|
-
this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex,
|
|
1140
|
+
this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex, 6 /* Classification */);
|
|
1126
1141
|
this.target.popBranch();
|
|
1127
1142
|
});
|
|
1128
1143
|
// Process the stencil for the pick data.
|
|
@@ -1130,8 +1145,8 @@ class Compositor extends SceneCompositor {
|
|
|
1130
1145
|
}
|
|
1131
1146
|
renderVolumeClassification(commands, compositeFlags, renderForReadPixels) {
|
|
1132
1147
|
// Sometimes we need to render the classifier stencil volumes one at a time, if so draw them from the cmdsByIndex list
|
|
1133
|
-
const cmds = commands.getCommands(
|
|
1134
|
-
const cmdsByIndex = commands.getCommands(
|
|
1148
|
+
const cmds = commands.getCommands(6 /* Classification */);
|
|
1149
|
+
const cmdsByIndex = commands.getCommands(17 /* ClassificationByIndex */);
|
|
1135
1150
|
let numCmdsPerClassifier = 0;
|
|
1136
1151
|
for (const cmd of cmdsByIndex) { // Figure out how many commands there are per index/primitive
|
|
1137
1152
|
numCmdsPerClassifier++;
|
|
@@ -1140,7 +1155,7 @@ class Compositor extends SceneCompositor {
|
|
|
1140
1155
|
break;
|
|
1141
1156
|
}
|
|
1142
1157
|
}
|
|
1143
|
-
const cmdsForVC = commands.getCommands(
|
|
1158
|
+
const cmdsForVC = commands.getCommands(20 /* VolumeClassifiedRealityData */);
|
|
1144
1159
|
if (!this.target.activeVolumeClassifierProps || (renderForReadPixels && 0 === cmds.length) || 0 === cmdsForVC.length)
|
|
1145
1160
|
return;
|
|
1146
1161
|
let outsideFlags = this.target.activeVolumeClassifierProps.flags.outside;
|
|
@@ -1160,13 +1175,13 @@ class Compositor extends SceneCompositor {
|
|
|
1160
1175
|
if (this._debugStencil > 0) {
|
|
1161
1176
|
fbStack.execute(fboColorAndZ, true, this.useMsBuffers, () => {
|
|
1162
1177
|
if (1 === this._debugStencil) {
|
|
1163
|
-
System.instance.applyRenderState(this.getRenderState(
|
|
1164
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1178
|
+
System.instance.applyRenderState(this.getRenderState(5 /* OpaqueGeneral */));
|
|
1179
|
+
this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
|
|
1165
1180
|
}
|
|
1166
1181
|
else {
|
|
1167
1182
|
this.target.pushState(this._vcBranchState);
|
|
1168
1183
|
System.instance.applyRenderState(this._vcDebugRenderState);
|
|
1169
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1184
|
+
this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
|
|
1170
1185
|
this.target.popBranch();
|
|
1171
1186
|
}
|
|
1172
1187
|
});
|
|
@@ -1231,7 +1246,7 @@ class Compositor extends SceneCompositor {
|
|
|
1231
1246
|
System.instance.frameBufferStack.execute(this._frameBuffers.altZOnly, false, this.useMsBuffers, () => {
|
|
1232
1247
|
this.target.pushState(this._vcBranchState);
|
|
1233
1248
|
System.instance.applyRenderState(this._vcSetStencilRenderState);
|
|
1234
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1249
|
+
this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
|
|
1235
1250
|
// After we create the stencil we need to clear the Z for the next step (so also must turn on z writing temporarily).
|
|
1236
1251
|
this._vcSetStencilRenderState.flags.depthMask = true;
|
|
1237
1252
|
System.instance.applyRenderState(this._vcSetStencilRenderState);
|
|
@@ -1270,7 +1285,7 @@ class Compositor extends SceneCompositor {
|
|
|
1270
1285
|
fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {
|
|
1271
1286
|
this.target.pushState(this._vcBranchState);
|
|
1272
1287
|
System.instance.applyRenderState(this._vcSetStencilRenderState);
|
|
1273
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1288
|
+
this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
|
|
1274
1289
|
this.target.popBranch();
|
|
1275
1290
|
System.instance.bindTexture2d(TextureUnit.Two, undefined);
|
|
1276
1291
|
System.instance.bindTexture2d(TextureUnit.Five, undefined);
|
|
@@ -1326,7 +1341,7 @@ class Compositor extends SceneCompositor {
|
|
|
1326
1341
|
fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {
|
|
1327
1342
|
this.target.pushState(this._vcBranchState);
|
|
1328
1343
|
System.instance.applyRenderState(this._vcSetStencilRenderState);
|
|
1329
|
-
this.target.techniques.execute(this.target, nxtCmds,
|
|
1344
|
+
this.target.techniques.execute(this.target, nxtCmds, 6 /* Classification */);
|
|
1330
1345
|
this.target.popBranch();
|
|
1331
1346
|
});
|
|
1332
1347
|
// Process the stencil. Just render the volume normally (us opaque pass), but use blending to modify the source alpha that gets written to the blend texture.
|
|
@@ -1337,7 +1352,7 @@ class Compositor extends SceneCompositor {
|
|
|
1337
1352
|
this._vcColorRenderState.flags.cull = true;
|
|
1338
1353
|
System.instance.applyRenderState(this._vcColorRenderState);
|
|
1339
1354
|
this.target.activeVolumeClassifierTexture = undefined; // make sure this texture is undefined so we do not use the planar classification shader
|
|
1340
|
-
this.target.techniques.execute(this.target, nxtCmds,
|
|
1355
|
+
this.target.techniques.execute(this.target, nxtCmds, 5 /* OpaqueGeneral */);
|
|
1341
1356
|
this._vcColorRenderState.flags.cull = false;
|
|
1342
1357
|
this.target.popBranch();
|
|
1343
1358
|
});
|
|
@@ -1363,7 +1378,7 @@ class Compositor extends SceneCompositor {
|
|
|
1363
1378
|
System.instance.context.clearDepth(1.0);
|
|
1364
1379
|
System.instance.context.clear(GL.BufferBit.Depth);
|
|
1365
1380
|
this.target.activeVolumeClassifierTexture = this._geom.volClassCopyZ.texture;
|
|
1366
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1381
|
+
this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
|
|
1367
1382
|
this.target.activeVolumeClassifierTexture = undefined;
|
|
1368
1383
|
this._vcColorRenderState.flags.depthTest = false;
|
|
1369
1384
|
this._vcColorRenderState.flags.depthMask = false;
|
|
@@ -1380,8 +1395,8 @@ class Compositor extends SceneCompositor {
|
|
|
1380
1395
|
// and this stage can be skipped. In order for this to work the list of commands needs to get reduced to only the ones which draw hilited volumes.
|
|
1381
1396
|
// We cannot use the hillite shader to draw them since it doesn't handle logZ properly (it doesn't need to since it is only used elsewhere when Z write is turned off)
|
|
1382
1397
|
// and we don't really want another whole set of hilite shaders just for this.
|
|
1383
|
-
const cmdsSelected = extractHilitedVolumeClassifierCommands(this.target.hilites, commands.getCommands(
|
|
1384
|
-
commands.replaceCommands(
|
|
1398
|
+
const cmdsSelected = extractHilitedVolumeClassifierCommands(this.target.hilites, commands.getCommands(16 /* HiliteClassification */));
|
|
1399
|
+
commands.replaceCommands(16 /* HiliteClassification */, cmdsSelected); // replace the hilite command list for use in hilite pass as well.
|
|
1385
1400
|
// if (cmdsSelected.length > 0 && insideFlags !== this.target.activeVolumeClassifierProps!.flags.selected) {
|
|
1386
1401
|
if (!doColorByElement && cmdsSelected.length > 0 && insideFlags !== SpatialClassifierInsideDisplay.Hilite) { // assume selected ones are always hilited
|
|
1387
1402
|
// Set the stencil using just the hilited volume classifiers.
|
|
@@ -1393,7 +1408,7 @@ class Compositor extends SceneCompositor {
|
|
|
1393
1408
|
System.instance.context.clearStencil(0);
|
|
1394
1409
|
System.instance.context.clear(GL.BufferBit.Stencil);
|
|
1395
1410
|
}
|
|
1396
|
-
this.target.techniques.execute(this.target, cmdsSelected,
|
|
1411
|
+
this.target.techniques.execute(this.target, cmdsSelected, 6 /* Classification */);
|
|
1397
1412
|
this.target.popBranch();
|
|
1398
1413
|
});
|
|
1399
1414
|
if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)
|
|
@@ -1432,7 +1447,7 @@ class Compositor extends SceneCompositor {
|
|
|
1432
1447
|
fbStack.execute(this._frameBuffers.stencilSet, false, this.useMsBuffers, () => {
|
|
1433
1448
|
this.target.pushState(this._vcBranchState);
|
|
1434
1449
|
System.instance.applyRenderState(this._vcSetStencilRenderState);
|
|
1435
|
-
this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds,
|
|
1450
|
+
this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds, 5 /* OpaqueGeneral */);
|
|
1436
1451
|
this.target.popBranch();
|
|
1437
1452
|
});
|
|
1438
1453
|
// Process the stencil to flash the contents.
|
|
@@ -1454,30 +1469,30 @@ class Compositor extends SceneCompositor {
|
|
|
1454
1469
|
system.context.clearColor(0, 0, 0, 0);
|
|
1455
1470
|
system.context.clear(GL.BufferBit.Color);
|
|
1456
1471
|
// Draw the normal hilite geometry.
|
|
1457
|
-
this.drawPass(commands,
|
|
1472
|
+
this.drawPass(commands, 10 /* Hilite */);
|
|
1458
1473
|
});
|
|
1459
1474
|
// Process planar classifiers
|
|
1460
|
-
const planarClassifierCmds = commands.getCommands(
|
|
1475
|
+
const planarClassifierCmds = commands.getCommands(18 /* HilitePlanarClassification */);
|
|
1461
1476
|
if (0 !== planarClassifierCmds.length) {
|
|
1462
1477
|
system.frameBufferStack.execute(this._frameBuffers.hiliteUsingStencil, true, false, () => {
|
|
1463
1478
|
system.applyRenderState(this._opaqueRenderState);
|
|
1464
|
-
this.target.techniques.execute(this.target, planarClassifierCmds,
|
|
1479
|
+
this.target.techniques.execute(this.target, planarClassifierCmds, 18 /* HilitePlanarClassification */);
|
|
1465
1480
|
});
|
|
1466
1481
|
}
|
|
1467
1482
|
// Process the volume classifiers.
|
|
1468
|
-
const vcHiliteCmds = commands.getCommands(
|
|
1483
|
+
const vcHiliteCmds = commands.getCommands(16 /* HiliteClassification */);
|
|
1469
1484
|
if (0 !== vcHiliteCmds.length && undefined !== this._vcBranchState) {
|
|
1470
1485
|
// Set the stencil for the given classifier stencil volume.
|
|
1471
1486
|
system.frameBufferStack.execute(this._frameBuffers.stencilSet, false, false, () => {
|
|
1472
1487
|
this.target.pushState(this._vcBranchState);
|
|
1473
1488
|
system.applyRenderState(this._vcSetStencilRenderState);
|
|
1474
|
-
this.target.techniques.execute(this.target, vcHiliteCmds,
|
|
1489
|
+
this.target.techniques.execute(this.target, vcHiliteCmds, 10 /* Hilite */);
|
|
1475
1490
|
this.target.popBranch();
|
|
1476
1491
|
});
|
|
1477
1492
|
// Process the stencil for the hilite data.
|
|
1478
1493
|
system.frameBufferStack.execute(this._frameBuffers.hiliteUsingStencil, true, false, () => {
|
|
1479
1494
|
system.applyRenderState(this._vcPickDataRenderState);
|
|
1480
|
-
this.target.techniques.execute(this.target, vcHiliteCmds,
|
|
1495
|
+
this.target.techniques.execute(this.target, vcHiliteCmds, 10 /* Hilite */);
|
|
1481
1496
|
});
|
|
1482
1497
|
}
|
|
1483
1498
|
}
|
|
@@ -1489,27 +1504,29 @@ class Compositor extends SceneCompositor {
|
|
|
1489
1504
|
getRenderState(pass) {
|
|
1490
1505
|
switch (pass) {
|
|
1491
1506
|
case 1 /* OpaqueLayers */:
|
|
1492
|
-
case
|
|
1493
|
-
case
|
|
1507
|
+
case 7 /* TranslucentLayers */:
|
|
1508
|
+
case 11 /* OverlayLayers */:
|
|
1494
1509
|
// NB: During pick, we don't want blending - it will mess up our pick buffer data and we don't care about the color data.
|
|
1495
1510
|
// During normal draw, we don't use the pick buffers for anything, and we want color blending.
|
|
1496
1511
|
// (We get away with this because surfaces always draw before their edges, and we're not depth-testing, so edges always draw atop surfaces without pick buffer testing).
|
|
1497
1512
|
this._layerRenderState.flags.blend = !this.target.isReadPixelsInProgress;
|
|
1498
1513
|
// Transparent non-overlay Layers are drawn between opaque and translucent passes. Test depth, don't write it, so that they blend with opaque.
|
|
1499
|
-
this._layerRenderState.flags.depthMask =
|
|
1500
|
-
this._layerRenderState.depthFunc = (
|
|
1514
|
+
this._layerRenderState.flags.depthMask = 7 /* TranslucentLayers */ !== pass;
|
|
1515
|
+
this._layerRenderState.depthFunc = (7 /* TranslucentLayers */ === pass) ? GL.DepthFunc.Default : GL.DepthFunc.Always;
|
|
1501
1516
|
return this._layerRenderState;
|
|
1502
1517
|
case 2 /* OpaqueLinear */:
|
|
1503
1518
|
case 3 /* OpaquePlanar */:
|
|
1504
|
-
case
|
|
1505
|
-
case
|
|
1519
|
+
case 5 /* OpaqueGeneral */:
|
|
1520
|
+
case 18 /* HilitePlanarClassification */:
|
|
1506
1521
|
return this._opaqueRenderState;
|
|
1507
|
-
case
|
|
1522
|
+
case 8 /* Translucent */:
|
|
1508
1523
|
return this._translucentRenderState;
|
|
1509
|
-
case
|
|
1524
|
+
case 10 /* Hilite */:
|
|
1510
1525
|
return this._hiliteRenderState;
|
|
1511
|
-
case
|
|
1526
|
+
case 15 /* BackgroundMap */:
|
|
1512
1527
|
return this._backgroundMapRenderState;
|
|
1528
|
+
case 4 /* PointClouds */:
|
|
1529
|
+
return this._pointCloudRenderState;
|
|
1513
1530
|
default:
|
|
1514
1531
|
return this._noDepthMaskRenderState;
|
|
1515
1532
|
}
|
|
@@ -1651,7 +1668,8 @@ class MRTFrameBuffers extends FrameBuffers {
|
|
|
1651
1668
|
&& undefined === this.idsAndZ
|
|
1652
1669
|
&& undefined === this.idsAndAltZ
|
|
1653
1670
|
&& undefined === this.idsAndZComposite
|
|
1654
|
-
&& undefined === this.idsAndAltZComposite
|
|
1671
|
+
&& undefined === this.idsAndAltZComposite
|
|
1672
|
+
&& undefined === this.edlDrawCol;
|
|
1655
1673
|
}
|
|
1656
1674
|
dispose() {
|
|
1657
1675
|
super.dispose();
|
|
@@ -1666,6 +1684,7 @@ class MRTFrameBuffers extends FrameBuffers {
|
|
|
1666
1684
|
this.idsAndAltZ = dispose(this.idsAndAltZ);
|
|
1667
1685
|
this.idsAndZComposite = dispose(this.idsAndZComposite);
|
|
1668
1686
|
this.idsAndAltZComposite = dispose(this.idsAndAltZComposite);
|
|
1687
|
+
this.edlDrawCol = dispose(this.edlDrawCol);
|
|
1669
1688
|
}
|
|
1670
1689
|
}
|
|
1671
1690
|
class MRTGeometry extends Geometry {
|
|
@@ -1745,6 +1764,101 @@ class MRTCompositor extends Compositor {
|
|
|
1745
1764
|
system.context.clear(GL.BufferBit.Depth);
|
|
1746
1765
|
});
|
|
1747
1766
|
}
|
|
1767
|
+
renderPointClouds(commands, compositeFlags) {
|
|
1768
|
+
var _a, _b;
|
|
1769
|
+
const is3d = 2 /* Perspective */ === this.target.uniforms.frustum.type;
|
|
1770
|
+
// separate individual point clouds and get their point cloud settings
|
|
1771
|
+
const pointClouds = [];
|
|
1772
|
+
let pcs;
|
|
1773
|
+
const cmds = commands.getCommands(4 /* PointClouds */);
|
|
1774
|
+
let curPC;
|
|
1775
|
+
let pushDepth = 0;
|
|
1776
|
+
for (const cmd of cmds) {
|
|
1777
|
+
if ("pushBranch" === cmd.opcode) { // should be first command
|
|
1778
|
+
++pushDepth;
|
|
1779
|
+
if (pushDepth === 1) {
|
|
1780
|
+
pcs = (_a = cmd.branch.branch.realityModelDisplaySettings) === null || _a === void 0 ? void 0 : _a.pointCloud;
|
|
1781
|
+
this.target.uniforms.realityModel.pointCloud.updateRange(cmd.branch.branch.realityModelRange, this.target, cmd.branch.localToWorldTransform, is3d);
|
|
1782
|
+
pointClouds.push(curPC = { pcs, cmds: [cmd] });
|
|
1783
|
+
}
|
|
1784
|
+
else {
|
|
1785
|
+
assert(undefined !== curPC);
|
|
1786
|
+
curPC.cmds.push(cmd);
|
|
1787
|
+
}
|
|
1788
|
+
}
|
|
1789
|
+
else {
|
|
1790
|
+
if ("popBranch" === cmd.opcode)
|
|
1791
|
+
--pushDepth;
|
|
1792
|
+
assert(undefined !== curPC);
|
|
1793
|
+
curPC.cmds.push(cmd);
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
const needComposite = 0 /* None */ !== compositeFlags;
|
|
1797
|
+
const fbo = (needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor);
|
|
1798
|
+
const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;
|
|
1799
|
+
const system = System.instance;
|
|
1800
|
+
const fbStack = system.frameBufferStack;
|
|
1801
|
+
this._readPickDataFromPingPong = false;
|
|
1802
|
+
for (const pc of pointClouds) {
|
|
1803
|
+
pcs = pc.pcs;
|
|
1804
|
+
let edlOn = (pcs === null || pcs === void 0 ? void 0 : pcs.edlMode) !== "off" && is3d;
|
|
1805
|
+
if (edlOn) {
|
|
1806
|
+
if (undefined === this._textures.hilite)
|
|
1807
|
+
edlOn = false;
|
|
1808
|
+
else {
|
|
1809
|
+
// create fbo on fly if not present, or has changed (from MS)
|
|
1810
|
+
// ###TODO consider not drawing point clouds to MS buffers, at least if EDL, it isn't worth the overhead.
|
|
1811
|
+
// would have to blit depth before draw, use depth for draw, then run shader to copy depth back to MSAA
|
|
1812
|
+
// at end, wherever color buf changed (test alpha, else discard)
|
|
1813
|
+
// this would also simplify this code considerably
|
|
1814
|
+
let drawColBufs;
|
|
1815
|
+
if (undefined !== this._fbos.edlDrawCol)
|
|
1816
|
+
drawColBufs = this._fbos.edlDrawCol.getColorTargets(useMsBuffers, 0);
|
|
1817
|
+
if (undefined === this._fbos.edlDrawCol || this._textures.hilite !== (drawColBufs === null || drawColBufs === void 0 ? void 0 : drawColBufs.tex) || this._textures.hiliteMsBuff !== drawColBufs.msBuf) {
|
|
1818
|
+
this._fbos.edlDrawCol = dispose(this._fbos.edlDrawCol);
|
|
1819
|
+
const filters = [GL.MultiSampling.Filter.Linear];
|
|
1820
|
+
if (useMsBuffers)
|
|
1821
|
+
this._fbos.edlDrawCol = FrameBuffer.create([this._textures.hilite], this._depth, useMsBuffers && this._textures.hiliteMsBuff ? [this._textures.hiliteMsBuff] : undefined, filters, this._depthMS);
|
|
1822
|
+
else
|
|
1823
|
+
this._fbos.edlDrawCol = FrameBuffer.create([this._textures.hilite], this._depth);
|
|
1824
|
+
}
|
|
1825
|
+
if (undefined === this._fbos.edlDrawCol)
|
|
1826
|
+
edlOn = false;
|
|
1827
|
+
else { // can draw EDL
|
|
1828
|
+
// first draw pointcloud to borrowed hilite texture(MS) and regular depth(MS) buffers
|
|
1829
|
+
fbStack.execute(this._fbos.edlDrawCol, true, useMsBuffers, () => {
|
|
1830
|
+
system.context.clearColor(0, 0, 0, 0);
|
|
1831
|
+
system.context.clear(GL.BufferBit.Color);
|
|
1832
|
+
system.applyRenderState(this.getRenderState(4 /* PointClouds */));
|
|
1833
|
+
this.target.techniques.execute(this.target, pc.cmds, 4 /* PointClouds */);
|
|
1834
|
+
});
|
|
1835
|
+
if (useMsBuffers)
|
|
1836
|
+
this._fbos.edlDrawCol.blitMsBuffersToTextures(true, 0); // need to read the non-MS depth and hilite buffers
|
|
1837
|
+
// next process buffers to generate EDL (depth buffer is passed during init)
|
|
1838
|
+
this.target.beginPerfMetricRecord("Calc EDL"); // ### todo keep? (probably)
|
|
1839
|
+
const sts = this.eyeDomeLighting.draw({
|
|
1840
|
+
edlMode: ((_b = pc.pcs) === null || _b === void 0 ? void 0 : _b.edlMode) === "full" ? EDLMode.Full : EDLMode.On,
|
|
1841
|
+
edlFilter: !!(pcs === null || pcs === void 0 ? void 0 : pcs.edlFilter),
|
|
1842
|
+
useMsBuffers,
|
|
1843
|
+
inputTex: this._textures.hilite,
|
|
1844
|
+
curFbo: fbo,
|
|
1845
|
+
});
|
|
1846
|
+
this.target.endPerfMetricRecord();
|
|
1847
|
+
if (!sts) {
|
|
1848
|
+
edlOn = false;
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
if (!edlOn) {
|
|
1854
|
+
// draw the regular way
|
|
1855
|
+
fbStack.execute(fbo, true, useMsBuffers, () => {
|
|
1856
|
+
system.applyRenderState(this.getRenderState(4 /* PointClouds */));
|
|
1857
|
+
this.target.techniques.execute(this.target, pc.cmds, 4 /* PointClouds */);
|
|
1858
|
+
});
|
|
1859
|
+
}
|
|
1860
|
+
}
|
|
1861
|
+
}
|
|
1748
1862
|
renderOpaque(commands, compositeFlags, renderForReadPixels) {
|
|
1749
1863
|
if (0 /* None */ !== (compositeFlags & 4 /* AmbientOcclusion */) && !renderForReadPixels) {
|
|
1750
1864
|
this.renderOpaqueAO(commands);
|
|
@@ -1760,7 +1874,8 @@ class MRTCompositor extends Compositor {
|
|
|
1760
1874
|
this.drawPass(commands, 2 /* OpaqueLinear */);
|
|
1761
1875
|
this.drawPass(commands, 3 /* OpaquePlanar */, true);
|
|
1762
1876
|
if (renderForReadPixels) {
|
|
1763
|
-
this.drawPass(commands, 4 /*
|
|
1877
|
+
this.drawPass(commands, 4 /* PointClouds */, true); // don't need EDL for this
|
|
1878
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, true);
|
|
1764
1879
|
if (useMsBuffers)
|
|
1765
1880
|
fbo.blitMsBuffersToTextures(true);
|
|
1766
1881
|
}
|
|
@@ -1770,16 +1885,17 @@ class MRTCompositor extends Compositor {
|
|
|
1770
1885
|
if (!renderForReadPixels) {
|
|
1771
1886
|
fbo = (needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor);
|
|
1772
1887
|
fbStack.execute(fbo, true, useMsBuffers, () => {
|
|
1773
|
-
this.drawPass(commands,
|
|
1774
|
-
this.drawPass(commands,
|
|
1888
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false);
|
|
1889
|
+
this.drawPass(commands, 9 /* HiddenEdge */, false);
|
|
1775
1890
|
});
|
|
1891
|
+
// assume we are done with MS at this point, so update the non-MS buffers
|
|
1776
1892
|
if (useMsBuffers)
|
|
1777
1893
|
fbo.blitMsBuffersToTextures(needComposite);
|
|
1778
1894
|
}
|
|
1779
1895
|
}
|
|
1780
1896
|
renderOpaqueAO(commands) {
|
|
1781
1897
|
const fbStack = System.instance.frameBufferStack;
|
|
1782
|
-
const haveHiddenEdges = 0 !== commands.getCommands(
|
|
1898
|
+
const haveHiddenEdges = 0 !== commands.getCommands(9 /* HiddenEdge */).length;
|
|
1783
1899
|
// Output the linear, planar, and pickable surfaces to color and pick data buffers.
|
|
1784
1900
|
let fbo = this._fbos.opaqueAndCompositeAll;
|
|
1785
1901
|
const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;
|
|
@@ -1788,7 +1904,7 @@ class MRTCompositor extends Compositor {
|
|
|
1788
1904
|
this.drawPass(commands, 2 /* OpaqueLinear */);
|
|
1789
1905
|
this.drawPass(commands, 3 /* OpaquePlanar */, true);
|
|
1790
1906
|
this._primitiveDrawState = PrimitiveDrawState.Pickable;
|
|
1791
|
-
this.drawPass(commands,
|
|
1907
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, true);
|
|
1792
1908
|
this._primitiveDrawState = PrimitiveDrawState.Both;
|
|
1793
1909
|
if (useMsBuffers)
|
|
1794
1910
|
fbo.blitMsBuffersToTextures(true);
|
|
@@ -1798,9 +1914,9 @@ class MRTCompositor extends Compositor {
|
|
|
1798
1914
|
fbo = this._fbos.opaqueAndCompositeColor;
|
|
1799
1915
|
fbStack.execute(fbo, true, useMsBuffers, () => {
|
|
1800
1916
|
this._primitiveDrawState = PrimitiveDrawState.NonPickable;
|
|
1801
|
-
this.drawPass(commands,
|
|
1917
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false);
|
|
1802
1918
|
if (haveHiddenEdges)
|
|
1803
|
-
this.drawPass(commands,
|
|
1919
|
+
this.drawPass(commands, 9 /* HiddenEdge */, false);
|
|
1804
1920
|
this._primitiveDrawState = PrimitiveDrawState.Both;
|
|
1805
1921
|
});
|
|
1806
1922
|
if (useMsBuffers)
|
|
@@ -1824,7 +1940,7 @@ class MRTCompositor extends Compositor {
|
|
|
1824
1940
|
fbo = this._fbos.opaqueAndCompositeAllHidden;
|
|
1825
1941
|
this._primitiveDrawState = PrimitiveDrawState.Pickable;
|
|
1826
1942
|
fbStack.execute(fbo, true, useMsBuffers, () => {
|
|
1827
|
-
this.drawPass(commands,
|
|
1943
|
+
this.drawPass(commands, 9 /* HiddenEdge */, false);
|
|
1828
1944
|
});
|
|
1829
1945
|
this._primitiveDrawState = PrimitiveDrawState.Both;
|
|
1830
1946
|
if (useMsBuffers) {
|
|
@@ -1854,13 +1970,13 @@ class MRTCompositor extends Compositor {
|
|
|
1854
1970
|
if (renderForReadPixels || needAO) {
|
|
1855
1971
|
this._readPickDataFromPingPong = true;
|
|
1856
1972
|
fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeAll : this._fbos.opaqueAll, true, this.useMsBuffers, () => {
|
|
1857
|
-
this.drawPass(commands,
|
|
1973
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, true, 20 /* VolumeClassifiedRealityData */);
|
|
1858
1974
|
});
|
|
1859
1975
|
}
|
|
1860
1976
|
else {
|
|
1861
1977
|
this._readPickDataFromPingPong = false;
|
|
1862
1978
|
fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor, true, this.useMsBuffers, () => {
|
|
1863
|
-
this.drawPass(commands,
|
|
1979
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false, 20 /* VolumeClassifiedRealityData */);
|
|
1864
1980
|
});
|
|
1865
1981
|
}
|
|
1866
1982
|
}
|
|
@@ -1870,7 +1986,7 @@ class MRTCompositor extends Compositor {
|
|
|
1870
1986
|
: (needComposite ? this._fbos.idsAndAltZComposite : this._fbos.idsAndAltZ));
|
|
1871
1987
|
System.instance.frameBufferStack.execute(fbo, true, false, () => {
|
|
1872
1988
|
System.instance.applyRenderState(state);
|
|
1873
|
-
this.target.techniques.execute(this.target, cmds,
|
|
1989
|
+
this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
|
|
1874
1990
|
});
|
|
1875
1991
|
this._readPickDataFromPingPong = false;
|
|
1876
1992
|
}
|
|
@@ -1883,7 +1999,7 @@ class MRTCompositor extends Compositor {
|
|
|
1883
1999
|
}
|
|
1884
2000
|
renderTranslucent(commands) {
|
|
1885
2001
|
System.instance.frameBufferStack.execute(this._fbos.translucent, true, false, () => {
|
|
1886
|
-
this.drawPass(commands,
|
|
2002
|
+
this.drawPass(commands, 8 /* Translucent */);
|
|
1887
2003
|
});
|
|
1888
2004
|
}
|
|
1889
2005
|
pingPong() {
|
|
@@ -1979,7 +2095,7 @@ class MPCompositor extends Compositor {
|
|
|
1979
2095
|
switch (pass) {
|
|
1980
2096
|
case 2 /* OpaqueLinear */:
|
|
1981
2097
|
case 3 /* OpaquePlanar */:
|
|
1982
|
-
case
|
|
2098
|
+
case 5 /* OpaqueGeneral */:
|
|
1983
2099
|
return this._drawMultiPassDepth ? this._opaqueRenderState : this._opaqueRenderStateNoZWt;
|
|
1984
2100
|
}
|
|
1985
2101
|
return super.getRenderState(pass);
|
|
@@ -2004,6 +2120,7 @@ class MPCompositor extends Compositor {
|
|
|
2004
2120
|
}
|
|
2005
2121
|
clearHiddenPick() {
|
|
2006
2122
|
}
|
|
2123
|
+
renderPointClouds(_commands, _compositeFlags) { }
|
|
2007
2124
|
renderOpaque(commands, compositeFlags, renderForReadPixels) {
|
|
2008
2125
|
if (0 /* None */ !== (compositeFlags & 4 /* AmbientOcclusion */) && !renderForReadPixels) {
|
|
2009
2126
|
this.renderOpaqueAO(commands);
|
|
@@ -2017,36 +2134,36 @@ class MPCompositor extends Compositor {
|
|
|
2017
2134
|
this.drawOpaquePass(colorFbo, commands, 2 /* OpaqueLinear */, false);
|
|
2018
2135
|
this.drawOpaquePass(colorFbo, commands, 3 /* OpaquePlanar */, true);
|
|
2019
2136
|
if (renderForReadPixels || needAO)
|
|
2020
|
-
this.drawOpaquePass(colorFbo, commands,
|
|
2137
|
+
this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true);
|
|
2021
2138
|
this._readPickDataFromPingPong = false;
|
|
2022
2139
|
// The general pass (and following) will not bother to write to pick buffers and so can read from the actual pick buffers.
|
|
2023
2140
|
if (!renderForReadPixels) {
|
|
2024
2141
|
System.instance.frameBufferStack.execute(colorFbo, true, false, () => {
|
|
2025
2142
|
this._drawMultiPassDepth = true; // for OpaqueGeneral
|
|
2026
|
-
this.drawPass(commands,
|
|
2027
|
-
this.drawPass(commands,
|
|
2143
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false);
|
|
2144
|
+
this.drawPass(commands, 9 /* HiddenEdge */, false);
|
|
2028
2145
|
});
|
|
2029
2146
|
}
|
|
2030
2147
|
}
|
|
2031
2148
|
renderOpaqueAO(commands) {
|
|
2032
2149
|
const fbStack = System.instance.frameBufferStack;
|
|
2033
|
-
const haveHiddenEdges = 0 !== commands.getCommands(
|
|
2150
|
+
const haveHiddenEdges = 0 !== commands.getCommands(9 /* HiddenEdge */).length;
|
|
2034
2151
|
// Output the linear, planar, and pickable surfaces to color and pick data buffers.
|
|
2035
2152
|
this._readPickDataFromPingPong = true;
|
|
2036
2153
|
const colorFbo = this._fbos.opaqueAndCompositeColor;
|
|
2037
2154
|
this.drawOpaquePass(colorFbo, commands, 2 /* OpaqueLinear */, false);
|
|
2038
2155
|
this.drawOpaquePass(colorFbo, commands, 3 /* OpaquePlanar */, true);
|
|
2039
2156
|
this._primitiveDrawState = PrimitiveDrawState.Pickable;
|
|
2040
|
-
this.drawOpaquePass(colorFbo, commands,
|
|
2157
|
+
this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true);
|
|
2041
2158
|
this._primitiveDrawState = PrimitiveDrawState.Both;
|
|
2042
2159
|
this._readPickDataFromPingPong = false;
|
|
2043
2160
|
// Output the non-pickable surfaces and hidden edges to just the color buffer.
|
|
2044
2161
|
fbStack.execute(colorFbo, true, false, () => {
|
|
2045
2162
|
this._drawMultiPassDepth = true; // for OpaqueGeneral
|
|
2046
2163
|
this._primitiveDrawState = PrimitiveDrawState.NonPickable;
|
|
2047
|
-
this.drawPass(commands,
|
|
2164
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false);
|
|
2048
2165
|
if (haveHiddenEdges)
|
|
2049
|
-
this.drawPass(commands,
|
|
2166
|
+
this.drawPass(commands, 9 /* HiddenEdge */, false);
|
|
2050
2167
|
this._primitiveDrawState = PrimitiveDrawState.Both;
|
|
2051
2168
|
});
|
|
2052
2169
|
if (haveHiddenEdges) {
|
|
@@ -2057,10 +2174,10 @@ class MPCompositor extends Compositor {
|
|
|
2057
2174
|
this._primitiveDrawState = PrimitiveDrawState.Pickable;
|
|
2058
2175
|
// Since we only need to draw color and depthAndOrder instead of calling drawOpaquePass just do what we need here.
|
|
2059
2176
|
this._drawMultiPassDepth = true;
|
|
2060
|
-
fbStack.execute(colorFbo, true, false, () => this.drawPass(commands,
|
|
2177
|
+
fbStack.execute(colorFbo, true, false, () => this.drawPass(commands, 9 /* HiddenEdge */, false));
|
|
2061
2178
|
this._drawMultiPassDepth = false;
|
|
2062
2179
|
this._currentRenderTargetIndex = 2;
|
|
2063
|
-
fbStack.execute(this._fbos.revealage, true, false, () => this.drawPass(commands,
|
|
2180
|
+
fbStack.execute(this._fbos.revealage, true, false, () => this.drawPass(commands, 9 /* HiddenEdge */, false));
|
|
2064
2181
|
this._currentRenderTargetIndex = 0;
|
|
2065
2182
|
this._readPickDataFromPingPong = false;
|
|
2066
2183
|
this._primitiveDrawState = PrimitiveDrawState.Both;
|
|
@@ -2081,7 +2198,7 @@ class MPCompositor extends Compositor {
|
|
|
2081
2198
|
const colorFbo = needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor;
|
|
2082
2199
|
if (renderForReadPixels || needAO) {
|
|
2083
2200
|
this._readPickDataFromPingPong = true;
|
|
2084
|
-
this.drawOpaquePass(colorFbo, commands,
|
|
2201
|
+
this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true, 20 /* VolumeClassifiedRealityData */);
|
|
2085
2202
|
if (needAO)
|
|
2086
2203
|
this.renderAmbientOcclusion();
|
|
2087
2204
|
}
|
|
@@ -2089,7 +2206,7 @@ class MPCompositor extends Compositor {
|
|
|
2089
2206
|
this._readPickDataFromPingPong = false;
|
|
2090
2207
|
System.instance.frameBufferStack.execute(colorFbo, true, false, () => {
|
|
2091
2208
|
this._drawMultiPassDepth = true; // for OpaqueGeneral
|
|
2092
|
-
this.drawPass(commands,
|
|
2209
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false, 20 /* VolumeClassifiedRealityData */);
|
|
2093
2210
|
});
|
|
2094
2211
|
}
|
|
2095
2212
|
}
|
|
@@ -2100,7 +2217,7 @@ class MPCompositor extends Compositor {
|
|
|
2100
2217
|
const fbo = (renderForIntersectingVolumes ? this._fbos.featureIdWithDepth : this._fbos.featureIdWithDepthAltZ);
|
|
2101
2218
|
System.instance.frameBufferStack.execute(fbo, true, false, () => {
|
|
2102
2219
|
System.instance.applyRenderState(state);
|
|
2103
|
-
this.target.techniques.execute(this.target, cmds,
|
|
2220
|
+
this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
|
|
2104
2221
|
});
|
|
2105
2222
|
this._currentRenderTargetIndex = 0;
|
|
2106
2223
|
this._readPickDataFromPingPong = false;
|
|
@@ -2131,11 +2248,11 @@ class MPCompositor extends Compositor {
|
|
|
2131
2248
|
}
|
|
2132
2249
|
renderTranslucent(commands) {
|
|
2133
2250
|
System.instance.frameBufferStack.execute(this._fbos.accumulation, true, false, () => {
|
|
2134
|
-
this.drawPass(commands,
|
|
2251
|
+
this.drawPass(commands, 8 /* Translucent */);
|
|
2135
2252
|
});
|
|
2136
2253
|
this._currentRenderTargetIndex = 1;
|
|
2137
2254
|
System.instance.frameBufferStack.execute(this._fbos.revealage, true, false, () => {
|
|
2138
|
-
this.drawPass(commands,
|
|
2255
|
+
this.drawPass(commands, 8 /* Translucent */);
|
|
2139
2256
|
});
|
|
2140
2257
|
this._currentRenderTargetIndex = 0;
|
|
2141
2258
|
}
|