대가는 결과를 만든다

[리서치] OpenCTM 본문

개발/3D

[리서치] OpenCTM

yunzema 2018. 12. 27. 18:30
반응형

OpenCTM 이란?


압축된 형태로 3D 삼각형 Mesh를 저장하기 위한 파일 형식.

OpenCTM형식의 파일을 읽고 쓸 수 있는 라이브러리 제공.


삼각형 Mesh 데이터 관리에만 관련되 있음. Scene 정의 형식이 아님.

Multiple Mesh, Transformation matrix, materials, light source, physical property을 처리X


- Lossless (무손실 압축)

- converting 프로그램(obj, ply, dae etc => ctm), dll 제공

- maya, blender plugin 제공

- js library - https://github.com/jcmellado/js-openctm

- A-Frame, Three.js에서의 사용 예제 존재(AFrame Component, Three.js Loader 존재)

- 최근 활동이 없는 오래된 오픈소스

- 테스트 스크린 샷 참고 : 원본 70MBOBJ 파일을 2MB 수준으로 손실없이 압축. VerticesTriangle수 일치


파일크기 축소와 로딩속도에 대한 좋은 해결책으로 보임. 하지만 CTMMTL을 이용하여 Material을 주는 부분에 대한 리서치/해결이 필요할 것으로 보임



=============================================================================


*Open, documented and future proof.


*Supports storage of per-vertex normals, UV coordinates and custom vertex attributes.


*Can store very large geometries (billions of triangles and vertices).


*Very compact storage of 3D triangle geometries, using efficient entropy-reduction techniques, combined with state of the art entropy coding (LZMA). An STL file can usually be compressed to 5-6% of its original size.


*Lossless compression with user controllable precision:

    -True lossless compression (IEEE 754 32-bit floating point) for situations where you need 1:1 representation of your data.
    -Fixed point representation with user controllable accuracy when you want excellent compression ratios.


참고 링크 : http://openctm.sourceforge.net/?page=about


OpenCTM(좌측), OBJ 원본파일(우측)의 비교

(vertex와 triangle은 동일하지만 파일크기는 거의 30배 이상 차이나는 것을 볼 수 있다.)

Comments