Open3

3Dデータ取り扱い基礎

defuntydefunty

ファイル形式

  • obj: 汎用3Dデータフォーマットの一つ。gltf以前のもの
  • gltf: jsonファイル。メッシュ画像データなどの参照先が書いてある。ランタイム用途向けに最適化しており、WebGLとの親和性が高い。
  • glb: gltfと各種リソースを一つにまとめたバイナリファイル(production向け)

obj -> gltf

https://github.com/CesiumGS/obj2gltf
npx obj2gltf -i mode.obj -o model.gltf

サイズ例
84035783 [byte] -> 78710011 [byte]

obj -> glb

npx obj2gltf -b -i mode.obj -o model.gltf

サイズ例
84035783 [byte] -> 59015140 [byte]

gltf (glb) -> jsx(tsx)

https://github.com/pmndrs/gltfjsx
npx gltfjsx model.gltf

defuntydefunty

dracoでobjを圧縮

https://github.com/google/draco/blob/master/BUILDING.md#mac-os-x

dracoのビルド (Mac OS)

  • エラー発生
code 1.5 not supported.

参考:https://wiki.vcmi.eu/How_to_build_VCMI_(macOS)

  • エラー発生2
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:16 (project):
  No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:16 (project):
  No CMAKE_CXX_COMPILER could be found.

コンポーネントをインストールするためにXcodeの初期化をする必要がある。一度Xcodeを起動すると解決した。

備考:Xcodeを使わずにビルドできる

$ mkdir build_dir && cd build_dir
$ cmake ../
$ make

※Xcodeからビルドする方法も調べてみる(ヒマだったら)

draco_encoderでobj圧縮

$ ./draco_encoder -i ../testdata/hoge.obj -o out.drc

Encoder options:
  Compression level = 7
  Positions: Quantization = 11 bits
  Normals: Quantization = 8 bits
  Generic: Quantization = 8 bits

For better compression, increase the compression level up to '-cl 10' .

サイズ例
84035783 [byte] -> 4111170 [byte] (4.9%)