Skip to content

Releases: NASA-AMMOS/3DTilesRendererJS

v0.4.12

13 Jul 05:33
Compare
Choose a tag to compare

Added

  • 3d-tiles-renderer/core & 3d-tiles-renderer/three export for dedicated files.
  • 3d-tiles-renderer/core/plugins & 3d-tiles-renderer/three/plugins export 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

01 Jul 00:48
Compare
Choose a tag to compare

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.

v0.4.10

31 May 02:42
Compare
Choose a tag to compare

Fixed

  • Fixed calls to updateWorldMatrix causing the matrixWorldInverse field to become out of sync.
  • Loader type definitions now extend "LoaderBase".
  • Export QuantizedMeshPlugin from plugins.
  • Moved "optionalDependencies" to "peerDependencies" with an optional flag to avoid quirks with the optional dependencies field.
  • Make QuantizedMeshPlugin more robust to missing fields in layer.json.
  • TileFlatteningPlugin: Fixed disposal throwing an error.
  • Change load-error event field from uri to url as documented.
  • Fixed type definitions for some events.
  • B3DM, I3DM, PNTS Loaders: Fixed case where RTC_CENTER feature would not be parsed correctly.
  • Re-add "load-tile-set" event when child tile sets are loaded.
  • Re-add url to "load-tile-set" event.
  • TMSTilesPlugin: Add support for limited bounds.

Added

  • Ability to resolve to any file in "./src".
  • QuantizedMeshPlugin: Add support for attributions.
  • QuantizedMeshPlugin: Add support for "metadataAvailability".
  • QuantizedMeshPlugin: Add support for auto-filling child tiles from parent data when not present.
  • QuantizedMeshPlugin: Add support for auto-calculating skirth length.

Changed

  • QuantizedMeshPlugin, Image Plugins: Remove internal, custom queue for generating children in favor of TilesRenderer's new process queue.

v0.4.9

06 May 22:31
Compare
Choose a tag to compare

Fixed

  • Structural Metadata: Fixed case where accessor properties do not match the class definition.
  • Fix type definitions for LRUCache.
  • Implicit Subtree files being loaded with incorrect headers.
  • Ambiguous typing.
  • Correctly export TilesFlatteningPlugin.
  • Types: Added file extensions to enable support for older node versions.
  • TilesRenderer: Removed implicit use of "devicePixelRatio" when setting camera resolution to ensure more consistent error target calculations across devices.
  • EnvironmentControls: Adjust event listeners to exit early if controls are disabled.
  • R3F TilesRenderer Component: Fixed case where tiles would not load when using on demand rendering without moving the camera (via needs-update event).

Added

  • QuantizedMeshPlugin: A plugin for loading quantized mesh files.
  • TilesFlatteningPlugin: Added a threshold option to addShape.
  • TilesRenderer: Added "needs-update" event.
  • R3F TilesPlugin: Added support for deep field property assignment.

Changed

  • Internal "force-rerender" function renamed to "needs-render".
  • TilesRenderer: Move check for cameras after update traversal to enable loading the root tile set file without a camera defined.

v0.4.8

07 Apr 03:46
Compare
Choose a tag to compare

Fixed

  • TilesRenderer: No longer logs a warning if no cameras are present and a custom plugin supports tile error.
  • Type definition errors.
  • R3F EastNorthUpFrame: frame will be positioned correctly regardless of parent.
  • TilesRenderer: Fixed screen space error being calculated incorrectly with multiple cameras.
  • EnvironmentControls: Fixed shift key not working as expected.
  • Fixed error caused by loading a glTF file with no scenes.
  • GLTF Metadata Extensions: Fix case where an error would be thrown when non-mesh nodes are present.
  • Fixed case where tile sets with implicit tiling would not be loaded correctly if an external availability buffer was used.
  • Asynchronously process child tiles to avoid processing stalls.
  • CesiumIonPlugin: Forward "autoRefreshToken" value to GoogleCloudAuthPlugin.

Added

  • R3F CompassGizmo: Support for X & Y margin for CompassGizmo.
  • CameraTransitionManager: Expose "alpha" via the change event and class member.
  • Export "TilesRendererEventMap" typescript type.
  • Add support for R3F types.
  • Add "TileFlatteningPlugin".

v0.4.7

03 Mar 00:21
Compare
Choose a tag to compare

Added

  • GlobeControls: If no raycast intersection is fund then fallback to intersecting the tile set globe.
  • EnvironmentControls, GlobeControls: Fix inertia calculations for orthographic cameras.
  • R3F EastNorthUpFrame: Add support for passing the ellipsoid in directly.
  • TilesRenderer.group: Added "matrixWorldInverse" field.
  • Add "LoadRegionPlugin".

Fixed

  • Fix case where the environment and globe controls can have residual inertia after stopping the mouse.
  • Image Format Plugins: Fix case where tiles may not cause update on first load resulting in no tiles rendered.

Changed

  • Deprecated "TilesRenderer.setLatLonToYUp" function.
  • Deprecated "TilesRenderer.errorThreshold" option.
  • Deprecated "TilesRenderer.optimizeRaycast" option.
  • Use "TilesRenderer.group.matrixWorldInverse" across src files to reduce matrix invert operations.

v0.4.6

21 Feb 04:27
Compare
Choose a tag to compare

Added

  • R3F TilesRenderer: Add "enabled" field

Fixed

  • CesiumIonAuthPlugin: Fix the plugin not being disposed of properly.
  • EnvironmentControls: Fix missing pivot mesh ring when rotating the camera.
  • Fix GLTF Metadata plugin not returning matrix values correctly.
  • TMS, XYZ Plugins: Fix case where texture would be distorted due to incorrect vertex placement when using mercator projection.
  • Case where TilesRenderer.root was not initialized before the "load-tile-set" event was fired.
  • R3F TilesRenderer: Update the tile set when a tile set is loaded.
  • ImageFormatPlugins: Fix plugin so it does not preclude updates incorrectly.
  • R3F TilesRenderer: Prevent reinstantiation of all child plugins, objects on options change.
  • R3F EastNorthUpFrame: Automatically update based on ellipsoid updates.
  • EnvironmentControls: Use a zoom approach that is (hopefully) more normalized across platforms.

v0.4.5

14 Feb 14:11
Compare
Choose a tag to compare

Added

  • DeepZoomImage plugin support.
  • TMS tiles plugin support.
  • XYZ tiles plugin support.
  • Add ability to display TMS, XYZ tiles as an ellipsoid or plane.
  • R3F: "SettledObject" and "SettledObjects" components.
  • BatchedTilesPlugin: Add "textureSize" option.

Fixed

  • EnvironmentControls: Fixed circle mesh not hiding when zooming on mobile.
  • BatchedTilesPlugin: Fix case where image bitmaps would not be disposed of correctly when discarding data.
  • BatchedTilesPlugin: Fix small 32-bit floating point math precision problems causing small offsets for globe tiles.
  • Plugins: Fix case where a plugin was not inserted based on priority correctly.
  • EnvironmentControls, GlobeControls: Scale intertial animation based on distance to drag point.

v0.4.4

24 Jan 07:05
Compare
Choose a tag to compare

Added

  • load-error events when model, tile set, and API token requests fail to fetch or parse.
  • CanvasDOMOverlay: Add support for "ref".
  • CameraTransitionManager: Add easeFunction setting.
  • CameraTransitionManager: Add option to pass delta time to the update function.

Fixed

  • Improved the behavior of loadProgress so it "bounces" less during loading by queueing all tiles load immediately (other than cases with external tile sets).
  • Moved the dispatch location of "load-model", "tiles-load-start", and "tiles-load-end" so the behavior is more consistent.

v0.4.3

19 Jan 01:08
Compare
Choose a tag to compare

Added

  • Updated types for EnvironmentControls and GlobeControls.
  • TilesAttributionOverlay: Added "generateAttributions" callback for generating child elements.
  • CameraTransitionManager: Added "toggle" event.
  • CameraTransitionManager: Added support for rotation interpolation.
  • Ellipsoid: Added "getFrame" function.

Changed

  • Moved "visibleTiles" and "activeTiles" sets to the TilesRendererBase class.
  • EnvironmentControls: getPivotPoint function now defaults to the nearest raycast point if the last interacted point is offscreen.

Fixed

  • CanvasDOMOverlay is now correctly positioned at the same spot as the canvas.
  • UnloadTilesPlugin: Fixed incorrect reference to visibleSet rather than visibleTiles.
  • R3F EnvironmentControls, GlobeControls: Add support for "ref", event props.