The new version of OpenCTM is out. OpenCTM (Open Compressed Triangle Mesh) is a file format allowing the compression of 3D meshes. I posted a code sample HERE.
The OpenCTM SDK includes a 3D object viewer (works only in command line) supporting common 3D formats such as 3DS or OBJ. This tool is useful because it can export any loadable format to the OpenCTM one (*.ctm). The SDK includes also exporters for Blender and Maya.
The header image shows an OBJ object called virus.obj. Here are some interesting numbers:
- virus.obj size: 391 KB
- virus.obj compressed with ZIP: 114 KB
- virus.obj compressed with RAR: 107 KB
- virus.ctm size (compressed with the object viewer): 20 KB
You can download OpenCTM SDK HERE.
Is it lossless compression because tbh this kind of compression lossless sound kinda wierd.
It’s lossless compression otherwise the meshes will be somewhat corrupted…
From the doc, the meshes are compressed using lossless LZMA (Lempel-Ziv-Markov chain-Algorithm).
Actually – I say lossless, but it’s walking a fine line: No triangles or vertices are dropped, the process is fully reversible, and lossless LZMA encoding is used – however, you are free to make a decision of which level of precision you want (for instance you can say “use IEEE 32-bit floating point” or “use a fixed point resolution of 0.00001”).
So naturally, if you push it, you will experience loss of information (just as you will in, say OBJ, X3D or COLLADA with rounding to N digits), but in almost every practical situation – being able to select the accuracy is actually a benefit.
The OpenCTM ‘MG2’ compression also applies quantization to vertex position (and attributes?) before LZMA, so we can say it’s a lossy compression for this part. The quantization is surely adapted to the size of the object, to allow an ‘optimal’ distribution of quantization samples.
Pingback: [3D Programming] GeeXLab 0.2.0 Available With PhysX Fluids And More! - 3D Tech News, Pixel Hacking, Data Visualization and 3D Programming - Geeks3D.com