@itwin/core-frontend 4.1.0-dev.35 → 4.1.0-dev.40

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.
Files changed (851) hide show
  1. package/lib/cjs/AccuDraw.js.map +1 -1
  2. package/lib/cjs/AccuSnap.js.map +1 -1
  3. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  5. package/lib/cjs/AuxCoordSys.js.map +1 -1
  6. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  7. package/lib/cjs/BingLocation.js.map +1 -1
  8. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  9. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  10. package/lib/cjs/CategorySelectorState.js.map +1 -1
  11. package/lib/cjs/ChangeFlags.js.map +1 -1
  12. package/lib/cjs/CheckpointConnection.js.map +1 -1
  13. package/lib/cjs/CoordSystem.js.map +1 -1
  14. package/lib/cjs/DecorationsCache.js.map +1 -1
  15. package/lib/cjs/DevTools.js.map +1 -1
  16. package/lib/cjs/DisplayStyleState.js.map +1 -1
  17. package/lib/cjs/DrawingViewState.js +5 -5
  18. package/lib/cjs/DrawingViewState.js.map +1 -1
  19. package/lib/cjs/ElementLocateManager.js.map +1 -1
  20. package/lib/cjs/EmphasizeElements.js.map +1 -1
  21. package/lib/cjs/EntityState.js.map +1 -1
  22. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  23. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  24. package/lib/cjs/FlashSettings.js.map +1 -1
  25. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  26. package/lib/cjs/Frustum2d.js.map +1 -1
  27. package/lib/cjs/FrustumAnimator.js.map +1 -1
  28. package/lib/cjs/FuzzySearch.js.map +1 -1
  29. package/lib/cjs/GeoServices.js.map +1 -1
  30. package/lib/cjs/GlobeAnimator.js.map +1 -1
  31. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  32. package/lib/cjs/HitDetail.js.map +1 -1
  33. package/lib/cjs/IModelApp.js.map +1 -1
  34. package/lib/cjs/IModelConnection.js +23 -23
  35. package/lib/cjs/IModelConnection.js.map +1 -1
  36. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  37. package/lib/cjs/IModeljs-css.js +133 -133
  38. package/lib/cjs/IModeljs-css.js.map +1 -1
  39. package/lib/cjs/IpcApp.js.map +1 -1
  40. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  42. package/lib/cjs/MarginPercent.js.map +1 -1
  43. package/lib/cjs/Marker.js.map +1 -1
  44. package/lib/cjs/ModelSelectorState.js.map +1 -1
  45. package/lib/cjs/NativeApp.js.map +1 -1
  46. package/lib/cjs/NativeAppLogger.js.map +1 -1
  47. package/lib/cjs/NoRenderApp.js.map +1 -1
  48. package/lib/cjs/NotificationManager.js.map +1 -1
  49. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  50. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  51. package/lib/cjs/RealityDataSource.js.map +1 -1
  52. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  53. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  54. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  55. package/lib/cjs/SelectionSet.js.map +1 -1
  56. package/lib/cjs/SheetViewState.js.map +1 -1
  57. package/lib/cjs/SpatialViewState.js.map +1 -1
  58. package/lib/cjs/Sprites.js.map +1 -1
  59. package/lib/cjs/StandardView.js.map +1 -1
  60. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  61. package/lib/cjs/TentativePoint.js.map +1 -1
  62. package/lib/cjs/Tiles.js.map +1 -1
  63. package/lib/cjs/UserPreferences.js.map +1 -1
  64. package/lib/cjs/ViewAnimation.js.map +1 -1
  65. package/lib/cjs/ViewContext.js.map +1 -1
  66. package/lib/cjs/ViewCreator2d.js.map +1 -1
  67. package/lib/cjs/ViewCreator3d.js.map +1 -1
  68. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  69. package/lib/cjs/ViewManager.js.map +1 -1
  70. package/lib/cjs/ViewPose.js.map +1 -1
  71. package/lib/cjs/ViewState.js.map +1 -1
  72. package/lib/cjs/ViewStatus.js.map +1 -1
  73. package/lib/cjs/ViewingSpace.js.map +1 -1
  74. package/lib/cjs/Viewport.js.map +1 -1
  75. package/lib/cjs/ViewportSync.js.map +1 -1
  76. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
  77. package/lib/cjs/common/ImageUtil.js.map +1 -1
  78. package/lib/cjs/common/ViewRect.js.map +1 -1
  79. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  80. package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
  81. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  82. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  83. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  84. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  85. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  86. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  87. package/lib/cjs/common/render/AnimationNodeId.js.map +1 -1
  88. package/lib/cjs/common/render/MaterialParams.js.map +1 -1
  89. package/lib/cjs/common/render/TextureParams.js.map +1 -1
  90. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -1
  91. package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -1
  92. package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -1
  93. package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -1
  94. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -1
  95. package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -1
  96. package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -1
  97. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -1
  98. package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -1
  99. package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -1
  100. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -1
  101. package/lib/cjs/core-frontend.js.map +1 -1
  102. package/lib/cjs/extension/Extension.js.map +1 -1
  103. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  104. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  105. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  106. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  107. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  108. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  109. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  110. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  111. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  112. package/lib/cjs/public/scripts/checkbrowser.js +24 -24
  113. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  114. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  115. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  116. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  117. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  118. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  119. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  120. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
  121. package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
  122. package/lib/cjs/render/Decorations.js.map +1 -1
  123. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  124. package/lib/cjs/render/FrameStats.js.map +1 -1
  125. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  126. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  127. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  128. package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
  129. package/lib/cjs/render/MockRender.js.map +1 -1
  130. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  131. package/lib/cjs/render/Pixel.js.map +1 -1
  132. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  133. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  134. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  135. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  136. package/lib/cjs/render/RenderMemory.js.map +1 -1
  137. package/lib/cjs/render/RenderPlan.js.map +1 -1
  138. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  139. package/lib/cjs/render/RenderSystem.js.map +1 -1
  140. package/lib/cjs/render/RenderTarget.js.map +1 -1
  141. package/lib/cjs/render/Scene.js.map +1 -1
  142. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  143. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  144. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  145. package/lib/cjs/render/primitives/ColorMap.js.map +1 -1
  146. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  147. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  148. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  149. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  150. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  151. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  152. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  153. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  154. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -1
  155. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  156. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +1 -1
  157. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  158. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  159. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  160. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  161. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  162. package/lib/cjs/render/webgl/AtmosphereUniforms.js.map +1 -1
  163. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  164. package/lib/cjs/render/webgl/AttributeMap.js.map +1 -1
  165. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  166. package/lib/cjs/render/webgl/BatchState.js.map +1 -1
  167. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  168. package/lib/cjs/render/webgl/BranchStack.js.map +1 -1
  169. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  170. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  171. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  172. package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
  173. package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
  174. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  175. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  176. package/lib/cjs/render/webgl/Diagnostics.js.map +1 -1
  177. package/lib/cjs/render/webgl/Disposable.js.map +1 -1
  178. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  179. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  180. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  181. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  182. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  183. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  184. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  185. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  186. package/lib/cjs/render/webgl/GL.js.map +1 -1
  187. package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
  188. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  189. package/lib/cjs/render/webgl/HiliteUniforms.js.map +1 -1
  190. package/lib/cjs/render/webgl/IModelFrameLifecycle.js.map +1 -1
  191. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  192. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  193. package/lib/cjs/render/webgl/Layer.js.map +1 -1
  194. package/lib/cjs/render/webgl/LayerCommands.js.map +1 -1
  195. package/lib/cjs/render/webgl/LightingUniforms.js.map +1 -1
  196. package/lib/cjs/render/webgl/LineCode.js.map +1 -1
  197. package/lib/cjs/render/webgl/Material.js.map +1 -1
  198. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  199. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  200. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  201. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -1
  202. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  203. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  204. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  205. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  206. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  207. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  208. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  209. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  210. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  211. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  212. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  213. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  214. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  215. package/lib/cjs/render/webgl/RenderState.js.map +1 -1
  216. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  217. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  218. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  219. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  220. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  221. package/lib/cjs/render/webgl/ShadowUniforms.js.map +1 -1
  222. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  223. package/lib/cjs/render/webgl/StyleUniforms.js.map +1 -1
  224. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  225. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  226. package/lib/cjs/render/webgl/System.js.map +1 -1
  227. package/lib/cjs/render/webgl/Target.js.map +1 -1
  228. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  229. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  230. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  231. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  232. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  233. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  234. package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
  235. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  236. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  237. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  238. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  239. package/lib/cjs/render/webgl/ViewRectUniforms.js.map +1 -1
  240. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  241. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +154 -154
  242. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  243. package/lib/cjs/render/webgl/glsl/Animation.js +83 -83
  244. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  245. package/lib/cjs/render/webgl/glsl/Atmosphere.js +266 -266
  246. package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
  247. package/lib/cjs/render/webgl/glsl/Blur.js +37 -37
  248. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  249. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +4 -4
  250. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  251. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +3 -3
  252. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  253. package/lib/cjs/render/webgl/glsl/Clipping.js +60 -60
  254. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  255. package/lib/cjs/render/webgl/glsl/Color.js +12 -12
  256. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  257. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +7 -7
  258. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  259. package/lib/cjs/render/webgl/glsl/CombineTextures.js +5 -5
  260. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  261. package/lib/cjs/render/webgl/glsl/Common.js +16 -16
  262. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  263. package/lib/cjs/render/webgl/glsl/Composite.js +71 -71
  264. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  265. package/lib/cjs/render/webgl/glsl/CopyColor.js +6 -6
  266. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  267. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +3 -3
  268. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  269. package/lib/cjs/render/webgl/glsl/CopyStencil.js +4 -4
  270. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  271. package/lib/cjs/render/webgl/glsl/Decode.js +65 -65
  272. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  273. package/lib/cjs/render/webgl/glsl/EDL.js +103 -103
  274. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  275. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +25 -25
  276. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  277. package/lib/cjs/render/webgl/glsl/Edge.js +146 -146
  278. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  279. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +232 -232
  280. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  281. package/lib/cjs/render/webgl/glsl/Fragment.js +41 -41
  282. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  283. package/lib/cjs/render/webgl/glsl/Instancing.js +21 -21
  284. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  285. package/lib/cjs/render/webgl/glsl/Lighting.js +92 -92
  286. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  287. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  288. package/lib/cjs/render/webgl/glsl/LookupTable.js +19 -19
  289. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  290. package/lib/cjs/render/webgl/glsl/Monochrome.js +13 -13
  291. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  292. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +188 -188
  293. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  294. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +22 -22
  295. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  296. package/lib/cjs/render/webgl/glsl/PointCloud.js +28 -28
  297. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  298. package/lib/cjs/render/webgl/glsl/PointString.js +9 -9
  299. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  300. package/lib/cjs/render/webgl/glsl/Polyline.js +213 -213
  301. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  302. package/lib/cjs/render/webgl/glsl/RealityMesh.js +83 -83
  303. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  304. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  305. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  306. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  307. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  308. package/lib/cjs/render/webgl/glsl/SkySphere.js +49 -49
  309. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  310. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +51 -51
  311. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  312. package/lib/cjs/render/webgl/glsl/Surface.js +239 -239
  313. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  314. package/lib/cjs/render/webgl/glsl/Thematic.js +134 -134
  315. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  316. package/lib/cjs/render/webgl/glsl/Translucency.js +19 -19
  317. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  318. package/lib/cjs/render/webgl/glsl/Vertex.js +73 -73
  319. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  320. package/lib/cjs/render/webgl/glsl/Viewport.js +38 -38
  321. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  322. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  323. package/lib/cjs/render/webgl/glsl/Wiremesh.js +10 -10
  324. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  325. package/lib/cjs/render-primitives.js.map +1 -1
  326. package/lib/cjs/request/Request.js.map +1 -1
  327. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  328. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  329. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -1
  330. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  331. package/lib/cjs/tile/ContextShareProvider.js.map +1 -1
  332. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  333. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  334. package/lib/cjs/tile/GltfReader.js.map +1 -1
  335. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  336. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  337. package/lib/cjs/tile/IModelTile.js.map +1 -1
  338. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  339. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  340. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  341. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  342. package/lib/cjs/tile/ImdlParser.js.map +1 -1
  343. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  344. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  345. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  346. package/lib/cjs/tile/PntsReader.js.map +1 -1
  347. package/lib/cjs/tile/RealityTile.js.map +1 -1
  348. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  349. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  350. package/lib/cjs/tile/RealityTileTree.js +1 -1
  351. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  352. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  353. package/lib/cjs/tile/Tile.js.map +1 -1
  354. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  355. package/lib/cjs/tile/TileContent.js.map +1 -1
  356. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  357. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  358. package/lib/cjs/tile/TileParams.js.map +1 -1
  359. package/lib/cjs/tile/TileRequest.js.map +1 -1
  360. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  361. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  362. package/lib/cjs/tile/TileStorage.js.map +1 -1
  363. package/lib/cjs/tile/TileTree.js.map +1 -1
  364. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  365. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  366. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  367. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  368. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  369. package/lib/cjs/tile/TileUser.js.map +1 -1
  370. package/lib/cjs/tile/TileUserSet.js.map +1 -1
  371. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  372. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  373. package/lib/cjs/tile/internal.js.map +1 -1
  374. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  375. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  376. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  377. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  378. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  379. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  380. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  381. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  382. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  383. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  384. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  385. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  386. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  387. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  388. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  389. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  390. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  391. package/lib/cjs/tile/map/MapLayerImageryProvider.js +2 -2
  392. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  393. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  394. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  395. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  396. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  397. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  398. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  399. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  400. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  401. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  402. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  403. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  404. package/lib/cjs/tile/map/WmsUtilities.js.map +1 -1
  405. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  406. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  407. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  408. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  409. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  410. package/lib/cjs/tools/EventController.js.map +1 -1
  411. package/lib/cjs/tools/IdleTool.js.map +1 -1
  412. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  413. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  414. package/lib/cjs/tools/SelectTool.js.map +1 -1
  415. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  416. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  417. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  418. package/lib/cjs/tools/ViewTool.js.map +1 -1
  419. package/lib/cjs/webgl.js.map +1 -1
  420. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
  421. package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -40
  422. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  423. package/lib/esm/AccuDraw.js.map +1 -1
  424. package/lib/esm/AccuSnap.js.map +1 -1
  425. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  426. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  427. package/lib/esm/AuxCoordSys.js.map +1 -1
  428. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  429. package/lib/esm/BingLocation.js.map +1 -1
  430. package/lib/esm/BriefcaseConnection.js.map +1 -1
  431. package/lib/esm/BriefcaseTxns.js.map +1 -1
  432. package/lib/esm/CategorySelectorState.js.map +1 -1
  433. package/lib/esm/ChangeFlags.js.map +1 -1
  434. package/lib/esm/CheckpointConnection.js.map +1 -1
  435. package/lib/esm/CoordSystem.js.map +1 -1
  436. package/lib/esm/DecorationsCache.js.map +1 -1
  437. package/lib/esm/DevTools.js.map +1 -1
  438. package/lib/esm/DisplayStyleState.js.map +1 -1
  439. package/lib/esm/DrawingViewState.js +5 -5
  440. package/lib/esm/DrawingViewState.js.map +1 -1
  441. package/lib/esm/ElementLocateManager.js.map +1 -1
  442. package/lib/esm/EmphasizeElements.js.map +1 -1
  443. package/lib/esm/EntityState.js.map +1 -1
  444. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  445. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  446. package/lib/esm/FlashSettings.js.map +1 -1
  447. package/lib/esm/FrontendHubAccess.js.map +1 -1
  448. package/lib/esm/Frustum2d.js.map +1 -1
  449. package/lib/esm/FrustumAnimator.js.map +1 -1
  450. package/lib/esm/FuzzySearch.js.map +1 -1
  451. package/lib/esm/GeoServices.js.map +1 -1
  452. package/lib/esm/GlobeAnimator.js.map +1 -1
  453. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  454. package/lib/esm/HitDetail.js.map +1 -1
  455. package/lib/esm/IModelApp.js.map +1 -1
  456. package/lib/esm/IModelConnection.js +23 -23
  457. package/lib/esm/IModelConnection.js.map +1 -1
  458. package/lib/esm/IModelRoutingContext.js.map +1 -1
  459. package/lib/esm/IModeljs-css.js +133 -133
  460. package/lib/esm/IModeljs-css.js.map +1 -1
  461. package/lib/esm/IpcApp.js.map +1 -1
  462. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  463. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  464. package/lib/esm/MarginPercent.js.map +1 -1
  465. package/lib/esm/Marker.js.map +1 -1
  466. package/lib/esm/ModelSelectorState.js.map +1 -1
  467. package/lib/esm/NativeApp.js.map +1 -1
  468. package/lib/esm/NativeAppLogger.js.map +1 -1
  469. package/lib/esm/NoRenderApp.js.map +1 -1
  470. package/lib/esm/NotificationManager.js.map +1 -1
  471. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  472. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  473. package/lib/esm/RealityDataSource.js.map +1 -1
  474. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  475. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  476. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  477. package/lib/esm/SelectionSet.js.map +1 -1
  478. package/lib/esm/SheetViewState.js.map +1 -1
  479. package/lib/esm/SpatialViewState.js.map +1 -1
  480. package/lib/esm/Sprites.js.map +1 -1
  481. package/lib/esm/StandardView.js.map +1 -1
  482. package/lib/esm/SubCategoriesCache.js.map +1 -1
  483. package/lib/esm/TentativePoint.js.map +1 -1
  484. package/lib/esm/Tiles.js.map +1 -1
  485. package/lib/esm/UserPreferences.js.map +1 -1
  486. package/lib/esm/ViewAnimation.js.map +1 -1
  487. package/lib/esm/ViewContext.js.map +1 -1
  488. package/lib/esm/ViewCreator2d.js.map +1 -1
  489. package/lib/esm/ViewCreator3d.js.map +1 -1
  490. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  491. package/lib/esm/ViewManager.js.map +1 -1
  492. package/lib/esm/ViewPose.js.map +1 -1
  493. package/lib/esm/ViewState.js.map +1 -1
  494. package/lib/esm/ViewStatus.js.map +1 -1
  495. package/lib/esm/ViewingSpace.js.map +1 -1
  496. package/lib/esm/Viewport.js.map +1 -1
  497. package/lib/esm/ViewportSync.js.map +1 -1
  498. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
  499. package/lib/esm/common/ImageUtil.js.map +1 -1
  500. package/lib/esm/common/ViewRect.js.map +1 -1
  501. package/lib/esm/common/WorkerProxy.js.map +1 -1
  502. package/lib/esm/common/gltf/GltfModel.js.map +1 -1
  503. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  504. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  505. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  506. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  507. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  508. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  509. package/lib/esm/common/render/AnimationNodeId.js.map +1 -1
  510. package/lib/esm/common/render/MaterialParams.js.map +1 -1
  511. package/lib/esm/common/render/TextureParams.js.map +1 -1
  512. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -1
  513. package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -1
  514. package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -1
  515. package/lib/esm/common/render/primitives/MeshParams.js.map +1 -1
  516. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -1
  517. package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -1
  518. package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -1
  519. package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -1
  520. package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -1
  521. package/lib/esm/common/render/primitives/VertexTable.js.map +1 -1
  522. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -1
  523. package/lib/esm/core-frontend.js.map +1 -1
  524. package/lib/esm/extension/Extension.js.map +1 -1
  525. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  526. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  527. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  528. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  529. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  530. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  531. package/lib/esm/properties/AngleDescription.js.map +1 -1
  532. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  533. package/lib/esm/properties/LengthDescription.js.map +1 -1
  534. package/lib/esm/public/scripts/checkbrowser.js +24 -24
  535. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  536. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  537. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  538. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  539. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  540. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  541. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  542. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
  543. package/lib/esm/render/CreateTextureArgs.js.map +1 -1
  544. package/lib/esm/render/Decorations.js.map +1 -1
  545. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  546. package/lib/esm/render/FrameStats.js.map +1 -1
  547. package/lib/esm/render/GraphicBranch.js.map +1 -1
  548. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  549. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  550. package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
  551. package/lib/esm/render/MockRender.js.map +1 -1
  552. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  553. package/lib/esm/render/Pixel.js.map +1 -1
  554. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  555. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  556. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  557. package/lib/esm/render/RenderGraphic.js.map +1 -1
  558. package/lib/esm/render/RenderMemory.js.map +1 -1
  559. package/lib/esm/render/RenderPlan.js.map +1 -1
  560. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  561. package/lib/esm/render/RenderSystem.js.map +1 -1
  562. package/lib/esm/render/RenderTarget.js.map +1 -1
  563. package/lib/esm/render/Scene.js.map +1 -1
  564. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  565. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -1
  566. package/lib/esm/render/VisibleFeature.js.map +1 -1
  567. package/lib/esm/render/primitives/ColorMap.js.map +1 -1
  568. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  569. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  570. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  571. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  572. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  573. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  574. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  575. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  576. package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -1
  577. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  578. package/lib/esm/render/primitives/geometry/GeometryList.js.map +1 -1
  579. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  580. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  581. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  582. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  583. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  584. package/lib/esm/render/webgl/AtmosphereUniforms.js.map +1 -1
  585. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  586. package/lib/esm/render/webgl/AttributeMap.js.map +1 -1
  587. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  588. package/lib/esm/render/webgl/BatchState.js.map +1 -1
  589. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  590. package/lib/esm/render/webgl/BranchStack.js.map +1 -1
  591. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  592. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  593. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  594. package/lib/esm/render/webgl/ClipStack.js.map +1 -1
  595. package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
  596. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  597. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  598. package/lib/esm/render/webgl/Diagnostics.js.map +1 -1
  599. package/lib/esm/render/webgl/Disposable.js.map +1 -1
  600. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  601. package/lib/esm/render/webgl/EDL.js.map +1 -1
  602. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  603. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  604. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  605. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  606. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  607. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  608. package/lib/esm/render/webgl/GL.js.map +1 -1
  609. package/lib/esm/render/webgl/GLTimer.js.map +1 -1
  610. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  611. package/lib/esm/render/webgl/HiliteUniforms.js.map +1 -1
  612. package/lib/esm/render/webgl/IModelFrameLifecycle.js.map +1 -1
  613. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  614. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  615. package/lib/esm/render/webgl/Layer.js.map +1 -1
  616. package/lib/esm/render/webgl/LayerCommands.js.map +1 -1
  617. package/lib/esm/render/webgl/LightingUniforms.js.map +1 -1
  618. package/lib/esm/render/webgl/LineCode.js.map +1 -1
  619. package/lib/esm/render/webgl/Material.js.map +1 -1
  620. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  621. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  622. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  623. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -1
  624. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  625. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  626. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  627. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  628. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  629. package/lib/esm/render/webgl/PointString.js.map +1 -1
  630. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  631. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  632. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  633. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  634. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  635. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  636. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  637. package/lib/esm/render/webgl/RenderState.js.map +1 -1
  638. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  639. package/lib/esm/render/webgl/ScratchDrawParams.js.map +1 -1
  640. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  641. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  642. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  643. package/lib/esm/render/webgl/ShadowUniforms.js.map +1 -1
  644. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  645. package/lib/esm/render/webgl/StyleUniforms.js.map +1 -1
  646. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  647. package/lib/esm/render/webgl/Sync.js.map +1 -1
  648. package/lib/esm/render/webgl/System.js.map +1 -1
  649. package/lib/esm/render/webgl/Target.js.map +1 -1
  650. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  651. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  652. package/lib/esm/render/webgl/Technique.js.map +1 -1
  653. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  654. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  655. package/lib/esm/render/webgl/Texture.js.map +1 -1
  656. package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
  657. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  658. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  659. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  660. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  661. package/lib/esm/render/webgl/ViewRectUniforms.js.map +1 -1
  662. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  663. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +154 -154
  664. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  665. package/lib/esm/render/webgl/glsl/Animation.js +83 -83
  666. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  667. package/lib/esm/render/webgl/glsl/Atmosphere.js +266 -266
  668. package/lib/esm/render/webgl/glsl/Atmosphere.js.map +1 -1
  669. package/lib/esm/render/webgl/glsl/Blur.js +37 -37
  670. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  671. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +4 -4
  672. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  673. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +3 -3
  674. package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  675. package/lib/esm/render/webgl/glsl/Clipping.js +60 -60
  676. package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
  677. package/lib/esm/render/webgl/glsl/Color.js +12 -12
  678. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  679. package/lib/esm/render/webgl/glsl/Combine3Textures.js +7 -7
  680. package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
  681. package/lib/esm/render/webgl/glsl/CombineTextures.js +5 -5
  682. package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
  683. package/lib/esm/render/webgl/glsl/Common.js +16 -16
  684. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  685. package/lib/esm/render/webgl/glsl/Composite.js +71 -71
  686. package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
  687. package/lib/esm/render/webgl/glsl/CopyColor.js +6 -6
  688. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  689. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +3 -3
  690. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  691. package/lib/esm/render/webgl/glsl/CopyStencil.js +4 -4
  692. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  693. package/lib/esm/render/webgl/glsl/Decode.js +65 -65
  694. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  695. package/lib/esm/render/webgl/glsl/EDL.js +103 -103
  696. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -1
  697. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +25 -25
  698. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  699. package/lib/esm/render/webgl/glsl/Edge.js +146 -146
  700. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  701. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +232 -232
  702. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  703. package/lib/esm/render/webgl/glsl/Fragment.js +41 -41
  704. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  705. package/lib/esm/render/webgl/glsl/Instancing.js +21 -21
  706. package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
  707. package/lib/esm/render/webgl/glsl/Lighting.js +92 -92
  708. package/lib/esm/render/webgl/glsl/Lighting.js.map +1 -1
  709. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  710. package/lib/esm/render/webgl/glsl/LookupTable.js +19 -19
  711. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  712. package/lib/esm/render/webgl/glsl/Monochrome.js +13 -13
  713. package/lib/esm/render/webgl/glsl/Monochrome.js.map +1 -1
  714. package/lib/esm/render/webgl/glsl/PlanarClassification.js +188 -188
  715. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  716. package/lib/esm/render/webgl/glsl/PlanarGrid.js +22 -22
  717. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  718. package/lib/esm/render/webgl/glsl/PointCloud.js +28 -28
  719. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  720. package/lib/esm/render/webgl/glsl/PointString.js +9 -9
  721. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  722. package/lib/esm/render/webgl/glsl/Polyline.js +213 -213
  723. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  724. package/lib/esm/render/webgl/glsl/RealityMesh.js +83 -83
  725. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  726. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  727. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  728. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  729. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  730. package/lib/esm/render/webgl/glsl/SkySphere.js +49 -49
  731. package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
  732. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +51 -51
  733. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  734. package/lib/esm/render/webgl/glsl/Surface.js +239 -239
  735. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  736. package/lib/esm/render/webgl/glsl/Thematic.js +134 -134
  737. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  738. package/lib/esm/render/webgl/glsl/Translucency.js +19 -19
  739. package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
  740. package/lib/esm/render/webgl/glsl/Vertex.js +73 -73
  741. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  742. package/lib/esm/render/webgl/glsl/Viewport.js +38 -38
  743. package/lib/esm/render/webgl/glsl/Viewport.js.map +1 -1
  744. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  745. package/lib/esm/render/webgl/glsl/Wiremesh.js +10 -10
  746. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
  747. package/lib/esm/render-primitives.js.map +1 -1
  748. package/lib/esm/request/Request.js.map +1 -1
  749. package/lib/esm/tile/B3dmReader.js.map +1 -1
  750. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  751. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -1
  752. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  753. package/lib/esm/tile/ContextShareProvider.js.map +1 -1
  754. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  755. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  756. package/lib/esm/tile/GltfReader.js.map +1 -1
  757. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  758. package/lib/esm/tile/I3dmReader.js.map +1 -1
  759. package/lib/esm/tile/IModelTile.js.map +1 -1
  760. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  761. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  762. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  763. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  764. package/lib/esm/tile/ImdlParser.js.map +1 -1
  765. package/lib/esm/tile/ImdlReader.js.map +1 -1
  766. package/lib/esm/tile/LRUTileList.js.map +1 -1
  767. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  768. package/lib/esm/tile/PntsReader.js.map +1 -1
  769. package/lib/esm/tile/RealityTile.js.map +1 -1
  770. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  771. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  772. package/lib/esm/tile/RealityTileTree.js +1 -1
  773. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  774. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  775. package/lib/esm/tile/Tile.js.map +1 -1
  776. package/lib/esm/tile/TileAdmin.js.map +1 -1
  777. package/lib/esm/tile/TileContent.js.map +1 -1
  778. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  779. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  780. package/lib/esm/tile/TileParams.js.map +1 -1
  781. package/lib/esm/tile/TileRequest.js.map +1 -1
  782. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  783. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  784. package/lib/esm/tile/TileStorage.js.map +1 -1
  785. package/lib/esm/tile/TileTree.js.map +1 -1
  786. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  787. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  788. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  789. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  790. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  791. package/lib/esm/tile/TileUser.js.map +1 -1
  792. package/lib/esm/tile/TileUserSet.js.map +1 -1
  793. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  794. package/lib/esm/tile/ViewFlagOverrides.js.map +1 -1
  795. package/lib/esm/tile/internal.js.map +1 -1
  796. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  797. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  798. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  799. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  800. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  801. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  802. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  803. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  804. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  805. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  806. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  807. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  808. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  809. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  810. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  811. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  812. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  813. package/lib/esm/tile/map/MapLayerImageryProvider.js +2 -2
  814. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  815. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  816. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  817. package/lib/esm/tile/map/MapTile.js.map +1 -1
  818. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  819. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  820. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  821. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  822. package/lib/esm/tile/map/QuadId.js.map +1 -1
  823. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  824. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  825. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  826. package/lib/esm/tile/map/WmsUtilities.js.map +1 -1
  827. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  828. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  829. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  830. package/lib/esm/tools/EditManipulator.js.map +1 -1
  831. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  832. package/lib/esm/tools/EventController.js.map +1 -1
  833. package/lib/esm/tools/IdleTool.js.map +1 -1
  834. package/lib/esm/tools/MeasureTool.js.map +1 -1
  835. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  836. package/lib/esm/tools/SelectTool.js.map +1 -1
  837. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  838. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  839. package/lib/esm/tools/ToolSettings.js.map +1 -1
  840. package/lib/esm/tools/ViewTool.js.map +1 -1
  841. package/lib/esm/webgl.js.map +1 -1
  842. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
  843. package/lib/esm/workers/ImdlParser/webpack.config.js +40 -40
  844. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  845. package/lib/public/assets/MapLayerSources.json +25 -25
  846. package/lib/public/images/cesium-ion.svg +92 -92
  847. package/lib/public/images/imodeljs-icon.svg +2 -2
  848. package/lib/public/locales/en/CoreTools.json +477 -477
  849. package/lib/public/locales/en/iModelJs.json +170 -170
  850. package/lib/public/scripts/checkbrowser.js +24 -24
  851. package/package.json +23 -22
@@ -6,67 +6,67 @@
6
6
  * @module WebGL
7
7
  */
8
8
  /** @internal */
9
- export const decodeUint16 = `
10
- float decodeUInt16(vec2 v) {
11
- return dot(v, vec2(1.0, 256.0)); // v.x | (v.y << 8)
12
- }
9
+ export const decodeUint16 = `
10
+ float decodeUInt16(vec2 v) {
11
+ return dot(v, vec2(1.0, 256.0)); // v.x | (v.y << 8)
12
+ }
13
13
  `;
14
14
  /** @internal */
15
- export const decodeUint24 = `
16
- float decodeUInt24(vec3 v) {
17
- return dot(v, vec3(1.0, 256.0, 256.0*256.0)); // v.x | (v.y << 8) | (v.z << 16)
18
- }
15
+ export const decodeUint24 = `
16
+ float decodeUInt24(vec3 v) {
17
+ return dot(v, vec3(1.0, 256.0, 256.0*256.0)); // v.x | (v.y << 8) | (v.z << 16)
18
+ }
19
19
  `;
20
20
  /** @internal */
21
- export const unquantize3d = `
22
- vec3 unquantize3d(vec3 qpos, vec3 origin, vec3 scale) { return origin + scale * qpos; }
21
+ export const unquantize3d = `
22
+ vec3 unquantize3d(vec3 qpos, vec3 origin, vec3 scale) { return origin + scale * qpos; }
23
23
  `;
24
24
  /** @internal */
25
- export const unquantize2d = `
26
- // params.xy = origin. params.zw = scale.
27
- vec2 unquantize2d(vec2 qpos, vec4 params) { return params.xy + params.zw * qpos; }
25
+ export const unquantize2d = `
26
+ // params.xy = origin. params.zw = scale.
27
+ vec2 unquantize2d(vec2 qpos, vec4 params) { return params.xy + params.zw * qpos; }
28
28
  `;
29
29
  /** @internal */
30
- export const decodeDepthRgb = `
31
- float decodeDepthRgb(vec3 rgb) { return dot(rgb, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0)); }
30
+ export const decodeDepthRgb = `
31
+ float decodeDepthRgb(vec3 rgb) { return dot(rgb, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0)); }
32
32
  `;
33
33
  /** @internal */
34
- export const encodeDepthRgb = `
35
- vec3 encodeDepthRgb(float depth) {
36
- // 1.0 must be reduced slightly; otherwise decoding will produce zero. It's the far plane, so we don't care (and decoding produces 1.0 anyway).
37
- depth = min(depth, 16777215.0/16777216.0);
38
-
39
- vec3 enc = vec3(1.0, 255.0, 65025.0) * depth;
40
- enc = fract(enc);
41
- enc.xy -= enc.yz / 255.0;
42
- return enc;
43
- }
34
+ export const encodeDepthRgb = `
35
+ vec3 encodeDepthRgb(float depth) {
36
+ // 1.0 must be reduced slightly; otherwise decoding will produce zero. It's the far plane, so we don't care (and decoding produces 1.0 anyway).
37
+ depth = min(depth, 16777215.0/16777216.0);
38
+
39
+ vec3 enc = vec3(1.0, 255.0, 65025.0) * depth;
40
+ enc = fract(enc);
41
+ enc.xy -= enc.yz / 255.0;
42
+ return enc;
43
+ }
44
44
  `;
45
45
  /** Pack 2 floats in the integer range [0..255] into a single float equal to v.x | (v.y << 8)
46
46
  * @internal
47
47
  */
48
- export const pack2Bytes = `
49
- float pack2Bytes(vec2 v) {
50
- return v.x + (v.y * 256.0);
51
- }
48
+ export const pack2Bytes = `
49
+ float pack2Bytes(vec2 v) {
50
+ return v.x + (v.y * 256.0);
51
+ }
52
52
  `;
53
53
  /** Unpack a float in the integer range [0..0xffff] into a vec2 containing 2 integers in the range [0..255]
54
54
  * @internal
55
55
  */
56
- export const unpack2Bytes = `
57
- vec2 unpack2Bytes(float f) {
58
- f = floor(f + 0.5);
59
- vec2 v;
60
- v.y = floor(f / 256.0);
61
- v.x = floor(f - v.y * 256.0);
62
- return v;
63
- }
56
+ export const unpack2Bytes = `
57
+ vec2 unpack2Bytes(float f) {
58
+ f = floor(f + 0.5);
59
+ vec2 v;
60
+ v.y = floor(f / 256.0);
61
+ v.x = floor(f - v.y * 256.0);
62
+ return v;
63
+ }
64
64
  `;
65
65
  /** @internal */
66
- export const unpackAndNormalize2Bytes = `
67
- vec2 unpackAndNormalize2Bytes(float f) {
68
- return unpack2Bytes(f) / 255.0;
69
- }
66
+ export const unpackAndNormalize2Bytes = `
67
+ vec2 unpackAndNormalize2Bytes(float f) {
68
+ return unpack2Bytes(f) / 255.0;
69
+ }
70
70
  `;
71
71
  /** @internal */
72
72
  export function addUnpackAndNormalize2Bytes(builder) {
@@ -78,30 +78,30 @@ export function addUnpackAndNormalize2Bytes(builder) {
78
78
  * From https://github.com/CesiumGS/cesium/blob/main/Source/Shaders/Builtin/Functions/unpackFloat.glsl
79
79
  * @internal
80
80
  */
81
- export const decodeFloat32 = `
82
- float decodeFloat32(vec4 packedFloat) {
83
- float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0;
84
- float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0;
85
- if (exponent == -127.0)
86
- return 0.0;
87
-
88
- float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000);
89
- float result = sign * exp2(exponent - 23.0) * mantissa;
90
- return result;
91
- }
81
+ export const decodeFloat32 = `
82
+ float decodeFloat32(vec4 packedFloat) {
83
+ float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0;
84
+ float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0;
85
+ if (exponent == -127.0)
86
+ return 0.0;
87
+
88
+ float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000);
89
+ float result = sign * exp2(exponent - 23.0) * mantissa;
90
+ return result;
91
+ }
92
92
  `;
93
- export const decode3Float32 = `
94
- // This expects an array of 4 vec3s, where each vec4 contains a slice of all 3 of the packed floats in .xyz
95
- // pf0 is in [0].x, pf1 is in [0].y, and pf2 in [0].z
96
- // e.g.: packedFloat[0] = vec3(pf0.x, pf1.x, pf2.x)
97
- // likewise .y info is in [1], .z in [2], and .w in [3]
98
- vec3 decode3Float32(vec3 packedFloat[4]) {
99
- vec3 sign = 1.0 - step(128.0, packedFloat[3].xyz) * 2.0;
100
- vec3 exponent = 2.0 * mod(packedFloat[3].xyz, 128.0) + step(128.0, packedFloat[2].xyz) - 127.0;
101
- vec3 zeroFlag = vec3(notEqual(vec3(-127.0), exponent));
102
- vec3 mantissa = mod(packedFloat[2].xyz, 128.0) * 65536.0 + packedFloat[1].xyz * 256.0 + packedFloat[0].xyz + float(0x800000);
103
- vec3 result = sign * exp2(exponent - 23.0) * mantissa * zeroFlag;
104
- return result;
105
- }
93
+ export const decode3Float32 = `
94
+ // This expects an array of 4 vec3s, where each vec4 contains a slice of all 3 of the packed floats in .xyz
95
+ // pf0 is in [0].x, pf1 is in [0].y, and pf2 in [0].z
96
+ // e.g.: packedFloat[0] = vec3(pf0.x, pf1.x, pf2.x)
97
+ // likewise .y info is in [1], .z in [2], and .w in [3]
98
+ vec3 decode3Float32(vec3 packedFloat[4]) {
99
+ vec3 sign = 1.0 - step(128.0, packedFloat[3].xyz) * 2.0;
100
+ vec3 exponent = 2.0 * mod(packedFloat[3].xyz, 128.0) + step(128.0, packedFloat[2].xyz) - 127.0;
101
+ vec3 zeroFlag = vec3(notEqual(vec3(-127.0), exponent));
102
+ vec3 mantissa = mod(packedFloat[2].xyz, 128.0) * 65536.0 + packedFloat[1].xyz * 256.0 + packedFloat[0].xyz + float(0x800000);
103
+ vec3 result = sign * exp2(exponent - 23.0) * mantissa * zeroFlag;
104
+ return result;
105
+ }
106
106
  `;
107
107
  //# sourceMappingURL=Decode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decode.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Decode.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;CAE3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;;CAG3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG;;CAE7B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;CAU7B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;CAIzB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;CAQ3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;CAIvC,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,2BAA2B,CAAC,OAAsB;IAChE,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;CAW5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;CAa7B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { ShaderBuilder } from \"../ShaderBuilder\";\r\n\r\n/** @internal */\r\nexport const decodeUint16 = `\r\nfloat decodeUInt16(vec2 v) {\r\n return dot(v, vec2(1.0, 256.0)); // v.x | (v.y << 8)\r\n}\r\n`;\r\n\r\n/** @internal */\r\nexport const decodeUint24 = `\r\nfloat decodeUInt24(vec3 v) {\r\n return dot(v, vec3(1.0, 256.0, 256.0*256.0)); // v.x | (v.y << 8) | (v.z << 16)\r\n}\r\n`;\r\n\r\n/** @internal */\r\nexport const unquantize3d = `\r\nvec3 unquantize3d(vec3 qpos, vec3 origin, vec3 scale) { return origin + scale * qpos; }\r\n`;\r\n\r\n/** @internal */\r\nexport const unquantize2d = `\r\n// params.xy = origin. params.zw = scale.\r\nvec2 unquantize2d(vec2 qpos, vec4 params) { return params.xy + params.zw * qpos; }\r\n`;\r\n\r\n/** @internal */\r\nexport const decodeDepthRgb = `\r\nfloat decodeDepthRgb(vec3 rgb) { return dot(rgb, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0)); }\r\n`;\r\n\r\n/** @internal */\r\nexport const encodeDepthRgb = `\r\nvec3 encodeDepthRgb(float depth) {\r\n // 1.0 must be reduced slightly; otherwise decoding will produce zero. It's the far plane, so we don't care (and decoding produces 1.0 anyway).\r\n depth = min(depth, 16777215.0/16777216.0);\r\n\r\n vec3 enc = vec3(1.0, 255.0, 65025.0) * depth;\r\n enc = fract(enc);\r\n enc.xy -= enc.yz / 255.0;\r\n return enc;\r\n}\r\n`;\r\n\r\n/** Pack 2 floats in the integer range [0..255] into a single float equal to v.x | (v.y << 8)\r\n * @internal\r\n */\r\nexport const pack2Bytes = `\r\nfloat pack2Bytes(vec2 v) {\r\n return v.x + (v.y * 256.0);\r\n}\r\n`;\r\n\r\n/** Unpack a float in the integer range [0..0xffff] into a vec2 containing 2 integers in the range [0..255]\r\n * @internal\r\n */\r\nexport const unpack2Bytes = `\r\nvec2 unpack2Bytes(float f) {\r\n f = floor(f + 0.5);\r\n vec2 v;\r\n v.y = floor(f / 256.0);\r\n v.x = floor(f - v.y * 256.0);\r\n return v;\r\n}\r\n`;\r\n\r\n/** @internal */\r\nexport const unpackAndNormalize2Bytes = `\r\nvec2 unpackAndNormalize2Bytes(float f) {\r\n return unpack2Bytes(f) / 255.0;\r\n}\r\n`;\r\n\r\n/** @internal */\r\nexport function addUnpackAndNormalize2Bytes(builder: ShaderBuilder): void {\r\n builder.addFunction(unpack2Bytes);\r\n builder.addFunction(unpackAndNormalize2Bytes);\r\n}\r\n\r\n/** Given an IEEE 32-bit float stuffed into a RGBA unsigned byte texture, extract the float.\r\n * The input vec4 components are in the integer range [0..255].\r\n * From https://github.com/CesiumGS/cesium/blob/main/Source/Shaders/Builtin/Functions/unpackFloat.glsl\r\n * @internal\r\n */\r\nexport const decodeFloat32 = `\r\nfloat decodeFloat32(vec4 packedFloat) {\r\n float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0;\r\n float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0;\r\n if (exponent == -127.0)\r\n return 0.0;\r\n\r\n float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000);\r\n float result = sign * exp2(exponent - 23.0) * mantissa;\r\n return result;\r\n}\r\n`;\r\n\r\nexport const decode3Float32 = `\r\n// This expects an array of 4 vec3s, where each vec4 contains a slice of all 3 of the packed floats in .xyz\r\n// pf0 is in [0].x, pf1 is in [0].y, and pf2 in [0].z\r\n// e.g.: packedFloat[0] = vec3(pf0.x, pf1.x, pf2.x)\r\n// likewise .y info is in [1], .z in [2], and .w in [3]\r\nvec3 decode3Float32(vec3 packedFloat[4]) {\r\n vec3 sign = 1.0 - step(128.0, packedFloat[3].xyz) * 2.0;\r\n vec3 exponent = 2.0 * mod(packedFloat[3].xyz, 128.0) + step(128.0, packedFloat[2].xyz) - 127.0;\r\n vec3 zeroFlag = vec3(notEqual(vec3(-127.0), exponent));\r\n vec3 mantissa = mod(packedFloat[2].xyz, 128.0) * 65536.0 + packedFloat[1].xyz * 256.0 + packedFloat[0].xyz + float(0x800000);\r\n vec3 result = sign * exp2(exponent - 23.0) * mantissa * zeroFlag;\r\n return result;\r\n}\r\n`;\r\n"]}
1
+ {"version":3,"file":"Decode.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Decode.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;CAE3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;;;CAG3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG;;CAE7B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;CAU7B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;CAIzB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;CAQ3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;CAIvC,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,2BAA2B,CAAC,OAAsB;IAChE,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;CAW5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;CAa7B,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 */\n\nimport { ShaderBuilder } from \"../ShaderBuilder\";\n\n/** @internal */\nexport const decodeUint16 = `\nfloat decodeUInt16(vec2 v) {\n return dot(v, vec2(1.0, 256.0)); // v.x | (v.y << 8)\n}\n`;\n\n/** @internal */\nexport const decodeUint24 = `\nfloat decodeUInt24(vec3 v) {\n return dot(v, vec3(1.0, 256.0, 256.0*256.0)); // v.x | (v.y << 8) | (v.z << 16)\n}\n`;\n\n/** @internal */\nexport const unquantize3d = `\nvec3 unquantize3d(vec3 qpos, vec3 origin, vec3 scale) { return origin + scale * qpos; }\n`;\n\n/** @internal */\nexport const unquantize2d = `\n// params.xy = origin. params.zw = scale.\nvec2 unquantize2d(vec2 qpos, vec4 params) { return params.xy + params.zw * qpos; }\n`;\n\n/** @internal */\nexport const decodeDepthRgb = `\nfloat decodeDepthRgb(vec3 rgb) { return dot(rgb, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0)); }\n`;\n\n/** @internal */\nexport const encodeDepthRgb = `\nvec3 encodeDepthRgb(float depth) {\n // 1.0 must be reduced slightly; otherwise decoding will produce zero. It's the far plane, so we don't care (and decoding produces 1.0 anyway).\n depth = min(depth, 16777215.0/16777216.0);\n\n vec3 enc = vec3(1.0, 255.0, 65025.0) * depth;\n enc = fract(enc);\n enc.xy -= enc.yz / 255.0;\n return enc;\n}\n`;\n\n/** Pack 2 floats in the integer range [0..255] into a single float equal to v.x | (v.y << 8)\n * @internal\n */\nexport const pack2Bytes = `\nfloat pack2Bytes(vec2 v) {\n return v.x + (v.y * 256.0);\n}\n`;\n\n/** Unpack a float in the integer range [0..0xffff] into a vec2 containing 2 integers in the range [0..255]\n * @internal\n */\nexport const unpack2Bytes = `\nvec2 unpack2Bytes(float f) {\n f = floor(f + 0.5);\n vec2 v;\n v.y = floor(f / 256.0);\n v.x = floor(f - v.y * 256.0);\n return v;\n}\n`;\n\n/** @internal */\nexport const unpackAndNormalize2Bytes = `\nvec2 unpackAndNormalize2Bytes(float f) {\n return unpack2Bytes(f) / 255.0;\n}\n`;\n\n/** @internal */\nexport function addUnpackAndNormalize2Bytes(builder: ShaderBuilder): void {\n builder.addFunction(unpack2Bytes);\n builder.addFunction(unpackAndNormalize2Bytes);\n}\n\n/** Given an IEEE 32-bit float stuffed into a RGBA unsigned byte texture, extract the float.\n * The input vec4 components are in the integer range [0..255].\n * From https://github.com/CesiumGS/cesium/blob/main/Source/Shaders/Builtin/Functions/unpackFloat.glsl\n * @internal\n */\nexport const decodeFloat32 = `\nfloat decodeFloat32(vec4 packedFloat) {\n float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0;\n float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0;\n if (exponent == -127.0)\n return 0.0;\n\n float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000);\n float result = sign * exp2(exponent - 23.0) * mantissa;\n return result;\n}\n`;\n\nexport const decode3Float32 = `\n// This expects an array of 4 vec3s, where each vec4 contains a slice of all 3 of the packed floats in .xyz\n// pf0 is in [0].x, pf1 is in [0].y, and pf2 in [0].z\n// e.g.: packedFloat[0] = vec3(pf0.x, pf1.x, pf2.x)\n// likewise .y info is in [1], .z in [2], and .w in [3]\nvec3 decode3Float32(vec3 packedFloat[4]) {\n vec3 sign = 1.0 - step(128.0, packedFloat[3].xyz) * 2.0;\n vec3 exponent = 2.0 * mod(packedFloat[3].xyz, 128.0) + step(128.0, packedFloat[2].xyz) - 127.0;\n vec3 zeroFlag = vec3(notEqual(vec3(-127.0), exponent));\n vec3 mantissa = mod(packedFloat[2].xyz, 128.0) * 65536.0 + packedFloat[1].xyz * 256.0 + packedFloat[0].xyz + float(0x800000);\n vec3 result = sign * exp2(exponent - 23.0) * mantissa * zeroFlag;\n return result;\n}\n`;\n"]}
@@ -10,35 +10,35 @@ import { Texture2DHandle } from "../Texture";
10
10
  import { assignFragColor } from "./Fragment";
11
11
  import { createViewportQuadBuilder } from "./ViewportQuad";
12
12
  // This shader calculates a more basic version of EDL, and only for the original size, so single pass
13
- const calcBasicEDL = `
14
- float strength = u_pointCloudEDL1.x;
15
- float scaleFactor = u_pointCloudEDL1.z;
16
- float pixRadius = u_pointCloudEDL1.y;
17
- vec2 invTexSize = u_texInfo.xy;
18
- float is3d = u_pointCloudEDL1.w;
19
-
20
- vec4 color = TEXTURE(u_colorTexture, v_texCoord);
21
- if (color.a == 0.0)
22
- discard;
23
- else {
24
- const vec2 neighbors[8] = vec2[8] ( //neighbor relative position
25
- vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),
26
- vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));
27
- float depth = TEXTURE(u_depthTexture, v_texCoord).r;
28
- float sum = 0.0;
29
- vec2 posScale = pixRadius * invTexSize;
30
- // contribution of each neighbor
31
- // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud
32
- for (int c = 0; c < 8; c++) {
33
- vec2 nRelPos = posScale * neighbors[c];
34
- vec2 nPos = v_texCoord + nRelPos;
35
- float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth
36
- sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN));
37
- }
38
- float f = sum / 8.0;
39
- f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5
40
- return vec4(f * color.rgb, 1.0);
41
- }
13
+ const calcBasicEDL = `
14
+ float strength = u_pointCloudEDL1.x;
15
+ float scaleFactor = u_pointCloudEDL1.z;
16
+ float pixRadius = u_pointCloudEDL1.y;
17
+ vec2 invTexSize = u_texInfo.xy;
18
+ float is3d = u_pointCloudEDL1.w;
19
+
20
+ vec4 color = TEXTURE(u_colorTexture, v_texCoord);
21
+ if (color.a == 0.0)
22
+ discard;
23
+ else {
24
+ const vec2 neighbors[8] = vec2[8] ( //neighbor relative position
25
+ vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),
26
+ vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));
27
+ float depth = TEXTURE(u_depthTexture, v_texCoord).r;
28
+ float sum = 0.0;
29
+ vec2 posScale = pixRadius * invTexSize;
30
+ // contribution of each neighbor
31
+ // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud
32
+ for (int c = 0; c < 8; c++) {
33
+ vec2 nRelPos = posScale * neighbors[c];
34
+ vec2 nPos = v_texCoord + nRelPos;
35
+ float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth
36
+ sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN));
37
+ }
38
+ float f = sum / 8.0;
39
+ f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5
40
+ return vec4(f * color.rgb, 1.0);
41
+ }
42
42
  `;
43
43
  /** @internal */
44
44
  export function createEDLCalcBasicProgram(context) {
@@ -75,36 +75,36 @@ export function createEDLCalcBasicProgram(context) {
75
75
  return builder.buildProgram(context);
76
76
  }
77
77
  // This shader calculates the full version of EDL, and can be run at full, 1/2 and 1/4 scale
78
- const calcFullEDL = `
79
- float strength = u_pointCloudEDL1.x;
80
- float scaleFactor = u_pointCloudEDL1.z;
81
- float pixRadius = u_pointCloudEDL1.y;
82
- float scale = u_texInfo.z; // 1, 2, 4
83
- vec2 invTexSize = u_texInfo.xy;
84
- float is3d = u_pointCloudEDL1.w;
85
-
86
- vec4 color = TEXTURE(u_colorTexture, v_texCoord);
87
- if (color.a == 0.0)
88
- return color;
89
- else {
90
- const vec2 neighbors[8] = vec2[8] ( //neighbor relative position
91
- vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),
92
- vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));
93
- float depth = TEXTURE(u_depthTexture, v_texCoord).r;
94
- float sum = 0.0;
95
- vec2 posScale = pixRadius * invTexSize;
96
- // contribution of each neighbor
97
- // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud
98
- for (int c = 0; c < 8; c++) {
99
- vec2 nRelPos = posScale * neighbors[c];
100
- vec2 nPos = v_texCoord + nRelPos;
101
- float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth
102
- sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN)) / scale;
103
- }
104
- float f = sum / 8.0;
105
- f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5
106
- return vec4(f * color.rgb, 1.0);
107
- }
78
+ const calcFullEDL = `
79
+ float strength = u_pointCloudEDL1.x;
80
+ float scaleFactor = u_pointCloudEDL1.z;
81
+ float pixRadius = u_pointCloudEDL1.y;
82
+ float scale = u_texInfo.z; // 1, 2, 4
83
+ vec2 invTexSize = u_texInfo.xy;
84
+ float is3d = u_pointCloudEDL1.w;
85
+
86
+ vec4 color = TEXTURE(u_colorTexture, v_texCoord);
87
+ if (color.a == 0.0)
88
+ return color;
89
+ else {
90
+ const vec2 neighbors[8] = vec2[8] ( //neighbor relative position
91
+ vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),
92
+ vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));
93
+ float depth = TEXTURE(u_depthTexture, v_texCoord).r;
94
+ float sum = 0.0;
95
+ vec2 posScale = pixRadius * invTexSize;
96
+ // contribution of each neighbor
97
+ // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud
98
+ for (int c = 0; c < 8; c++) {
99
+ vec2 nRelPos = posScale * neighbors[c];
100
+ vec2 nPos = v_texCoord + nRelPos;
101
+ float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth
102
+ sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN)) / scale;
103
+ }
104
+ float f = sum / 8.0;
105
+ f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5
106
+ return vec4(f * color.rgb, 1.0);
107
+ }
108
108
  `;
109
109
  /** @internal */
110
110
  export function createEDLCalcFullProgram(context) {
@@ -141,41 +141,41 @@ export function createEDLCalcFullProgram(context) {
141
141
  return builder.buildProgram(context);
142
142
  }
143
143
  // This shader filters the EDL image, and can be run at 1/2 and 1/4 scale
144
- const filterEDL = `
145
- // NB: this bilateral filter hardcodes spatialSigma to 2.0 and depthSigma to 0.4, with halfSize = 2
146
- float distCoefs[] = float[] (
147
- 1.0, 0.9692332344763441, 0.8824969025845955, 0.9692332344763441, 0.9394130628134758,
148
- 0.8553453273074225, 0.8824969025845955, 0.8553453273074225, 0.8553453273074225, 0.7788007830714049);
149
- const float depthSigma = 0.4;
150
- vec2 invTexSize = u_texInfo.xy;
151
-
152
- float depth = TEXTURE(u_depthTexture, v_texCoord).r;
153
- float wsum = 0.0; // sum of all weights
154
- vec3 csum = vec3(0.0); // sum of all contributions
155
- vec2 coordi = vec2(0.0, 0.0); // ith neighbor position x,y
156
-
157
- for (int c = -2; c <= 2; c++) {
158
- coordi.x = float(c) * invTexSize.x;
159
- int cabs = (c < 0) ? -c : c;
160
-
161
- for (int d = -2; d <= 2; d++) {
162
- coordi.y = float(d) * invTexSize.y;
163
- vec4 ci = TEXTURE(u_colorTexture, v_texCoord + coordi); // neighbor color
164
-
165
- //pixel distance based damping
166
- int dabs = (d < 0) ? -d : d;
167
- float fi = distCoefs[cabs * 3 + dabs];
168
-
169
- //pixel depth difference based damping
170
- float zi = TEXTURE(u_depthTexture, v_texCoord + coordi).r; // neighbor depth
171
- float dz = (depth - zi) / depthSigma;
172
- fi *= exp(-dz * dz / 2.0);
173
-
174
- csum += ci.rgb * fi;
175
- wsum += fi;
176
- }
177
- }
178
- return vec4(csum / wsum, 1.0);
144
+ const filterEDL = `
145
+ // NB: this bilateral filter hardcodes spatialSigma to 2.0 and depthSigma to 0.4, with halfSize = 2
146
+ float distCoefs[] = float[] (
147
+ 1.0, 0.9692332344763441, 0.8824969025845955, 0.9692332344763441, 0.9394130628134758,
148
+ 0.8553453273074225, 0.8824969025845955, 0.8553453273074225, 0.8553453273074225, 0.7788007830714049);
149
+ const float depthSigma = 0.4;
150
+ vec2 invTexSize = u_texInfo.xy;
151
+
152
+ float depth = TEXTURE(u_depthTexture, v_texCoord).r;
153
+ float wsum = 0.0; // sum of all weights
154
+ vec3 csum = vec3(0.0); // sum of all contributions
155
+ vec2 coordi = vec2(0.0, 0.0); // ith neighbor position x,y
156
+
157
+ for (int c = -2; c <= 2; c++) {
158
+ coordi.x = float(c) * invTexSize.x;
159
+ int cabs = (c < 0) ? -c : c;
160
+
161
+ for (int d = -2; d <= 2; d++) {
162
+ coordi.y = float(d) * invTexSize.y;
163
+ vec4 ci = TEXTURE(u_colorTexture, v_texCoord + coordi); // neighbor color
164
+
165
+ //pixel distance based damping
166
+ int dabs = (d < 0) ? -d : d;
167
+ float fi = distCoefs[cabs * 3 + dabs];
168
+
169
+ //pixel depth difference based damping
170
+ float zi = TEXTURE(u_depthTexture, v_texCoord + coordi).r; // neighbor depth
171
+ float dz = (depth - zi) / depthSigma;
172
+ fi *= exp(-dz * dz / 2.0);
173
+
174
+ csum += ci.rgb * fi;
175
+ wsum += fi;
176
+ }
177
+ }
178
+ return vec4(csum / wsum, 1.0);
179
179
  `;
180
180
  /** @internal */
181
181
  export function createEDLFilterProgram(context) {
@@ -206,15 +206,15 @@ export function createEDLFilterProgram(context) {
206
206
  return builder.buildProgram(context);
207
207
  }
208
208
  // This shader mixes the 3 EDL images into the final image
209
- const mixEDL = `
210
- vec4 col1 = TEXTURE(u_colorTexture1, v_texCoord);
211
- if (col1.a == 0.0)
212
- discard;
213
- else {
214
- vec3 col2 = TEXTURE(u_colorTexture2, v_texCoord).rgb;
215
- vec3 col4 = TEXTURE(u_colorTexture4, v_texCoord).rgb;
216
- return vec4 ((u_weights.x * col1.rgb + u_weights.y * col2 + u_weights.z * col4) / (u_weights.x + u_weights.y + u_weights.z), 1.0);
217
- }
209
+ const mixEDL = `
210
+ vec4 col1 = TEXTURE(u_colorTexture1, v_texCoord);
211
+ if (col1.a == 0.0)
212
+ discard;
213
+ else {
214
+ vec3 col2 = TEXTURE(u_colorTexture2, v_texCoord).rgb;
215
+ vec3 col4 = TEXTURE(u_colorTexture4, v_texCoord).rgb;
216
+ return vec4 ((u_weights.x * col1.rgb + u_weights.y * col2 + u_weights.z * col4) / (u_weights.x + u_weights.y + u_weights.z), 1.0);
217
+ }
218
218
  `;
219
219
  /** @internal */
220
220
  export function createEDLMixProgram(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"EDL.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/EDL.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qGAAqG;AACrG,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BpB,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,yBAAyB,CAAC,OAA+B;IACvE,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,YAAY,CAAC,CAAC;IACjE,IAAI,CAAC,GAAG,kDAAyC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAgC,CAAC;YACrD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAgC,CAAC;YACrD,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAgC,CAAC;YACrD,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC,UAAU,CAAC,kBAAkB,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC9D,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;IAElD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,4FAA4F;AAC5F,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnB,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,wBAAwB,CAAC,OAA+B;IACtE,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,WAAW,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,kDAAyC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,QAA+B,CAAC;YACpD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA+B,CAAC;YACpD,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA+B,CAAC;YACpD,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC,UAAU,CAAC,kBAAkB,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC9D,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC;IAEjD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,yEAAyE;AACzE,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCjB,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,sBAAsB,CAAC,OAA+B;IACpE,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,kDAAyC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,QAA6B,CAAC;YAClD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA6B,CAAC;YAClD,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA6B,CAAC;YAClD,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAE/C,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,0DAA0D;AAC1D,MAAM,MAAM,GAAG;;;;;;;;;CASd,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,OAA+B;IACjE,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG,kDAAyC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,iBAAiB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA0B,CAAC;YAC/C,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,iBAAiB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA0B,CAAC;YAC/C,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,iBAAiB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,QAA0B,CAAC;YAC/C,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;IAE5C,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { EDLCalcBasicGeometry, EDLCalcFullGeometry, EDLFilterGeometry, EDLMixGeometry } from \"../CachedGeometry\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderComponent, VariableType } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { Texture2DHandle } from \"../Texture\";\r\nimport { assignFragColor } from \"./Fragment\";\r\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\r\n\r\n// This shader calculates a more basic version of EDL, and only for the original size, so single pass\r\nconst calcBasicEDL = `\r\n float strength = u_pointCloudEDL1.x;\r\n float scaleFactor = u_pointCloudEDL1.z;\r\n float pixRadius = u_pointCloudEDL1.y;\r\n vec2 invTexSize = u_texInfo.xy;\r\n float is3d = u_pointCloudEDL1.w;\r\n\r\n vec4 color = TEXTURE(u_colorTexture, v_texCoord);\r\n if (color.a == 0.0)\r\n discard;\r\n else {\r\n const vec2 neighbors[8] = vec2[8] ( //neighbor relative position\r\n vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),\r\n vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));\r\n float depth = TEXTURE(u_depthTexture, v_texCoord).r;\r\n float sum = 0.0;\r\n vec2 posScale = pixRadius * invTexSize;\r\n // contribution of each neighbor\r\n // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud\r\n for (int c = 0; c < 8; c++) {\r\n vec2 nRelPos = posScale * neighbors[c];\r\n vec2 nPos = v_texCoord + nRelPos;\r\n float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth\r\n sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN));\r\n }\r\n float f = sum / 8.0;\r\n f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5\r\n return vec4(f * color.rgb, 1.0);\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport function createEDLCalcBasicProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, calcBasicEDL);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n\r\n frag.addUniform(\"u_texInfo\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_texInfo\", (uniform, params) => {\r\n const geom = params.geometry as EDLCalcBasicGeometry;\r\n uniform.setUniform3fv(geom.texInfo);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_colorTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_colorTexture\", (uniform, params) => {\r\n const geom = params.geometry as EDLCalcBasicGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.colorTexture, TextureUnit.Zero);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\r\n const geom = params.geometry as EDLCalcBasicGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.One);\r\n });\r\n });\r\n\r\n // Uniforms based on the PointCloudDisplaySettings.\r\n frag.addUniform(\"u_pointCloudEDL1\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_pointCloudEDL1\", (uniform, params) => {\r\n params.target.uniforms.realityModel.pointCloud.bindEDL1(uniform);\r\n });\r\n });\r\n\r\n builder.vert.headerComment = \"//!V! EDLCalcBasic\";\r\n builder.frag.headerComment = \"//!F! EDLCalcBasic\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n\r\n// This shader calculates the full version of EDL, and can be run at full, 1/2 and 1/4 scale\r\nconst calcFullEDL = `\r\n float strength = u_pointCloudEDL1.x;\r\n float scaleFactor = u_pointCloudEDL1.z;\r\n float pixRadius = u_pointCloudEDL1.y;\r\n float scale = u_texInfo.z; // 1, 2, 4\r\n vec2 invTexSize = u_texInfo.xy;\r\n float is3d = u_pointCloudEDL1.w;\r\n\r\n vec4 color = TEXTURE(u_colorTexture, v_texCoord);\r\n if (color.a == 0.0)\r\n return color;\r\n else {\r\n const vec2 neighbors[8] = vec2[8] ( //neighbor relative position\r\n vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),\r\n vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));\r\n float depth = TEXTURE(u_depthTexture, v_texCoord).r;\r\n float sum = 0.0;\r\n vec2 posScale = pixRadius * invTexSize;\r\n // contribution of each neighbor\r\n // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud\r\n for (int c = 0; c < 8; c++) {\r\n vec2 nRelPos = posScale * neighbors[c];\r\n vec2 nPos = v_texCoord + nRelPos;\r\n float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth\r\n sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN)) / scale;\r\n }\r\n float f = sum / 8.0;\r\n f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5\r\n return vec4(f * color.rgb, 1.0);\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport function createEDLCalcFullProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, calcFullEDL);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n\r\n frag.addUniform(\"u_texInfo\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_texInfo\", (uniform, params) => {\r\n const geom = params.geometry as EDLCalcFullGeometry;\r\n uniform.setUniform3fv(geom.texInfo);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_colorTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_colorTexture\", (uniform, params) => {\r\n const geom = params.geometry as EDLCalcFullGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.colorTexture, TextureUnit.Zero);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\r\n const geom = params.geometry as EDLCalcFullGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.One);\r\n });\r\n });\r\n\r\n // Uniforms based on the PointCloudDisplaySettings.\r\n frag.addUniform(\"u_pointCloudEDL1\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_pointCloudEDL1\", (uniform, params) => {\r\n params.target.uniforms.realityModel.pointCloud.bindEDL1(uniform);\r\n });\r\n });\r\n\r\n builder.vert.headerComment = \"//!V! EDLCalcFull\";\r\n builder.frag.headerComment = \"//!F! EDLCalcFull\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n\r\n// This shader filters the EDL image, and can be run at 1/2 and 1/4 scale\r\nconst filterEDL = `\r\n // NB: this bilateral filter hardcodes spatialSigma to 2.0 and depthSigma to 0.4, with halfSize = 2\r\n float distCoefs[] = float[] (\r\n 1.0, 0.9692332344763441, 0.8824969025845955, 0.9692332344763441, 0.9394130628134758,\r\n 0.8553453273074225, 0.8824969025845955, 0.8553453273074225, 0.8553453273074225, 0.7788007830714049);\r\n const float depthSigma = 0.4;\r\n vec2 invTexSize = u_texInfo.xy;\r\n\r\n float depth = TEXTURE(u_depthTexture, v_texCoord).r;\r\n float wsum = 0.0; // sum of all weights\r\n vec3 csum = vec3(0.0); // sum of all contributions\r\n vec2 coordi = vec2(0.0, 0.0); // ith neighbor position x,y\r\n\r\n for (int c = -2; c <= 2; c++) {\r\n coordi.x = float(c) * invTexSize.x;\r\n int cabs = (c < 0) ? -c : c;\r\n\r\n for (int d = -2; d <= 2; d++) {\r\n coordi.y = float(d) * invTexSize.y;\r\n vec4 ci = TEXTURE(u_colorTexture, v_texCoord + coordi); // neighbor color\r\n\r\n //pixel distance based damping\r\n int dabs = (d < 0) ? -d : d;\r\n float fi = distCoefs[cabs * 3 + dabs];\r\n\r\n //pixel depth difference based damping\r\n float zi = TEXTURE(u_depthTexture, v_texCoord + coordi).r; // neighbor depth\r\n float dz = (depth - zi) / depthSigma;\r\n fi *= exp(-dz * dz / 2.0);\r\n\r\n csum += ci.rgb * fi;\r\n wsum += fi;\r\n }\r\n }\r\n return vec4(csum / wsum, 1.0);\r\n`;\r\n\r\n/** @internal */\r\nexport function createEDLFilterProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, filterEDL);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n\r\n frag.addUniform(\"u_texInfo\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_texInfo\", (uniform, params) => {\r\n const geom = params.geometry as EDLFilterGeometry;\r\n uniform.setUniform3fv(geom.texInfo);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_colorTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_colorTexture\", (uniform, params) => {\r\n const geom = params.geometry as EDLFilterGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.colorTexture, TextureUnit.Zero);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\r\n const geom = params.geometry as EDLFilterGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.One);\r\n });\r\n });\r\n\r\n builder.vert.headerComment = \"//!V! EDLFilter\";\r\n builder.frag.headerComment = \"//!F! EDLFilter\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n\r\n// This shader mixes the 3 EDL images into the final image\r\nconst mixEDL = `\r\n vec4 col1 = TEXTURE(u_colorTexture1, v_texCoord);\r\n if (col1.a == 0.0)\r\n discard;\r\n else {\r\n vec3 col2 = TEXTURE(u_colorTexture2, v_texCoord).rgb;\r\n vec3 col4 = TEXTURE(u_colorTexture4, v_texCoord).rgb;\r\n return vec4 ((u_weights.x * col1.rgb + u_weights.y * col2 + u_weights.z * col4) / (u_weights.x + u_weights.y + u_weights.z), 1.0);\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport function createEDLMixProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, mixEDL);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n\r\n frag.addUniform(\"u_colorTexture1\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_colorTexture1\", (uniform, params) => {\r\n const geom = params.geometry as EDLMixGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.colorTexture1, TextureUnit.Zero);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_colorTexture2\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_colorTexture2\", (uniform, params) => {\r\n const geom = params.geometry as EDLMixGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.colorTexture2, TextureUnit.One);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_colorTexture4\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_colorTexture4\", (uniform, params) => {\r\n const geom = params.geometry as EDLMixGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.colorTexture4, TextureUnit.Two);\r\n });\r\n });\r\n\r\n // Uniforms based on the PointCloudDisplaySettings.\r\n frag.addUniform(\"u_weights\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_weights\", (uniform, params) => {\r\n params.target.uniforms.realityModel.pointCloud.bindEDL2(uniform);\r\n });\r\n });\r\n\r\n builder.vert.headerComment = \"//!V! EDLMix\";\r\n builder.frag.headerComment = \"//!F! EDLMix\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"EDL.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/EDL.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 { EDLCalcBasicGeometry, EDLCalcFullGeometry, EDLFilterGeometry, EDLMixGeometry } from \"../CachedGeometry\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { FragmentShaderComponent, VariableType } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { Texture2DHandle } from \"../Texture\";\nimport { assignFragColor } from \"./Fragment\";\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\n\n// This shader calculates a more basic version of EDL, and only for the original size, so single pass\nconst calcBasicEDL = `\n float strength = u_pointCloudEDL1.x;\n float scaleFactor = u_pointCloudEDL1.z;\n float pixRadius = u_pointCloudEDL1.y;\n vec2 invTexSize = u_texInfo.xy;\n float is3d = u_pointCloudEDL1.w;\n\n vec4 color = TEXTURE(u_colorTexture, v_texCoord);\n if (color.a == 0.0)\n discard;\n else {\n const vec2 neighbors[8] = vec2[8] ( //neighbor relative position\n vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),\n vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));\n float depth = TEXTURE(u_depthTexture, v_texCoord).r;\n float sum = 0.0;\n vec2 posScale = pixRadius * invTexSize;\n // contribution of each neighbor\n // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud\n for (int c = 0; c < 8; c++) {\n vec2 nRelPos = posScale * neighbors[c];\n vec2 nPos = v_texCoord + nRelPos;\n float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth\n sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN));\n }\n float f = sum / 8.0;\n f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5\n return vec4(f * color.rgb, 1.0);\n }\n`;\n\n/** @internal */\nexport function createEDLCalcBasicProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, calcBasicEDL);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n\n frag.addUniform(\"u_texInfo\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_texInfo\", (uniform, params) => {\n const geom = params.geometry as EDLCalcBasicGeometry;\n uniform.setUniform3fv(geom.texInfo);\n });\n });\n\n frag.addUniform(\"u_colorTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_colorTexture\", (uniform, params) => {\n const geom = params.geometry as EDLCalcBasicGeometry;\n Texture2DHandle.bindSampler(uniform, geom.colorTexture, TextureUnit.Zero);\n });\n });\n\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\n const geom = params.geometry as EDLCalcBasicGeometry;\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.One);\n });\n });\n\n // Uniforms based on the PointCloudDisplaySettings.\n frag.addUniform(\"u_pointCloudEDL1\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_pointCloudEDL1\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bindEDL1(uniform);\n });\n });\n\n builder.vert.headerComment = \"//!V! EDLCalcBasic\";\n builder.frag.headerComment = \"//!F! EDLCalcBasic\";\n\n return builder.buildProgram(context);\n}\n\n// This shader calculates the full version of EDL, and can be run at full, 1/2 and 1/4 scale\nconst calcFullEDL = `\n float strength = u_pointCloudEDL1.x;\n float scaleFactor = u_pointCloudEDL1.z;\n float pixRadius = u_pointCloudEDL1.y;\n float scale = u_texInfo.z; // 1, 2, 4\n vec2 invTexSize = u_texInfo.xy;\n float is3d = u_pointCloudEDL1.w;\n\n vec4 color = TEXTURE(u_colorTexture, v_texCoord);\n if (color.a == 0.0)\n return color;\n else {\n const vec2 neighbors[8] = vec2[8] ( //neighbor relative position\n vec2( 1.0, 0.0), vec2( 0.70710678, 0.70710678), vec2(0.0, 1.0), vec2(-0.70710678, 0.70710678),\n vec2(-1.0, 0.0), vec2(-0.70710678, -0.70710678), vec2(0.0, -1.0), vec2( 0.70710678, -0.70710678));\n float depth = TEXTURE(u_depthTexture, v_texCoord).r;\n float sum = 0.0;\n vec2 posScale = pixRadius * invTexSize;\n // contribution of each neighbor\n // NOTE: this is currently using neighbor depths regardless of if they were written by point cloud\n for (int c = 0; c < 8; c++) {\n vec2 nRelPos = posScale * neighbors[c];\n vec2 nPos = v_texCoord + nRelPos;\n float zN = TEXTURE(u_depthTexture, nPos).r; // neighbor depth\n sum += max(0.0, (is3d > 0.5) ? depth - zN : log (depth/zN)) / scale;\n }\n float f = sum / 8.0;\n f = exp(-f * 33.5 * strength * scaleFactor); // 33.5 factor to aim for a typical (unfactored) strength of 5\n return vec4(f * color.rgb, 1.0);\n }\n`;\n\n/** @internal */\nexport function createEDLCalcFullProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, calcFullEDL);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n\n frag.addUniform(\"u_texInfo\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_texInfo\", (uniform, params) => {\n const geom = params.geometry as EDLCalcFullGeometry;\n uniform.setUniform3fv(geom.texInfo);\n });\n });\n\n frag.addUniform(\"u_colorTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_colorTexture\", (uniform, params) => {\n const geom = params.geometry as EDLCalcFullGeometry;\n Texture2DHandle.bindSampler(uniform, geom.colorTexture, TextureUnit.Zero);\n });\n });\n\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\n const geom = params.geometry as EDLCalcFullGeometry;\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.One);\n });\n });\n\n // Uniforms based on the PointCloudDisplaySettings.\n frag.addUniform(\"u_pointCloudEDL1\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_pointCloudEDL1\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bindEDL1(uniform);\n });\n });\n\n builder.vert.headerComment = \"//!V! EDLCalcFull\";\n builder.frag.headerComment = \"//!F! EDLCalcFull\";\n\n return builder.buildProgram(context);\n}\n\n// This shader filters the EDL image, and can be run at 1/2 and 1/4 scale\nconst filterEDL = `\n // NB: this bilateral filter hardcodes spatialSigma to 2.0 and depthSigma to 0.4, with halfSize = 2\n float distCoefs[] = float[] (\n 1.0, 0.9692332344763441, 0.8824969025845955, 0.9692332344763441, 0.9394130628134758,\n 0.8553453273074225, 0.8824969025845955, 0.8553453273074225, 0.8553453273074225, 0.7788007830714049);\n const float depthSigma = 0.4;\n vec2 invTexSize = u_texInfo.xy;\n\n float depth = TEXTURE(u_depthTexture, v_texCoord).r;\n float wsum = 0.0; // sum of all weights\n vec3 csum = vec3(0.0); // sum of all contributions\n vec2 coordi = vec2(0.0, 0.0); // ith neighbor position x,y\n\n for (int c = -2; c <= 2; c++) {\n coordi.x = float(c) * invTexSize.x;\n int cabs = (c < 0) ? -c : c;\n\n for (int d = -2; d <= 2; d++) {\n coordi.y = float(d) * invTexSize.y;\n vec4 ci = TEXTURE(u_colorTexture, v_texCoord + coordi); // neighbor color\n\n //pixel distance based damping\n int dabs = (d < 0) ? -d : d;\n float fi = distCoefs[cabs * 3 + dabs];\n\n //pixel depth difference based damping\n float zi = TEXTURE(u_depthTexture, v_texCoord + coordi).r; // neighbor depth\n float dz = (depth - zi) / depthSigma;\n fi *= exp(-dz * dz / 2.0);\n\n csum += ci.rgb * fi;\n wsum += fi;\n }\n }\n return vec4(csum / wsum, 1.0);\n`;\n\n/** @internal */\nexport function createEDLFilterProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, filterEDL);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n\n frag.addUniform(\"u_texInfo\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_texInfo\", (uniform, params) => {\n const geom = params.geometry as EDLFilterGeometry;\n uniform.setUniform3fv(geom.texInfo);\n });\n });\n\n frag.addUniform(\"u_colorTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_colorTexture\", (uniform, params) => {\n const geom = params.geometry as EDLFilterGeometry;\n Texture2DHandle.bindSampler(uniform, geom.colorTexture, TextureUnit.Zero);\n });\n });\n\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\n const geom = params.geometry as EDLFilterGeometry;\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.One);\n });\n });\n\n builder.vert.headerComment = \"//!V! EDLFilter\";\n builder.frag.headerComment = \"//!F! EDLFilter\";\n\n return builder.buildProgram(context);\n}\n\n// This shader mixes the 3 EDL images into the final image\nconst mixEDL = `\n vec4 col1 = TEXTURE(u_colorTexture1, v_texCoord);\n if (col1.a == 0.0)\n discard;\n else {\n vec3 col2 = TEXTURE(u_colorTexture2, v_texCoord).rgb;\n vec3 col4 = TEXTURE(u_colorTexture4, v_texCoord).rgb;\n return vec4 ((u_weights.x * col1.rgb + u_weights.y * col2 + u_weights.z * col4) / (u_weights.x + u_weights.y + u_weights.z), 1.0);\n }\n`;\n\n/** @internal */\nexport function createEDLMixProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, mixEDL);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n\n frag.addUniform(\"u_colorTexture1\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_colorTexture1\", (uniform, params) => {\n const geom = params.geometry as EDLMixGeometry;\n Texture2DHandle.bindSampler(uniform, geom.colorTexture1, TextureUnit.Zero);\n });\n });\n\n frag.addUniform(\"u_colorTexture2\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_colorTexture2\", (uniform, params) => {\n const geom = params.geometry as EDLMixGeometry;\n Texture2DHandle.bindSampler(uniform, geom.colorTexture2, TextureUnit.One);\n });\n });\n\n frag.addUniform(\"u_colorTexture4\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_colorTexture4\", (uniform, params) => {\n const geom = params.geometry as EDLMixGeometry;\n Texture2DHandle.bindSampler(uniform, geom.colorTexture4, TextureUnit.Two);\n });\n });\n\n // Uniforms based on the PointCloudDisplaySettings.\n frag.addUniform(\"u_weights\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_weights\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bindEDL2(uniform);\n });\n });\n\n builder.vert.headerComment = \"//!V! EDLMix\";\n builder.frag.headerComment = \"//!F! EDLMix\";\n\n return builder.buildProgram(context);\n}\n"]}
@@ -15,31 +15,31 @@ import { addEvsmExponent, warpDepth } from "./SolarShadowMapping";
15
15
  // Positions are in NDC [-1..1]. Compute UV params in [0..1]
16
16
  const computeTexCoord = "v_texCoord = (rawPosition.xy + 1.0) * 0.5;";
17
17
  const computePosition = "return rawPos;";
18
- const computeEVSM = `
19
- const float sampleWeight = 0.25;
20
- vec4 average = vec4(0.0);
21
- vec2 tc = v_texCoord - u_stepSize * 0.5; // v_texCoord starts in between the 4 texels
22
-
23
- float depth = TEXTURE(u_depthTexture, tc).r;
24
- vec2 vsmDepth = warpDepth(depth, u_evsmExponent);
25
- average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
26
-
27
- tc.x += u_stepSize.x;
28
- depth = TEXTURE(u_depthTexture, tc).r;
29
- vsmDepth = warpDepth(depth, u_evsmExponent);
30
- average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
31
-
32
- tc.y += u_stepSize.y;
33
- depth = TEXTURE(u_depthTexture, tc).r;
34
- vsmDepth = warpDepth(depth, u_evsmExponent);
35
- average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
36
-
37
- tc.x -= u_stepSize.x;
38
- depth = TEXTURE(u_depthTexture, tc).r;
39
- vsmDepth = warpDepth(depth, u_evsmExponent);
40
- average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
41
-
42
- return average;
18
+ const computeEVSM = `
19
+ const float sampleWeight = 0.25;
20
+ vec4 average = vec4(0.0);
21
+ vec2 tc = v_texCoord - u_stepSize * 0.5; // v_texCoord starts in between the 4 texels
22
+
23
+ float depth = TEXTURE(u_depthTexture, tc).r;
24
+ vec2 vsmDepth = warpDepth(depth, u_evsmExponent);
25
+ average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
26
+
27
+ tc.x += u_stepSize.x;
28
+ depth = TEXTURE(u_depthTexture, tc).r;
29
+ vsmDepth = warpDepth(depth, u_evsmExponent);
30
+ average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
31
+
32
+ tc.y += u_stepSize.y;
33
+ depth = TEXTURE(u_depthTexture, tc).r;
34
+ vsmDepth = warpDepth(depth, u_evsmExponent);
35
+ average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
36
+
37
+ tc.x -= u_stepSize.x;
38
+ depth = TEXTURE(u_depthTexture, tc).r;
39
+ vsmDepth = warpDepth(depth, u_evsmExponent);
40
+ average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);
41
+
42
+ return average;
43
43
  `;
44
44
  /** @internal */
45
45
  export function createEVSMProgram(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"EVSMFromDepth.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/EVSMFromDepth.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAA2B,cAAc,EAA0D,MAAM,kBAAkB,CAAC;AAEnI,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElE,mGAAmG;AAEnG,4DAA4D;AAC5D,MAAM,eAAe,GAAG,4CAA4C,CAAC;AACrE,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,OAA+B;IAC/D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,iDAAwC,eAAe,CAAC,CAAC;IACjE,OAAO,CAAC,wBAAwB,CAAC,YAAY,6BAAqB,eAAe,CAAC,CAAC;IAEnF,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;YAC7C,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,YAAY,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;YAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,mDAA2C,WAAW,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,kDAAyC,eAAe,CAAC,CAAC;IAElE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;IAEnD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { EVSMGeometry } from \"../CachedGeometry\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderComponent, ProgramBuilder, VariablePrecision, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { Texture2DHandle } from \"../Texture\";\r\nimport { assignFragColor } from \"./Fragment\";\r\nimport { addEvsmExponent, warpDepth } from \"./SolarShadowMapping\";\r\n\r\n// This shader reads the depth texture, converts it to EVSM values, then averages those down 4 to 1\r\n\r\n// Positions are in NDC [-1..1]. Compute UV params in [0..1]\r\nconst computeTexCoord = \"v_texCoord = (rawPosition.xy + 1.0) * 0.5;\";\r\nconst computePosition = \"return rawPos;\";\r\n\r\nconst computeEVSM = `\r\n const float sampleWeight = 0.25;\r\n vec4 average = vec4(0.0);\r\n vec2 tc = v_texCoord - u_stepSize * 0.5; // v_texCoord starts in between the 4 texels\r\n\r\n float depth = TEXTURE(u_depthTexture, tc).r;\r\n vec2 vsmDepth = warpDepth(depth, u_evsmExponent);\r\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\r\n\r\n tc.x += u_stepSize.x;\r\n depth = TEXTURE(u_depthTexture, tc).r;\r\n vsmDepth = warpDepth(depth, u_evsmExponent);\r\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\r\n\r\n tc.y += u_stepSize.y;\r\n depth = TEXTURE(u_depthTexture, tc).r;\r\n vsmDepth = warpDepth(depth, u_evsmExponent);\r\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\r\n\r\n tc.x -= u_stepSize.x;\r\n depth = TEXTURE(u_depthTexture, tc).r;\r\n vsmDepth = warpDepth(depth, u_evsmExponent);\r\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\r\n\r\n return average;\r\n`;\r\n\r\n/** @internal */\r\nexport function createEVSMProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(undefined, false));\r\n const vert = builder.vert;\r\n const frag = builder.frag;\r\n\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n builder.addInlineComputedVarying(\"v_texCoord\", VariableType.Vec2, computeTexCoord);\r\n\r\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\r\n const geom = params.geometry as EVSMGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.Zero);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_stepSize\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_stepSize\", (uniform, params) => {\r\n const geom = params.geometry as EVSMGeometry;\r\n uniform.setUniform2fv(geom.stepSize);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n addEvsmExponent(frag);\r\n\r\n frag.addFunction(warpDepth);\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeEVSM);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n\r\n builder.vert.headerComment = \"//!V! EVSMFromDepth\";\r\n builder.frag.headerComment = \"//!F! EVSMFromDepth\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"EVSMFromDepth.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/EVSMFromDepth.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAA2B,cAAc,EAA0D,MAAM,kBAAkB,CAAC;AAEnI,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElE,mGAAmG;AAEnG,4DAA4D;AAC5D,MAAM,eAAe,GAAG,4CAA4C,CAAC;AACrE,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,OAA+B;IAC/D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,iDAAwC,eAAe,CAAC,CAAC;IACjE,OAAO,CAAC,wBAAwB,CAAC,YAAY,6BAAqB,eAAe,CAAC,CAAC;IAEnF,IAAI,CAAC,UAAU,CAAC,gBAAgB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;YAC7C,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,YAAY,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;YAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,mDAA2C,WAAW,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,kDAAyC,eAAe,CAAC,CAAC;IAElE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;IAEnD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,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 */\n\nimport { AttributeMap } from \"../AttributeMap\";\nimport { EVSMGeometry } from \"../CachedGeometry\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { FragmentShaderComponent, ProgramBuilder, VariablePrecision, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { Texture2DHandle } from \"../Texture\";\nimport { assignFragColor } from \"./Fragment\";\nimport { addEvsmExponent, warpDepth } from \"./SolarShadowMapping\";\n\n// This shader reads the depth texture, converts it to EVSM values, then averages those down 4 to 1\n\n// Positions are in NDC [-1..1]. Compute UV params in [0..1]\nconst computeTexCoord = \"v_texCoord = (rawPosition.xy + 1.0) * 0.5;\";\nconst computePosition = \"return rawPos;\";\n\nconst computeEVSM = `\n const float sampleWeight = 0.25;\n vec4 average = vec4(0.0);\n vec2 tc = v_texCoord - u_stepSize * 0.5; // v_texCoord starts in between the 4 texels\n\n float depth = TEXTURE(u_depthTexture, tc).r;\n vec2 vsmDepth = warpDepth(depth, u_evsmExponent);\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\n\n tc.x += u_stepSize.x;\n depth = TEXTURE(u_depthTexture, tc).r;\n vsmDepth = warpDepth(depth, u_evsmExponent);\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\n\n tc.y += u_stepSize.y;\n depth = TEXTURE(u_depthTexture, tc).r;\n vsmDepth = warpDepth(depth, u_evsmExponent);\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\n\n tc.x -= u_stepSize.x;\n depth = TEXTURE(u_depthTexture, tc).r;\n vsmDepth = warpDepth(depth, u_evsmExponent);\n average += sampleWeight * vec4(vsmDepth.xy, vsmDepth.xy * vsmDepth.xy);\n\n return average;\n`;\n\n/** @internal */\nexport function createEVSMProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(undefined, false));\n const vert = builder.vert;\n const frag = builder.frag;\n\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\n builder.addInlineComputedVarying(\"v_texCoord\", VariableType.Vec2, computeTexCoord);\n\n frag.addUniform(\"u_depthTexture\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_depthTexture\", (uniform, params) => {\n const geom = params.geometry as EVSMGeometry;\n Texture2DHandle.bindSampler(uniform, geom.depthTexture, TextureUnit.Zero);\n });\n });\n\n frag.addUniform(\"u_stepSize\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_stepSize\", (uniform, params) => {\n const geom = params.geometry as EVSMGeometry;\n uniform.setUniform2fv(geom.stepSize);\n });\n }, VariablePrecision.High);\n\n addEvsmExponent(frag);\n\n frag.addFunction(warpDepth);\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeEVSM);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n\n builder.vert.headerComment = \"//!V! EVSMFromDepth\";\n builder.frag.headerComment = \"//!F! EVSMFromDepth\";\n\n return builder.buildProgram(context);\n}\n"]}