pcchen said:JohnH said:Unless you garentee a fixed compressed block size, you'll find it hard to save memory as you need random access into.
There are several ways to do lossy fixed ratio Z compression. An algorithm is to assume limited fragments inside a pixel, and all fragments inside a pixel are flat. So you just record their center Z value, dy/dz and dx/dz values. You can use quite low precision for dy/dz and dx/dz, such as 8 bits. Stencil values are also the same for each fragment. You also need to record the coverage mask of each fragment inside a pixel. If you limit the number of fragments inside a pixel to three, you can compress quite well if you have 16 or more subsamples. Of course, if you have more than three fragments inside a pixel you'll get artifacts.
Unfortunatley thats the problem, fixed block size lossy compression can result in unacceptable loss of quality when it fails. I'd also say that lossy compression on Z is pretty much unnacceptable...