Download size and GPU memory are different budgets. A small JPEG inside a GLB can become a large decoded texture during rendering. Compressing geometry does not automatically reduce texture memory. 1
Count pixels, not just download megabytes
A 4096 × 4096 texture with four 8-bit channels needs 64 MiB for its base level. A conventional full mipmap chain adds roughly a third, bringing the example to about 85 MiB. This is an illustrative calculation, not a precise measurement for every format or device.
Color, normal and other material maps can repeat that cost. A five-megabyte download therefore does not establish that the model has a small working-memory footprint on a phone.
Change one asset first
Choose a large texture and reduce its pixel dimensions in a test copy. Compare the same view’s quality and memory behavior on a real device. If the result still looks good, reducing dimensions can be more useful than lowering JPEG quality again.
KTX2/Basis can provide suitable GPU texture compression, but it requires a correctly configured loader and detection of the target device’s support. 2
Avoid changing geometry, textures and render resolution simultaneously. A controlled comparison helps distinguish download savings, memory savings and frame-time improvements instead of treating them as one metric.
Related reading
How this 3D portfolio is built · Test a lower pixel ratio on mobile