NEWS         TESTS         INTERVIEWS         DOSSIERS         GALLERY 3D         3D SITES
 Q&A

OpenCTM,
Marcus Geelnard
Septembre - 2009

 

“OpenCTM can achieve, a 10 million polygon mesh compresses to under 6% of its corresponding STL file size.
[...] The real advantage of OpenCTM, as I see it, is that you can easily use it as part of a much more complex data structure, such as a custom 3D model or scene description format for a game engine or visualization tool.”

<Stanford Bunny

   
Q1 Why is OpenCTM more than just another 3D format?
A1

Unlike many other 3D formats, OpenCTM combines excellent compression and a very flexible data structure, all in an open file format and an easy to use open source SDK.

   
Q2 Compare with other mesh format, OpenCTM offers a very good compression rate. Is it a lossless format? Is there any simplifications in coordinates values?
A2

Yes, it is a lossless format. No vertices are dropped in the compression process. If you want lossy compression, it is of course possible to combine OpenCTM with any polygon reducer to achieve even higher compression ratios.
For an example of the level of compression that OpenCTM can achieve, a 10 million polygon mesh (the Stanford Thai Statue) compresses to under 6% of its corresponding STL file size.

   
Q3 Could you please tell us what are the main features of OpenCTM (vertex colors, textureUV, animation, ...)?
A3

When it comes to vertex data OpenCTM tries to be as flexible as possible in order not to limit its use to any specific application.
In addition to the most basic mesh information (coordinates, normals and connectivity), the format can hold any number of UV maps (e.g. for 2D texture coordinates) and any number of custom per vertex attributes (this can really be anything, for instance colors, pre-calculated ambient occlusion, weights, and shader-specific attributes).
There is currently no explicit support for animation, but since it is possible to define per vertex weights, you can combine OpenCTM with an externally described skeleton animation system (i.e. one weight attribute per skeleton bone). This way you are free to use OpenCTM in almost any kind of skeleton based animation system.

   
Q4 What is the main target of OpenCTM?
A4

Right now, I think the primary audience is 3D software developers, who can integrate the technology into their products in various ways.
For instance, OpenCTM can be used in situations where you use simple 3D mesh formats such as STL or Stanford PLY today. The immediate advantage would of course be a drastically smaller file size, which can be convenient in several situations (e.g. for scientists that want to store and share large 3D data sets, or in production environments where you need to transfer or store large amounts of 3D meshes).
The possibilities do not stop at replacing simple file formats though. The real advantage of OpenCTM, as I see it, is that you can easily use it as part of a much more complex data structure, such as a custom 3D model or scene description format for a game engine or visualization tool. An analogy: just as the OpenDocument Format uses XML for text and layout and PNG files for images, a 3D model format could consist of an XML file for object properties and materials, and OpenCTM files for the object geometries.
In the long run, I hope that OpenCTM will be available to many different user groups, directly or indirectly, but of course that depends on how well it is received by the software development community.

   
Q5 What are the MG1 and MG2 method of OpenCTM? Can it be compared with polygon reduction tools such as Mental Mesh or OpenMesh?
A5 As OpenCTM is a lossless format, it does not perform any geometry reduction. All triangles and vertices are preserved, regardless of compression method. However, OpenCTM provides different methods of compression in order to trade speed, memory, compression ratio and precision. Both the MG1 and MG2 methods use lossless triangle reordering techniques and LZMA compression to reduce the size of the connectivity information.The main difference between the MG1 and the MG2 methods is that the MG1 method stores vertex data as floating point values, while the MG2 method uses fixed point. The latter allows for dramatically improved compression mainly because lossless prediction techniques can be used (not entirely different from the PNG compression scheme, for instance). The whole idea is that the LZMA coder likes smaller values, so the MG2 method tries to minimize the value range of the vertex coordinates (and other vertex attributes).

From a user point of view, this means that the MG1 method can be used if the floating point data must be preserved at all cost, while the MG2 method can be used when you know what numerical precision you need. In the future, more compression methods may be added to the OpenCTM file format, but none are planned right now.

   
Q6 OpenCTM offers a complete set of tools : viewer, conversion tool and developer files. OpenCTM is a good alternative to other format such as Collada. Do you plan to add some conversion tools for Collada?
A6 Yes, several users have already requested a COLLADA converter, and it is being looked at right now. I will continue to add converters and import/export plugins for different applications when I have the time. People are of course encouraged to help out with the development. For now, there are a couple of simple Blender scripts available for importing and exporting OpenCTM files, so you can use Blender as a poor mans converter too.
   
Q7 As OpenCTM is very compressed it makes suitable for internet use. Can it be handled by an online 3D engine (in Java or Flash)?
A7 Internet applications were certainly on my mind when I designed OpenCTM. We always seem to be short on network bandwidth, which means that internet 3D applications can possibly gain a lot of performance by using 3D compression. Right now, there is no direct support for Java or Flash. For Java, it is possible to compile a Java enabled shared library of OpenCTM for all platforms that your application needs to support (this is how LWJGL works, for instance), but I think that the ideal solution would be to port OpenCTM to Java completely. I certainly hope to see this happen in the future. Again, time is the only limiting factor.
   
Q8 Could you please tell us a bit more about your goal with OpenCTM and what are your next milestones?
A8 First of all, I would like to think of OpenCTM as a compression technology that can be used in many different applications, not only because of its technology, but also because of its openness. For me it has been a way to make my invention available to the public, and I hope that people will find it useful.
The first near term milestone is the release of OpenCTM 1.0, which will basically be the same as the current release, with minor corrections and additions based on the feedback from users.
The next step will be to improve the support for OpenCTM in various applications, through converters, programming language bindings and porting it to new platforms (e.g. Java).
What happens next is really up to the 3D software developer community. I would not be surprised if OpenCTM will be used in ways that I have never imagined.
   
   
   
 
  Search on 3d-test with Google
      A PROPOS DE 3D-TEST            INFORMATIONS LEGALES               LINKS              TRANSLATE WITH GOOGLE
 
© 2001-2007 3d-test, Panorama of web 3D technologies, 3d-test is edited by Westimages Realtime 3D Solution Provider