Mesh compression vs mesh optimisation explained
Mesh compression and mesh optimization are distinct processes with different goals. Compression reduces file size by encoding vertex data more efficiently. Optimization reduces polygon count by redesigning topology. Both improve performance but through different mechanisms and with different tradeoffs.
Mesh compression operates on existing geometry without changing topology. It quantizes vertex positions from 32-bit floats to 16-bit or 12-bit integers. It deduplicates shared vertices and uses entropy encoding to compress index buffers. Draco compression achieves 60-80% file size reduction with no visual change. The mesh retains the same number of triangles and vertices.
Mesh optimization redesigns topology to reduce polygon count. It uses algorithms like quadric error metrics to collapse edges while preserving silhouette and surface curvature. A 100k triangle mesh might reduce to 20k triangles with minimal visual difference. This improves runtime performance by reducing vertex processing and rasterization cost.
Compression is lossless or near-lossless. Quantization introduces precision loss but remains imperceptible at typical viewing distances. A vertex position accurate to 0.001 units is sufficient for most XR applications. Decompression restores the original topology. The mesh looks identical before and after compression.
Optimization is inherently lossy. Reducing polygon count removes geometric detail. The goal is to minimize visual difference while maximizing reduction. Quadric error metrics preserve sharp edges and silhouettes but simplify flat surfaces. The result is a different mesh with fewer triangles.
Compression reduces file size and network transfer time. A 10MB GLB compresses to 2MB with Draco. This improves load times in WebXR and reduces bandwidth costs. Decompression happens once at load time. Runtime performance is identical to the uncompressed mesh because the vertex count is unchanged.
Optimization reduces runtime cost. Fewer triangles mean fewer vertex shader invocations and less rasterization work. A 100k triangle mesh at 60fps processes 6 million triangles per second. Reducing to 20k triangles cuts this to 1.2 million. This improves frame rate on GPU-limited devices like mobile VR headsets.
Compression is a deployment step. Apply it after modeling and optimization are complete. It does not affect the source mesh. You can compress and decompress without data loss (ignoring quantization precision). Use compression for all models regardless of polygon count.
Optimization is a modeling decision. It changes the mesh permanently. You cannot reverse optimization without the original high-poly source. Apply optimization when polygon count exceeds the target platform budget. For mobile AR, optimize models above 30k triangles. For desktop VR, optimize above 100k triangles.
Compression works on any mesh. It is effective for both high-poly and low-poly models. A 1k triangle mesh still benefits from compression because vertex data and indices compress well. Draco is most effective on meshes with regular topology and smooth surfaces.
Optimization requires sufficient initial detail. You cannot optimize a 5k triangle mesh to 1k triangles without severe quality loss. Optimization works best on over-tessellated meshes from CAD tools or photogrammetry. These often have 500k-5M triangles with redundant detail on flat surfaces.
Compression is automatic. Tools like OptimiXR compress apply Draco compression with optimal settings. No manual tuning is required. The process is deterministic and repeatable. You can compress the same mesh multiple times with identical results.
Optimization requires artistic judgment. Automated decimation algorithms make tradeoffs between polygon reduction and visual fidelity. You must review the result and adjust reduction targets. Some meshes tolerate 90% reduction. Others show artifacts at 50% reduction. Manual retopology may be necessary for hero assets.
Compression does not affect UV layouts, materials, or animations. It preserves all vertex attributes including normals, tangents, and vertex colors. Skinning weights and morph targets compress efficiently. The mesh remains compatible with existing materials and shaders.
Optimization can break UV layouts and materials. Collapsing edges changes UV coordinates. Texture seams may shift or disappear. Normal maps baked for the high-poly mesh may not align with the optimized mesh. You may need to rebake normal maps and adjust UVs after optimization.
Compression is reversible. Decompress the mesh to restore full precision vertex data. This is useful for editing or further processing. The decompressed mesh is functionally identical to the original.
Optimization is irreversible. Once you reduce polygon count, the lost detail is gone. Preserve high-poly source files before optimization. Use version control to track optimization iterations. Export optimized meshes as separate files rather than overwriting sources.
Compression and optimization are complementary. Optimize first to reduce polygon count. Then compress to reduce file size. A 100k triangle mesh optimized to 20k triangles and compressed with Draco achieves both runtime performance gains and smaller file size.
Use compression for all WebXR and mobile AR models. It is free performance with no downside. Use optimization when polygon count exceeds platform budgets or when targeting low-end devices. Combine both for maximum efficiency. OptimiXR compress handles both: it converts models to GLB, applies Draco compression, and optionally reduces texture resolution. For polygon reduction, use dedicated tools like Simplygon or Meshlab before importing to OptimiXR.