The byte budget already refuses anything whose area is large, so this exists
for the shape the byte budget cannot see: a 100000 x 2 texture is 800 KB and
passes every accounting here, then fails to upload because it exceeds
MAX_TEXTURE_SIZE on every real GPU. THREE.js responds by warning and
clamping, so the mesh renders with a resampled or missing texture and nothing
in the load path says why.
16384 is the limit on current desktop hardware. Deliberately NOT probed from
the live context: the preflight runs before any renderer is in scope, and a
device-dependent admission decision would make a store load on one machine and
fail on another, which is worse than one honest fixed ceiling. A texture near
this cap is refused by the byte budget anyway unless it is a thin strip.
MIRROR: MAX_MESH_TEXTURE_SIZE in luxar/validation/base.py.
Per-axis pixel ceiling for a mesh texture.
The byte budget already refuses anything whose area is large, so this exists for the shape the byte budget cannot see: a
100000 x 2texture is 800 KB and passes every accounting here, then fails to upload because it exceedsMAX_TEXTURE_SIZEon every real GPU. THREE.js responds by warning and clamping, so the mesh renders with a resampled or missing texture and nothing in the load path says why.16384 is the limit on current desktop hardware. Deliberately NOT probed from the live context: the preflight runs before any renderer is in scope, and a device-dependent admission decision would make a store load on one machine and fail on another, which is worse than one honest fixed ceiling. A texture near this cap is refused by the byte budget anyway unless it is a thin strip.
MIRROR:
MAX_MESH_TEXTURE_SIZEinluxar/validation/base.py.