Class: AtlasTexture
A texture atlas is a collection of textures that are packed into a single texture. This is useful for reducing the number of draw calls required to render a scene, since all block textures can be rendered with a single draw call.
By default, the texture atlas creates an additional border around each texture to prevent texture bleeding.

Hierarchy
-
CanvasTexture↳
AtlasTexture
Constructors
constructor
• new AtlasTexture(countPerSide?, dimension?, canvas?): AtlasTexture
Create a new texture this.
Parameters
| Name | Type | Default value |
|---|---|---|
countPerSide | number | 1 |
dimension | number | 1 |
canvas | HTMLCanvasElement | undefined |
Returns
The texture atlas generated.
Overrides
CanvasTexture.constructor
Properties
animations
• animations: { animation: FaceAnimation ; timer: any }[] = []
The list of block animations that are being used by this texture atlas.
atlasMargin
• atlasMargin: number = 0
The margin between each block texture in the this.
atlasOffset
• atlasOffset: number = 0
The offset of each block's texture to the end of its border.
atlasRatio
• atlasRatio: number = 0
The ratio of the texture on the atlas to the original texture.
canvas
• canvas: HTMLCanvasElement
The canvas that is used to generate the texture this.
countPerSide
• countPerSide: number
The number of textures per side of the texture atlas
dimension
• dimension: number
Since the texture atlas is a square, the dimension is the length of one side.
Methods
copy
▸ copy(source): this
Carries the atlas geometry so clone() yields a faithful atlas view
sharing the source's pixels, with independently settable repeat/offset
(how the held torch windows its flame strip). Animations deliberately do
not transfer: their timers drive the source's own offsets, and a clone
inheriting them would be fought over by two drivers.
Parameters
| Name | Type |
|---|---|
source | this |
Returns
this
Overrides
CanvasTexture.copy
drawImageToRange
▸ drawImageToRange(range, image, clearRect?, opacity?): void
Draw a texture to a range on the texture atlas.
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
range | UV | undefined | The range on the texture atlas to draw the texture to. |
image | Color | Texture<unknown> | HTMLCanvasElement | HTMLImageElement | (width?: number, height?: number) => HTMLImageElement | undefined | The texture to draw to the range. |
clearRect | boolean | true | - |
opacity | number | 1.0 | - |
Returns
void
flushAnimationPatches
▸ flushAnimationPatches(renderer): void
Parameters
| Name | Type |
|---|---|
renderer | WebGLRenderer |
Returns
void
makeUnknownImage
▸ makeUnknownImage(dimension, color1?, color2?): HTMLCanvasElement
Parameters
| Name | Type | Default value |
|---|---|---|
dimension | number | undefined |
color1 | string | "#FF00FF" |
color2 | string | "#000000" |
Returns
HTMLCanvasElement
makeUnknownTexture
▸ makeUnknownTexture(dimension): AtlasTexture
The magenta-and-black checker every surface with no texture yet is given. One instance serves all of them, so treat it as read-only: painting into it or disposing it reaches every one of those surfaces at once.
Parameters
| Name | Type |
|---|---|
dimension | number |
Returns
paintColor
▸ paintColor(color): void
Paints the entire canvas with a specified color using Three.js Color.
Parameters
| Name | Type | Description |
|---|---|---|
color | Color | A Three.js Color instance to use for painting. |
Returns
void
registerAnimation
▸ registerAnimation(range, keyframes, fadeFrames?): void
Parameters
| Name | Type | Default value |
|---|---|---|
range | UV | undefined |
keyframes | [number, Color | HTMLImageElement][] | undefined |
fadeFrames | number | 0 |
Returns
void