Releases: NASA-AMMOS/3DTilesRendererJS
Releases · NASA-AMMOS/3DTilesRendererJS
Release list
v0.4.20
Added
- Added support for Babylon.js
- TilesRenderer: Add "queued" status and stats counter for tiles in addition to "downloading" and "parsing".
- TilesRenderer now removes tiles from the download queue if they are no longer needed for rendering. Tiles will continue to process if they are mid-download or parsing.
- I3DMLoader: Added support for oct-encoded normals.
- TilesRenderer: Added "optimizedLoadStrategy" and "loadSiblings" options. These are experimental settings and are planned to be the default and only tile load strategy.
- R3F: added "EllipsoidContext" with "ellipsoid" and "frame" fields
- Export FeatureTable, BatchTable classes.
- TilingScheme: "tileSplitX" and "tileSplitY" variables per tile
- XYZImageFormat: add "projection" option and ability to set tile settings per-level.
- DebugTilesPlugin: add "update" function so settings can be updated without updating tiles.
- LoadRegionPlugin: Added "calculateDistance" function to regions, used for tile load sorting.
- TilesRenderer: Added "maxTilesProcessed" field to adjust how much time is spent per frame processing tiles during traversal.
Changed
- ImageOverlayPlugin: Textures are now assumed to be straight alpha.
- ImageOverlayPlugin: Refactor image overlays to afford drawing directly to region textures.
- GeoJSONOverlay: Add "redraw" function to redraw the geojson once it's changed
- Renamed the "cached" tile subfield to "engineData".
- Moved a number of tile fields into "traversal" and "internal" subfields on "tile" object.
- ImplicitTilingPlugin: Moved implicit tiling fields onto a new "implicitTilingData" object.
- DebugTilesPlugin: Replaced "getTileInformationFromActiveObject" function with "getTileFromObject3D".
- DebugTilesPlugin: Add transparent mesh to box helper visualization.
- TilesRenderer: Moved "update-before", "update-after" events to TilesRendererBase.
- Plugins: moved handling of "doTilesNeedUpdate" to TilesRendererBase.
- TilesRenderer: "dispose-model" even is now fired before "dispose" is called on sub objects.
- Simplified handling of processed children, removed
internal.processedChildren.
Fixed
- Fix mouse offset in Controls.
- Fixed case where DebugTilesPlugin could throw an error when toggling "enabled".
- DebugTilesPlugin: Fixed case where "enabled" was not resepected if set to false on creation.
v0.4.19
Changed
- Moved "GoogleCloudAuthPlugin" to "3d-tiles-renderer/core/plugins".
- Moved "CesiumIonAuthPlugin" to "3d-tiles-renderer/core/plugins".
- CesiumIonAuthPlugin: Auto-registration of QuantizedMesh and TMS plugins has been removed. See "assetTypeHandler" to register the necessary plugins as-needed.
- TilesRenderer: "load-tile-set" event has been renamed to "load-tileset"
- TilesRenderer: "load-tileset" payload member "tileSet" has been renamed to "tileset"
- TilesRenderer: "rootTileSet" member has been renamed "rootTileset"
- TilesRenderer: "loadRootTileSet" function has been renamed to "loadRootTileSet"
- TilesRenderer: "preprocessTileSet" function has been renamed to "preprocessTileSet"
- Documentation and other variable names have adjusted any instances of "tile set" to "tileset" to align with the 3D Tiles specification nomenclature.
Added
- Added "assetTypeHandler" to "CesiumIonAuthPlugin" for registering plugins based on loaded asset type.
- Empty "addEventListener" and "removeEventListener" implementations to TilesRendererBase.
- ImageOverlay: Added "alphaMask", "alphaInvert" options.
- CesiumIonOverlay: Added automatic support Bing & Google Maps overlays.
- QuantizedMeshLoader, QuantizedMeshPlugin: Added "generateNormals" option for cases where normals are not embedded.
- Added "load-root-tileset" event.
Fixed
- Controls: Fixed case where pointer state may not have been reset correctly.
- ImageOverlayPlugin: "enableTileSplitting" now works with "ADDITIVE" tiles.
- EnforceNonZeroErrorPlugin: adjusted error is now based on the first parent with geometric error encountered.
- Fixed up some types.
- Improved "Bounding OBB" and "Bounding Sphere" generation for "Region" bounding volumes.
- PriorityQueue: fix case where entries were not being moved correctly by "removeByFilter".
- ImageOverlayPlugin: Fix case where overlay data were not being handled correctly when adjusting frames.
- ImageOverlayPlugin: Added a more clear error when "renderer" is not provided.
- ImageFormatPlugin: Adjust the plugin to account for aspect ratio in error calculation.
v0.4.18
Added
- Support for skipping the display of tiles that have a higher geometric error than their parents to accommodate workaronds for some erroneous data sets.
- A small optimization for tile traversal.
- ImageOverlays: Added support for a "preprocessUrl" function.
Fixed
- Added and fixed some types.
- Removed referenced to
TextureUtilswhich was causing tree shaking issues. - XYZ Tiles Plugins: Removed unused "bounds" argument.
- BatchedTilesPlugin: Fix case where the plugin would throw an error if a mesh with no texture were encountered first.
- Update types for GLTFExtensionPlugin.
- Adjust minimum three.js version to r167 from r166. The project required an import for Matrix2, only available in 167.
- ImageOverlayPlugin: Fix some platforms displaying untextured triangles in some cases.
- TilesRenderer: Fixed "removePluginByName" not removing the plugin correctly.
- WMS, WMTS ImageOverlay, TilesPlugin: Plugins now accept CRS definitions like "CRS:84".
Changed
- WMTSCapabilitiesLoader, WMSCapabilitiesLoader: Loaders no longer automatically convert CRS tokens to an "EPSG:XXXX" variant.
v0.4.17
Added
- LoadRegionPlugin: Added support for "mask" regions that allow for only loading tiles within the shape.
- Added WMSTilesOverlay & WMSTilesPlugin for displaying and overlaying WMS image tiles.
- I3DMLoader: Add support for quantized position data.
- Added in-progress "GeoJSONOverlay" for overlaying GeoJSON data.
Fixed
- Fixed types not being defined correctly in the package.json.
- ImageOverlays: Fixed case where overlay textures were generated even when no content was present.
- TilesRenderer.manager checking for a non existent "preprocessURL" function when transforming a URL.
v0.4.16
v0.4.15
Changed
- Adjusted the package to export a bundled version of the library.
- Some execution timing of react components may have changed.
- LoadRegionPlugin: "Region" constructors have changed to take options as an object rather than individual arguments.
- TilesRenderer Plugins: Return value for "calculateTileViewError" has been added.
Fixed
- Fixed bug introduced when loading GoogleMapsOverlay with ImageOverlayPlugin.
- ImageFormatPlugin types.
- DebugTilesRenderer: fix case where disabling and reenabling the plugin could cause errors.
- QuantizedMeshPlugin: fix case where quantized mesh could not expand to the lowest levels of detail.
- Fixed behavior of TilesRenderer and TilesPlugin components in "strict mode" with React 19.
- Improved performance of extracting url file extensions.
- Fixed case where a loaders "working path" was not generated correctly.
- BatchTable, FeatureTable: Filter the reserved "extensions" field from the batch data "getKeys" function.
v0.4.14
Fixed
- EnvironmentControls: Fix case where camera can jump when moving the camera and then zoom in.
- ImageOverlayPlugin & ImageFormatPlugin not working together when splitting tile geometry.
Added
- Support for WMTS image overlays.
- Added WMTSTilesPlugin for generating a WMTS ellipsoid.
- WMTSCapabilitiesLoader class for loading and parsing WMTS capabilities xml.
Changed
- ImageFormatPlugins: Deprecate "pixelSize" option. The tile group can be scaled, instead.
- ImageFormatPlugins: Adjusted the way geometric error was generated so it does not reach 0.
v0.4.13
Added
- XYZTilesPlugin, XYZImageOverlay: Add support for inverted Y tile order, ability to specify bounds.
Fixed
- ImageFormatPlugin: Fixed case where an error could throw if a texture was loaded twice in minor corner cases.
- GoogleCloudAuthPlugin: Use the default load queue parameters.
- GoogleCloudAuthPlugin: Fix issue relating to assigned auth url.
- TileCompressionPlugin: Fix transform not working correctly when model is rotated, scaled.
- GlobeControls: Fix case where the pivot point visualization was being inconsistently shown when zoomed out.
- TilesRenderer: Prioritize tile downloads by tile error relative to error target.
- GoogleCloudAuthPlugin, CesiumIonAuthPlugin: Ensure the new authentication and session token are used when an initial request fails when "autoRefreshToken" is enabled.
- GlobeControls, EnvironmentControls: Improve the controls behavior when dragging off of the canvas or over other dom elements.
- TilesRenderer: Improved some traversal logic, corrected behavior when encountering empty tiles.
Changed
- GlobeControls: Dragging operations now end when dragging off the globe.
- PriorityQueue: No longer requires a sort callback. If set to "null" then items are processed in the order added.
v0.4.12
Added
3d-tiles-renderer/core&3d-tiles-renderer/threeexport for dedicated files.3d-tiles-renderer/core/plugins&3d-tiles-renderer/three/pluginsexport for dedicated plugins.- Added
EnforceNonZeroErrorPlugin. - ImageOverlayPlugin: Add support for splitting tiles to match image tile detail.
- ImageOverlayPlugin: Planar projection now only works when the projection is within the range 0, 1 along the z-projection axis.
- ImageOverlayPlugin: Add support for adding downloads to the download queue, tracking used GPU memory in the LRUCache.
Changed
- TilesRenderer: Increased default queue sizes from 1 to 5 for parse queue, 10 to 25 for download queue.
Fixed
- R3F TilesAttributionOverlay not functioning on non-HTTPS domains.
- Support for React 19 while maintaining React 18 support.
- QuantizedMeshPlugin: Fixed case where availability metadata was not interpreted correctly.
- Fixed case where "screenspace error" could be calculated as "NaN" when the distance to the tile and geometricError are 0.
- UpdateOnChangePlugin: Fix events not being disposed of properly.
- QuantizedMeshPlugin: Only parse a mesh if the extension is "terrain".
- ImageOverlayPlugin: Correctly cancel image tile loading when removing an overlay.
- TilesRenderer: Fix case where load events could be fired on tiles after they had been disposed when the cache is full.
- ImageOverlayPlugin: Reduced the epsilon used for calculating which tiled images need to be loaded to avoid seams.
v0.4.11
Added
- Add "ImageOverlayPlugin".
- DebugTilesRenderer: Added "unlit" option.
- GoogleCloudAuthPlugin: Added support for creating a session that supports loading 2d map tiles.
- Ellipsoid: Added "getOrientedEastNorthUpFrame", "getObjectFrame", "getCartographicFromObjectFrame" functions.
- ReorientationPlugin: Add suppor for setting azimuth, elevation, roll
Fixed
- TilesRendererBase: Fixed plugins not being disposed of correctly.
- GoogleCloudAuthPlugin: Throw an error when the tile root fails to load.
- Fixed some type definitions.
- GlobeControls: Adjust the perspective camera.far calculation to better limit loaded tiles.
- DebugTilesPlugin: Fix case where the plugin could not be disabled before registration.
- Fix case where properties would fail to add if they looked like events with an "on" prefix.
- Simplify the TileFlatteningPlugin implementation.
- ReorientationPlugin: Fix plugin disposal not removing an event correctly.
- ReorientationPlugin: Fix plugin not working if added after TilesRenderer initialization.
- TopoLinesPlugin: Ensure the plugin can be added after TilesRenderer initialization.
- TopoLinesPlugin, TilesFadePlugin, ImageOverlayPlugin: Ensure plugins are resilient to being removed and added again.
- R3F: Fixed case where plugins may not have been able to register before the first call to TilesRenderer.update.
Changed
- Ellipsoid: Deprecated "getAzElRollFromRotationMatrix", "getRotationMatrixFromAzElRoll", "getFrame" functions.
- GlobeControls, EnvironmentControls: Deprecate "setTilesRenderer" function in favor of "setScene" and "setEllipsoid" functions.
- R3F GlobeControls, EnvironmentControls: Add "ellipsoid" and "ellipsoidGroup" properties.