Open3
3Dデータ取り扱い基礎

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

dracoでobjを圧縮
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%)
