THREE.JS / FOUNDATIONS 245

The UVs are part of the asset.

KHR_texture_transform lets a glTF textureInfo carry atlas offsets, scale, rotation, and a UV-set override. The real loader turns those declarations into cloned Three.js textures, so one image can serve several material layouts.

Preparing glTF fixture—

Building four atlas panels and a loader-parsed texture-transform asset…

backend
—
maps
—
channels
—
focus
—
frame ms
—
Texture transform controlswaiting

The loader will map the textureInfo extension before the first frame.

KHR_texture_transform contractwaiting
atlas cropoffset + scale
quarter-turnrotation around origin
UV1 overridetexCoord = 1
raw referenceno extension
atlas cropoffset / scale

waiting

quarter-turnrotation

waiting

UV channeltexCoord override

waiting

texture identityclone + shared source

waiting

samplerwrap + color space

waiting

loader resultmap channels

waiting

The extension changes texture sampling coordinates; it does not modify vertex UV buffers or create a second image.

The study uses GLTFLoader's native KHR_texture_transform path and tracks the base image plus every cloned texture for explicit release.

Derived from the official glTF loader example, GLTFLoader, Texture, and the Khronos KHR_texture_transform contract. Use ?forceWebGL=1 to inspect the labeled WebGL2 reference.

LAB 245 / GLTF TEXTURE TRANSFORMS