# 3d-tiles-renderer/three/plugins

```js
import { ... } from '3d-tiles-renderer/three/plugins';
```

### Classes

- [BaseRegion](/tools/docs/3d-tiles-renderer/three/plugins/BaseRegion.md): Abstract base class for `LoadRegionPlugin` regions. Subclass and override `intersectsTile` to define custom load regions.
- [BatchedTilesPlugin](/tools/docs/3d-tiles-renderer/three/plugins/BatchedTilesPlugin.md): Plugin that uses three.js `BatchedMesh` to limit the number of draw calls required and improve performance. The `BatchedMesh` geometry and instance size are automatically resized and optimized as new geometry is added and removed. Note that the `renderer` field is required. Requires Three.js r170 or later.
- [CesiumIonAuthPlugin](/tools/docs/3d-tiles-renderer/three/plugins/CesiumIonAuthPlugin.md): Plugin for authenticating requests to Cesium Ion. Handles token refresh, asset endpoint resolution, and attribution collection. Auto-registration of terrain and imagery plugins via `assetTypeHandler` is deprecated — provide a custom handler instead.
- [CesiumIonOverlay](/tools/docs/3d-tiles-renderer/three/plugins/CesiumIonOverlay.md): Overlay that streams imagery from a Cesium Ion asset. Supports Ion-hosted TMS assets as well as external asset types (Google 2D Maps, Bing Maps) that Ion proxies.
- [DebugTilesPlugin](/tools/docs/3d-tiles-renderer/three/plugins/DebugTilesPlugin.md): Plugin that adds visual debugging aids to a `TilesRenderer`: bounding-volume helpers (box, sphere, region), tile color modes based on depth/error/distance/load order, and an unlit rendering mode. Color modes are available via the static `ColorModes` property.
- [DeepZoomOverlay](/tools/docs/3d-tiles-renderer/three/plugins/DeepZoomOverlay.md): Plugin that renders a Deep Zoom Image (DZI) as a tiled overlay. Only a single embedded "Image" is supported. See the `Deep Zoom specification` and `OpenSeadragon`.
- [GeneratedSurfacePlugin](/tools/docs/3d-tiles-renderer/three/plugins/GeneratedSurfacePlugin.md): Plugin that generates tiled surface geometry from a tiling scheme, optionally loading image overlay data.
- [GeoJSONOverlay](/tools/docs/3d-tiles-renderer/three/plugins/GeoJSONOverlay.md): Overlay that rasterizes a GeoJSON dataset onto 3D tile geometry. Features are drawn using the Canvas 2D API at the tile's native resolution. Per-feature style overrides can be provided via the `strokeStyle`, `fillStyle`, `strokeWidth`, and `pointRadius` properties on each GeoJSON feature's `properties` object.
- [GLTFCesiumRTCExtension](/tools/docs/3d-tiles-renderer/three/plugins/GLTFCesiumRTCExtension.md): GLTF loader plugin that applies the `CESIUM_RTC` extension, which offsets the scene position by the RTC center defined in the GLTF JSON. Register with a `GLTFLoader` via `loader.register( () => new GLTFCesiumRTCExtension() )`.
- [GLTFExtensionsPlugin](/tools/docs/3d-tiles-renderer/three/plugins/GLTFExtensionsPlugin.md): Plugin for automatically adding common extensions and loaders for 3D Tiles to the `GLTFLoader` used for parsing tile geometry. A `DRACOLoader` can be provided to support loading Draco-compressed point cloud files.
- [GLTFMeshFeaturesExtension](/tools/docs/3d-tiles-renderer/three/plugins/GLTFMeshFeaturesExtension.md): GLTF loader plugin that parses the `EXT_mesh_features` extension and attaches a `MeshFeatures` instance to `mesh.userData.meshFeatures` on each primitive. Register with a `GLTFLoader` via `loader.register( () => new GLTFMeshFeaturesExtension() )`.
- [GLTFStructuralMetadataExtension](/tools/docs/3d-tiles-renderer/three/plugins/GLTFStructuralMetadataExtension.md): GLTF loader plugin that parses the `EXT_structural_metadata` extension and attaches a `StructuralMetadata` instance to `scene.userData.structuralMetadata` (and to each primitive mesh). Register with a `GLTFLoader` via `loader.register( () => new GLTFStructuralMetadataExtension() )`.
- [GoogleMapsOverlay](/tools/docs/3d-tiles-renderer/three/plugins/GoogleMapsOverlay.md): Overlay that streams Google Maps 2D tile imagery on top of 3D tile geometry using the Google Maps Tile API.
- [ImageOverlay](/tools/docs/3d-tiles-renderer/three/plugins/ImageOverlay.md): Base class for all image overlays. Provides the interface that `ImageOverlayPlugin` uses to fetch, lock, and release overlay textures.
- [ImageOverlayPlugin](/tools/docs/3d-tiles-renderer/three/plugins/ImageOverlayPlugin.md): Plugin that composites one or more tiled image overlays onto 3D tile geometry by generating per-tile textures from image sources (XYZ, TMS, WMTS, WMS, GeoJSON, etc.). Image sources are added via `addOverlay()` and removed via `deleteOverlay()`.
- [LoadRegionPlugin](/tools/docs/3d-tiles-renderer/three/plugins/LoadRegionPlugin.md): Plugin that restricts tile loading and traversal to one or more geometric regions (`SphereRegion`, `RayRegion`, `OBBRegion`). Only tiles that intersect an active region are loaded and refined. Regions marked as masks additionally prevent tiles outside them from loading.
- [MeshFeatures](/tools/docs/3d-tiles-renderer/three/plugins/MeshFeatures.md): Provides access to `EXT_mesh_features` feature ID data for a single mesh primitive. Instances are created by `GLTFMeshFeaturesExtension` and attached to `mesh.userData.meshFeatures`. Use `getFeatures()` or `getFeaturesAsync()` to read feature IDs at a point on the mesh surface.
- [MVTAnnotationsDriver](/tools/docs/3d-tiles-renderer/three/plugins/MVTAnnotationsDriver.md): Bundles the callbacks the "MVTAnnotationsPlugin" needs into a single object. Subclass and override the methods to customize which features become annotations, their placement priority, per-character sizing, the displayed text, and how visibility changes are rendered. By default all points of interest are rendered as circles and labels are rendered as white text with a black outline. Custom implementations can be used for more sophisticated text rendering, variable font weights based on properties, and custom icons.
- [MVTAnnotationsPlugin](/tools/docs/3d-tiles-renderer/three/plugins/MVTAnnotationsPlugin.md): Plugin that extracts point features from an MVT overlay and manages their screen-space occupation, preventing label crowding via a hierarchical lock system and raycasted depth placement. Rendering is left entirely to the caller via the driver's `onPointsUpdate` / `onLabelsUpdate`.
- [MVTGlyphAtlasTexture](/tools/docs/3d-tiles-renderer/three/plugins/MVTGlyphAtlasTexture.md): A canvas texture that manages a grid of fixed-size slots, each holding a rendered glyph or icon. Slots are addressed by string key and can be drawn with text, images, or paths.
- [MVTGlyphs](/tools/docs/3d-tiles-renderer/three/plugins/MVTGlyphs.md): Base object that renders a batch of glyphs from a shared `MVTGlyphAtlasTexture`, fading each item in and out. Manages the geometry and two child draws sharing it: an opaque pass and a transparent "draw through" pass, combined per `drawMode`.
- [MVTIconGlyphs](/tools/docs/3d-tiles-renderer/three/plugins/MVTIconGlyphs.md): Renders one icon glyph per point annotation. Each item's atlas key comes from `getKind`, or `fallback` when that key isn't in the atlas.
- [MVTLabelGlyphs](/tools/docs/3d-tiles-renderer/three/plugins/MVTLabelGlyphs.md): Renders text labels one glyph per character, laid out along each annotation's path. Characters are rasterized into the atlas on demand, so a label's text may change at any time.
- [MVTOverlay](/tools/docs/3d-tiles-renderer/three/plugins/MVTOverlay.md): Overlay that renders XYZ-template MVT vector tiles on top of 3D tile geometry. See the `Mapbox Vector Tile specification`.
- [OBBRegion](/tools/docs/3d-tiles-renderer/three/plugins/OBBRegion.md): An oriented bounding-box load region. Only tiles that intersect `obb` are loaded.
- [PMTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/PMTilesOverlay.md): Overlay that renders PMTiles vector or raster data on top of 3D tile geometry. Projection and zoom levels are read automatically from the PMTiles archive header.
- [PointCloudEffectsPlugin](/tools/docs/3d-tiles-renderer/three/plugins/PointCloudEffectsPlugin.md): Plugin that applies display settings and eye dome lighting to loaded point content. Eye dome lighting renders the points to a depth target first so each point can compare itself against its neighbors as it rasterizes, shading silhouettes and creases.
- [PotreePlugin](/tools/docs/3d-tiles-renderer/three/plugins/PotreePlugin.md): Plugin that adds support for Potree point cloud datasets (v1.x and v2.0).
- [QuantizedMeshPlugin](/tools/docs/3d-tiles-renderer/three/plugins/QuantizedMeshPlugin.md): Plugin that adds support for the Cesium quantized-mesh terrain format. Fetches the `layer.json` descriptor from the tileset root and dynamically generates 3D Tiles tile content from quantized-mesh buffers.
- [RayRegion](/tools/docs/3d-tiles-renderer/three/plugins/RayRegion.md): A ray-based load region. Only tiles that intersect `ray` are loaded.
- [ReorientationPlugin](/tools/docs/3d-tiles-renderer/three/plugins/ReorientationPlugin.md): Plugin for automatically re-orienting and re-centering the tileset to make it visible near the origin and facing the right direction. If `lat`/`lon` are provided the tileset is placed at that geographic location; otherwise the plugin tries to determine if the tileset is on the globe surface and estimates the coordinates. If no coordinates can be determined the tileset is oriented so the given `up` axis aligns to three.js' +Y.
- [SphereRegion](/tools/docs/3d-tiles-renderer/three/plugins/SphereRegion.md): A spherical load region. Only tiles that intersect `sphere` are loaded.
- [StructuralMetadata](/tools/docs/3d-tiles-renderer/three/plugins/StructuralMetadata.md): Provides access to `EXT_structural_metadata` property tables, property textures, and property attributes for a GLTF scene or primitive. Instances are created by `GLTFStructuralMetadataExtension` and attached to `scene.userData.structuralMetadata` and `mesh.userData.structuralMetadata`.
- [TerrainRGBMeshPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TerrainRGBMeshPlugin.md): Generates terrain tiles from raster Terrain-RGB elevation tiles. Each elevation texture is shared by multiple layers of sub tiles that displace a smooth surface mesh on the GPU with a subview of the texture, so elevation scale and seam updates only require texture changes.
- [TerrariumMeshPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TerrariumMeshPlugin.md): `TerrainRGBMeshPlugin` for the Terrarium encoding.
- [TileCompressionPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TileCompressionPlugin.md): Plugin that processes tile geometry buffer attributes into smaller data types on load and disables texture mipmaps to save memory. Can reduce geometry memory footprint by more than half and texture memory by around a third. Note that the default attribute size when compression is enabled is fairly aggressive and may cause visual artifacts.
- [TiledImageOverlay](/tools/docs/3d-tiles-renderer/three/plugins/TiledImageOverlay.md): Base class for overlays backed by a tiled image source (XYZ, TMS, WMS, WMTS, etc.). Manages a `TiledImageSource` and a `RegionImageSource` that handles compositing multiple source tiles into a single texture per 3D tile region.
- [TileFlatteningPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TileFlatteningPlugin.md): Plugin that flattens tile geometry vertices onto the surface of one or more mesh "shapes", useful for placing flat terrain overlays or cutting roads into terrain. Shapes are added via `addShape()` and removed via `deleteShape()` or `clearShapes()`.
- [TilesetValidationPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TilesetValidationPlugin.md): Plugin that validates tile geometry containment on load. For each loaded tile it checks that all mesh vertices lie within the tile's bounding volume and within the parent tile's bounding volume, logging a warning for any violations. Intended for debugging only.
- [TilesFadePlugin](/tools/docs/3d-tiles-renderer/three/plugins/TilesFadePlugin.md): Plugin that overrides material shaders to fade tile geometry in and out as tile LODs change, preventing pop-in. Dispatches `fade-change`, `fade-start`, and `fade-end` events on the `TilesRenderer` during animation — use these when doing on-demand rendering. Works alongside `BatchedTilesPlugin` when present.
- [TMSTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/TMSTilesOverlay.md): Overlay that renders TMS (Tile Map Service) image tiles on top of 3D tile geometry. See the `TMS specification`.
- [UnloadTilesPlugin](/tools/docs/3d-tiles-renderer/three/plugins/UnloadTilesPlugin.md): Plugin that unloads geometry, textures, and materials of any given tile when its visibility changes to non-visible, freeing GPU memory. The model data still exists on the CPU until it is completely removed from the cache, allowing it to be re-uploaded without re-fetching.
- [UpdateOnChangePlugin](/tools/docs/3d-tiles-renderer/three/plugins/UpdateOnChangePlugin.md): Plugin that skips `TilesRenderer.update()` calls when nothing has changed — no camera movement, no new tiles loaded, and no explicit `needsUpdate` flag set. Useful for event-driven renderers that only render on demand.
- [WMSCapabilitiesLoader](/tools/docs/3d-tiles-renderer/three/plugins/WMSCapabilitiesLoader.md): Loader that fetches and parses a WMS `GetCapabilities` XML document into a structured JavaScript object. The result can be used to configure `WMSImageSource`.
- [WMSTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/WMSTilesOverlay.md): Overlay that renders WMS (Web Map Service) image tiles on top of 3D tile geometry. See the `WMS specification`.
- [WMTSCapabilitiesLoader](/tools/docs/3d-tiles-renderer/three/plugins/WMTSCapabilitiesLoader.md): Loader that fetches and parses a WMTS `GetCapabilities` XML document into a structured JavaScript object. The result can be used to configure `WMTSImageSource`.
- [WMTSTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/WMTSTilesOverlay.md): Overlay that renders WMTS (Web Map Tile Service) image tiles on top of 3D tile geometry. Pass a parsed capabilities object from `WMTSCapabilitiesLoader` or provide a URL template directly. See the `WMTS specification`.
- [XYZTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/XYZTilesOverlay.md): Overlay that renders XYZ/Slippy-map image tiles (e.g. OpenStreetMap) on top of 3D tile geometry. See the `Slippy map tilenames specification`.

### Types

- [FeatureInfo](/tools/docs/3d-tiles-renderer/three/plugins/FeatureInfo.md)
- [MVTDrawModeEnum](/tools/docs/3d-tiles-renderer/three/plugins/MVTDrawModeEnum.md)
- [VectorTileStyle](/tools/docs/3d-tiles-renderer/three/plugins/VectorTileStyle.md)
- [WMTSTileMatrix](/tools/docs/3d-tiles-renderer/three/plugins/WMTSTileMatrix.md)
