NEUROMANTIC

自分でC/C++/UE4/Graphics/ゲームなどをやったことをメモするブログ

「8 Most Common 3D File Formats in 2019」のメモ

all3dp.com

  • 3Dファイルの基本的な目的は、3D情報をテキストまたは特定のテンプレートを持ったバイナリファイルに込めたものである。
    • 3D情報とは、Geometry, Appereance, SceneそしてAnimationsがある。3Dモデルのファイルの中では一部しか込められないものもある(例えばSTL)
    • GeometryはModelの図形の情報を持つ。
    • AppearanceはModelの色、テクスチャの情報、マテリアルのタイプなどがある。
    • Sceneは3Dモデル以外に光の位置、カメラ、また補助のオブジェクトの情報を持つ。
    • Animationは3Dモデルのアニメーションを記す。

Neutralな3Dモデルのファイルが一番

  • それぞれの3Dツールからの独占的なファイル以外に、オープンソースか独占的でない3Dファイルもある。代表的な例がSTLCOLLADA。この2つのファイルは主にCADで使われる。
3D File Format Type
STL 独立
OBJ ASCII形式のファイルだけ独立
FBX 独占的だが、広く使われている
COLLADA 独立
3DS 独占
IGES 独占
STEP 独占
VRML/X3D 独占
glTF 独立

どれを使うか

  • 3Dプリンティングをさせる時には、プリンター自体の解像度に限界があって、そして一つの色しか使うことが多いので大体はSTLを使うらしい。STLはGeometryの情報しかセーブ出来ないようだ。
    • OBJの場合にはSTLにAppearanceの情報までセーブすることが出来る。
  • ゲームかレンダリングさせる場合には、アニメーションとAppearanceが豊かじゃないとならないため、FBXまたはCOLLADAが主流である。(glTFというのも全て支援しているが、Faceが三角形に限られるというのが短所)
  • IGESSTEPはエンジニアリング(飛行機など)に使われるそうだ。ものすごく精密なのが長所らしい。

各フォーマットの特徴

OBJ

  • ジオメトリを生成する時にApproximateかPreciseか選択することが出来る。Approximateの場合、Faceが三角形に限らなくても良い。Preciseの場合には表現がNURBSを使用する。(NURBSB-Splineの変種)
  • Appearanceの支援をしている。しかし別途のファイル(.MTL)として情報をセーブしているし、.OBJではその.MTLのパスをしてしているだけである。
  • ASCIIの.OBJファイルはオープンソースである。

FBX

en.wikipedia.org

  • AutoDeskからの独占的なフォーマットで、今は多くのゲームか映画業界などで使われている。
  • ジオメトリ、見た目、そしてスケルトンアニメーション、Morphsまで支援している。
  • バイナリとASCII両方支援している。

COLLADA

  • .FBXとは違って、Khronos Groupから管理している中立(独立)性のフォーマットである。
  • .FBXが支援している機能は全て支援しているし、物理に関する値もセーブ出来る。
  • XMLマークアップ言語を使用して値をセーブしている。
  • しかし.FBXよりは人気度が低い。

参照

f:id:neuliliilli:20190517214834p:plain
8個のフォーマットの比較表