Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
[0.3.12] - 2022-08-26
Fixed
- B3DMLoader: regression causing RTC_CENTER to not be respected.
Added
- Support for GLTFLoader Cesium_RTC extension.
[0.3.11] - 2022-07-04
Added
- Support for determining tile format based on magic bytes.
Fixed
- Small fixes to the
dispose
function.
- Re-add support for relative tile urls.
[0.3.10] - 2022-07-02
Added
resetFailedTiles
to enable retry tile downloads that failed.
Fixed
- Support for loading absolute URIs.
- Fix the application of the tile "up" axis adjustments.
[0.3.9] - 2022-03-28
Fixed
- Incorrect argument order to
FeatureTable.getData
[0.3.7] - 2022-01-29
Fixed
- ensuring the working path included a "/" at the end when generating new file paths for the GLTFExtension and B3DM loaders.
[0.3.6] - 2022-01-29
Fixed
- "onPreprocessUrl" is now called for initial Tileset URL.
[0.3.5] - 2022-01-06
Added
TilesRenderer.onTileVisibilityChange
callback.
- Support for GLTF in tilesets (
3DTILES_content_gltf
extension).
Changed
- Improved type definitions.
PNTSLoader.parse
now returns a promise.
- All model loaders on inherit from a common type.
[0.3.4] - 2021-11-15
Added
- PriorityQueue: Added
schedulingCallback
to afford flexibility in job scheduling callback for scenarios where requestAnimationFrame
will not work, such as with WebXR.
Fixed
autoDisableRendererCulling
incorrectly applying the inverse of the documented effect.
- Screen space error calculations now use the camera projectionMatrix rather than camera type to determine frustum type.
[0.3.3] - 2021-09-08
Added
- Support for embedded tileset / tile geometry URLs with hashes, search query parameters.
[0.3.2] - 2021-09-02
Changed
- DebugTilesRenderer: Bounding boxes now colored down the tree based on depth.
- DebugTilesRenderer: "MeshStandardMaterial" is now used instead of "MeshBasicMaterial" for debugging.
- TilesRenderer: add
getBoundingSphere
function.
Added
- DebugTilesRenderer: "RANDOM_NODE_COLOR" visualization setting.
- Names for various tile objects.
- DebugTilesRenderer: Added
getDebugColor
function for adjusing the debug visualization colors.
- Support for computing screen space error for tiles that had sphere bounds but no box bounds.
- DebugTilesRenderer: Added
customColorCallback
and CUSTOM_COLOR
mode for custom debug coloring.
Fixed
- I3DMLoader: Fixed embedded absolute URLs not working correctly.
- TilesRenderer: "getBounds" function throwing an error if no bounding box is present on the tileset.
[0.3.1] - 2021-07-28
Fixed
- Case where tiles that were outside of the camera frustum would be loaded with a higher priority.
- Case where a single tiles renderer tiles would always be loaded with a higher priority.
- Case where bounding boxes with one dimension of 0 would not compute the distance to camera correctly.
[0.3.0] - 2021-07-24
Added
path-browserify
dependency explicitly rather than relying on implicit polyfills for path
package.
Changed
PriorityQueue.priorityCallback
now takes two arguments.
- The default priority sort now accounts for most recently used tiles, screenspace error, and distance to the camera.
TilesRenderer.calculateError
no longer returns a value but is now expected to set __error
and __distanceToCamera
on the tile itself.
Fixed
TilesRendererBase.preprocessURL
types definition.
[0.2.11] - 2021-06-03
Fixed
- PNTS files incorrectly having a GLTF rotation adjustment applied.
[0.2.10] - 2021-04-15
Added
TilesRenderer.optimizeRaycast
option to disable overriding the raycast function of loaded tiles.
Changed
- Added "sideEffects: false" to package.json.
Fixed
- Bounding box visualization not displaying correctly with
DebugTilesRenderer
when the bounds have a width of 0 in one dimension.
[0.2.9] - 2021-03-03
Added
onLoadTileSet
to the typescript definitions file.
Fixed
- Feature table attributes like
RTC_CENTER
not being correctly applied to loaded tile geometry.
B3DMLoader.load
not correctly resolving with a model.
Changed
- String decoding to use
TextDecoder
.
[0.2.8] - 2021-02-26
Fixed
- Pass fetch options to B3DMLoader.
- Set working path for loaders from CMPTLoader, TilesRenderer callback.
- Adjust loader handler in examples and README to provide GLTFLoader directly.
[0.2.7] - 2021-02-09
Added
- Add warnings if unsupported feature semantics are detected for I3DM and PNTS files
- Support for I3DM rotation, scale features.
Fixed
- A case where I3DM instances could have an incorrect transformations by respecting existing Mesh transformations when converting them to InstancedMeshes.
Changed
- Make CMPTLoader group child order consistent between loads.
[0.2.6] - 2021-02-03
Fixed
- I3DM files not correctly loading external gltf files.
[0.2.5] - 2021-01-17
Fixed
- Incorrect use of
multiply
when computing world transformations resulting in incorrect positioning of tiles when non identity transformations are used.
[0.2.4] - 2021-01-16
Fixed
- Feature and Batch Tables unnecessarily retaining full file buffer references.
[0.2.3] - 2020-12-30
Added
getOrientedBounds
function to TilesRenderer
.
preprocessURL
function to TilesRenderer
.
[0.2.2] - 2020-12-23
Fixed
- Incorrectly removing the implicit y-up to z-up GTLF transformation.
[0.2.1] - 2020-12-15
Added
- Support for external tile sets.
- B3DM support for RTC_CENTER.
Fixed
- Add a readable message for when console.assert fails.
- Add url information to log when tile load fails.
- Jittering with I3DM files when instances are positioned at large scales.
[0.2.0] - 2020-12-02
Changed
- Compatible three.js version to v0.123.0.
[0.1.7] - 2020-11-09
Changed
PriorityQueue
to wait a frame to schedule new tasks instead of using Promise.resolve
so tasks will only be started once per frame.
[0.1.6] - 2020-10-08
Added
batchTable
and featureTable
fields onto loaded B3DM, I3DM, and PNTS scene objects directly.
stopAtEmptyTiles
which defaults to false so tilesets correctly stop traversal at empty tiles.
Changed
- Tileset traversal now correctly stops at empty tiles if they do no meet the SSE requirement. Previous behavior can be retained for now by settings
stopAtEmptyTiles
to false
.
Fixed
- Typescript declaration files for
CMPT
, I3DM
, and PNTS
loaders.
[0.1.5] - 2020-08-21
Added
manager
field to TilesRenderer
to enable support for DRACO decompression.
TilesRenderer.onLoadTileSet
callback function.
- Support for "ADD" tile refinement.
Fixed
CMPTLoader
not importing I3DMLoader
.
- A case where if the tile at depth
maxDepth
was empty nothing would be rendered.
- A case where an error was thrown if a mid tile had no content.
[0.1.4] - 2020-07-17
Added
TilesRenderer.dispose
function to completely dispose of all loaded geometry, materials, and textures in the scene when the renderer is no longer needed.
TilesRenderer.onDisposeModel
function which is called when a tile model is disposed of from the cache.
Fixed
- Case where the url protocol was converted to use a single slash instead of two when loading a model.
- Corner case where an error was thrown if the tileset was dragged off screen out of camera view.
[0.1.3] - 2020-07-12
Added
- Basic support for CMPT, PNTS, and I3DM file formats.
autoDisableRendererCulling
field to TilesRenderer
.
- A count of the amount of failed tile content loads to
TilesRenderer.stats
.
Fixed
- Failed tileset downloads being indefinitely retried.
- Tile content stats not being correctly updated if a tile failed to load.
- Not propagating image load errors.
- DebugTilesRenderer using a different color for every submesh in a tile. Now a single color is used for every submesh in a tile.
- Tiles not rendering if an empty tile is encountered.
- Child tiles not rendering if a parent tile content failed to load.
Changed
- Improved
update
function performance by deferring LRUCache array update.
[0.1.2] - 2020-06-08
Changed
- License text in README to remove unnecessary copy.
[0.1.0] - 2020-05-29