'raw' is an (H, W, C) numeric array the decoder materializes directly —
the only arm that can carry HDR, since no browser-native image codec stores
floats. PNG, WebP, and JPEG are 1-D uint8 codec bytes decoded with
createImageBitmap, exactly as image_label_bytes already does for hover
thumbnails. KTX2 is also opaque bytes, but delegates to THREE's Basis
transcoder and stays GPU-compressed after upload.
A closed vocabulary on purpose: an unrecognised value must be a rejection and
not a fall-through to "probably an image", because the decode path and the
byte budget differ between the raw, bitmap-codec, and GPU-compressed arms.
How a mesh's
texturearray is stored.'raw'is an(H, W, C)numeric array the decoder materializes directly — the only arm that can carry HDR, since no browser-native image codec stores floats. PNG, WebP, and JPEG are 1-Duint8codec bytes decoded withcreateImageBitmap, exactly asimage_label_bytesalready does for hover thumbnails. KTX2 is also opaque bytes, but delegates to THREE's Basis transcoder and stays GPU-compressed after upload.A closed vocabulary on purpose: an unrecognised value must be a rejection and not a fall-through to "probably an image", because the decode path and the byte budget differ between the raw, bitmap-codec, and GPU-compressed arms.