2009年12月16日水曜日

etc - OpenCTM

こんなのあったのか。
geeks3d より。

OpenCTM (I guess OpenCTM means Open Compressed Triangle Mesh) is a file format for storing 3D triangle meshes in a compact and versatile format. The format supports per-vertex position, normal, texture coordinates and custom attributes. Large geometries up to billions of triangles and vertices can be stored (OpenCTM uses 32-bit face indices). The OpenCTM SDk is open source and written in C.
http://www.geeks3d.com/20090901/openctm-open-file-format-for-compressed-3d-meshes/


バイナリ形式の、かなり圧縮が掛かる三角面メッシュのフォーマットらしい。
公式によると、bunnyタソが157kbとある。

早速俺の自作フォーマットでも実験。
まず、bunny.objなるものを落としてきたら2.3MBだった。
そこから自前のprotocol buffersフォーマットで出力。
すると1.7MBになった。もし、公式のbunnyタソがnormalなしのvertexとfaceのみだとしても余裕で負けている。
さらに1.7MBのものをzip圧縮してみたが、1MB程度までしか小さくならなかった。

でも、OpenCTMもRAWだと1.2MBで、LWO(バイナリ)も1.2MBとあるので、読み書きクラス自動生成してくれる分、protocol buffer最高、ってことで。乗り換える気にはならず。法線入れなかったら同じくらいっしょ。

(ちなみにprotocol bufferにもさらに圧縮する機能が付いているけど、未使用。今度使ってみよう・・・)

0 件のコメント: