ReadonlycolorReadonlynormalReadonlymerReadonlyblockReadonlyblockStaticloadFetches and uploads the three atlas images, creating sRGB color and linear data textures.
The WebGPU device.
URL of the albedo atlas (uploaded as sRGB).
URL of the tangent-space normal atlas (linear).
URL of the MER atlas (R=metallic, G=emissive, B=roughness, linear).
Pixels per tile (default 16).
A BlockTexture owning the three uploaded GPU textures.
Computes the atlas UV transform for sampling a specific tile.
Mesh UVs in [0,1] should be multiplied by (uvScaleX, uvScaleY) then
offset by (uvOffsetX, uvOffsetY) to land on the requested tile.
Linear tile index, laid out row-major from the top-left
of the atlas (blockId = row * cols + col). For a 25-col × N-row
atlas, blockId 0 is the top-left tile, 24 is the rightmost tile of row 0,
25 is the leftmost tile of row 1, and so on.
Tuple [uvOffsetX, uvOffsetY, uvScaleX, uvScaleY].
A set of three aligned block atlases (color, normal, MER) for voxel-style rendering.
All three atlases share a common tile size and layout. Each atlas is stored horizontally as a strip of
blockSize-pixel square tiles. Owns the underlying GPU textures; calldestroy()to release them.