Wavelets in 3D Graphics
2 days ago
- Haar wavelet basis is applied to compress low contrast textures in a 3D polygonal game engine, leveraging its multiresolution properties.
- The main problem is high memory usage: a typical scene requires ~200MB for textures and mipmaps; simple palettization causes stutter.
- A compressed representation using Haar nonstandard decomposition allows incremental reconstruction of mipmaps, avoiding sudden decompression hits.
- Compression steps: weighting coefficients, discarding small ones, quantizing with neural network, and Huffman coding.
- Achieves 8:1 compression with no visible artifacts; up to 35:1 usable depending on contrast; blockiness can be mitigated by bilinear filtering.
- Drawbacks: increased complexity in caching and pipeline; suggests using zlib may have been simpler.
- Haar is chosen for speed and intuitivity; other wavelets were explored but memory is currently not the bottleneck.