Wavefront_.objファイル
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この項目「Wavefront .objファイル」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:英語版 "Wavefront .obj file" 01:38, 10 August 2020)
修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2016年5月)

OBJ ジオメトリ形式拡張子.obj
MIMEタイプmodel/obj
開発者Wavefront Technologies(英語版)
種別3Dモデル形式

Wavefront OBJ (.OBJ) は、当初Wavefront Technologies(英語版)が、同社のアニメーションパッケージであるAdvanced Visualizerのために開発したジオメトリ定義ファイル形式である。

ファイル形式が公開されると、他の3DCGソフトウェアベンダーも対応を行っていった。おおよそ、これは広く受け入れられた形式である。

OBJファイル形式は、3Dジオメトリのみを表現する単純なデータ形式である。3Dジオメトリのみとは則ち、各頂点の位置、各テクスチャ座標の頂点UV位置、頂点法線(英語版)、頂点リストとして定義された各ポリゴンを形作る面、そしてテクスチャ頂点である。頂点は標準で反時計回りに記録され、面法線の明示的宣言を不要としている。OBJ座標は単位を持っていないものの、OBJ形式は人間の読めるコメント行内にスケール情報を含むことができる。
ファイル形式

ハッシュ文字(#)に続く文字はコメントである。# これはコメントである。

OBJファイルは、頂点データ、自由曲線/曲面 (free-form curve/surface) 属性、要素、自由曲線/曲面本文、自由曲面間の連続性、グループおよび表示/描画属性情報を含むことができる。特に一般的な要素は、ジオメトリ頂点、テクスチャ座標、頂点法線、ポリゴン面である:# (x,y,z[,w]) 座標によるジオメトリ頂点の一覧。w は任意であり、標準は 1.0 である。右手座標系である。v 0.123 0.234 0.345 1.0v ......# (u, v [,w]) 座標によるテクスチャ座標の一覧。座標は0から1の間で変化することができる。v と w は任意であり、標準は 0 である。vt 0.500 1 [0]vt ......# (x,y,z) 形式による頂点法線の一覧; 法線は単位法線ではないかもしれない。vn 0.707 0.000 0.707vn ......# ( u [,v] [,w] ) 形式によるパラメータ空間頂点 ; 自由ジオメトリ文 (以下を参照)vp 0.310000 3.210000 2.100000vp ......# ポリゴン面要素 (以下を参照)f 1 2 3f 3/1 4/2 5/3f 6/4/1 3/5/3 7/6/5f ......# ライン要素 (以下を参照)l 5 8 1 2 4 9
ジオメトリ頂点

頂点 (vertex) は、文字vから始まる行で指定できる。これには (x,y,z[,w]) 座標が続く。w は任意であり、標準は 1.0 である。右手座標系である。いくつかのアプリケーションは、赤、緑および青の値を、x、yおよびzの後に入れることで、頂点カラーに対応する。色の値の範囲は 0 から 1 である[1]
パラメータ空間頂点

自由形式のジオメトリ文は、文字列vpから始まる行で指定できる。曲線 (curve) または曲面 (surface) のパラメータ空間における点を定義する。u のみは曲線の点に必要であり、u および v は曲面の点と非有理境界曲線 (non-rational trimming curve) の制御点に必要であり、さらに u、v および w (weight: 重み) は有理境界曲線 (rational trimming curve) の制御点に必要である。
面要素

面 (face) は頂点、テクスチャ、法線のインデックスのリストを使って定義される。これはそれぞれのインデックスが1から始まり、定義された参照要素の順序に応じて増加するvertex_index/texture_index/normal_indexの形式による。四角形のようなポリゴンは三つより多くのインデックスを使うことで定義できる。

OBJ形式はまた、NURBS曲面のような、オブジェクト定義に曲線と曲面を使用する自由形式ジオメトリに対応する。
頂点インデックス

有効な頂点インデックスは、以前に定義した頂点リストの、対応する頂点要素に一致する。もしインデックスが正なら、1から始まる、その頂点リストのオフセットを指す。もしインデックスが負なら、それは頂点リストの終わりを相対的に指し、-1は最後の要素を差す。

それぞれの面は三つ以上の頂点を含む。f v1 v2 v3 ....
頂点テクスチャ座標インデックス

任意により、面を定義する際、テクスチャ座標インデックスは、テクスチャ座標を指定することに使われることができる。面を定義する際、頂点インデックスにテクスチャ座標インデックスを追加するには、頂点インデックスの後、直ぐにスラッシュを入れ、その後、テクスチャ座標インデックスを入れる必要がある。スラッシュの前後に空白は許可されていない。有効なテクスチャ座標インデックスは、以前に定義した1から始まるテクスチャ座標の一覧にある対応する要素と一致する。f v1/vt1 v2/vt2 v3/vt3 ...
頂点法線インデックス

任意により、面を定義する際、法線インデックスは頂点のための法線ベクトルを指定するために使われることができる。面を定義する際、頂点インデックスに法線インデックスを追加するには、テクスチャ座標の後、二個目のスラッシュを入れなければならず、その後、法線インデックスを入れる。有効な法線インデックスは、以前に定義した1から始まる法線の一覧にある対応する要素と一致する。それぞれの面は、三つ以上の要素を含む。f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ....
テクスチャ座標インデックス無しの頂点法線インデックス

テクスチャ座標は任意であるため、それら無しでジオメトリを定義することは可能であるが、その場合、頂点インデックスの後、法線インデックスを挿入する前に、二つのスラッシュを挿入しなければならない。f v1//vn1 v2//vn2 v3//vn3 ...
ライン要素

文字"l"から始まる記述はポリラインを構築する頂点順序を指定する。l v1 v2 v3 v4 v5 v6 ...
他のジオメトリ形式

OBJファイルはTaylorおよびBスプラインのようないくつかの異なる種類の補間を使用した高次曲面に対応しているものの、サードパーティのファイルリーダーにおけるそれらの機能のサポートは、普遍的とはほど遠い。また、OBJファイルは、メッシュ階層や、いかなる種類のアニメーション/変形 (例えば、頂点スキニングやメッシュモーフ) にも対応していない。
マテリアル参照

ポリゴンのビジュアル面を記述するマテリアル(英語版)は、外部の.mtlファイルに保存される。一つより多くの外部のMTLマテリアルファイルが、一つのOBJファイルから参照されることができる。.mtlファイルは一つ以上の名前のマテリアル定義を含むことができる。mtllib [外部 .mtl ファイル名]...

このタグはタグに続いてマテリアル名を指定する。マテリアル名は、外部.mtlファイルで定義された名づけられたマテリアルに一致する。usemtl [マテリアル名]...

名づけられたオブジェクトとポリゴングループは以下のタグを通して指定される。o [オブジェクト名] ... g [グループ名] ...

ポリゴン間のスムーズシェーディングは、スムージンググループにより有効化される。s 1 ... # スムーズシェーディングは無効化することもできる。 s off ...
相対および絶対インデックス

OBJファイルは、その一覧構造に関して、その絶対位置 (1で最初の定義された頂点を、NでN番目の定義された頂点を表す)か、その相対位置 (-1で最新の頂点を表す)かを問わず、頂点、法線などを参照することが可能である。しかしながら、全てのソフトウェアが後者の方法をサポートするというわけではなく、逆にいくつかのソフトウェアは本質的に後者の形で書き込みを行い (頂点オフセットなどの再計算が不必要な要素を追加するのに好都合なため)、時折非互換を導く。
マテリアル・テンプレート・ライブラリ

MTLマテリアル形式拡張子.mtl
MIMEタイプmodel/mtl
開発者Wavefront Technologies(英語版)
種別3Dテクスチャ形式

マテリアルテンプレートライブラリ形式 (MTL) 又は .MTL ファイル形式は、一つ以上のOBJファイルに含まれるオブジェクトの面のシェーディング (マテリアル) 特性を記述するために必携のファイル形式であり、同じくWavefront Technologiesにより定義された。.OBJファイルは一つ以上の.MTLファイル (これを「マテリアルライブラリ」と呼ぶ) を参照し、そこから、名前によって一つ以上のマテリアル記述を参照する。.MTL はコンピューターレンダリングの目的のための、フォン反射モデルに関する面の光反射特性を定義するASCIIファイルである。この標準は、異なるコンピューターソフトウェアパッケージの間に広範なサポートがあり、便利なマテリアル交換形式となっている。

MTL形式は未だ広く使われているものの、時代遅れで、スペキュラマップおよびパララックスマップのような後発の技術に完全対応していない。しかしながら、フォーマットのオープン性と直感性により、これらのパラメータはカスタムのMTLファイルジェネレータを使って簡単に追加することができる。

MTL形式はいくつかの形式を定義している[2][3]
基本的なマテリアル

単体の .mtl ファイルは、複数のマテリアルを定義することができる。マテリアルはファイル内に逐次定義される。それぞれはnewmtlコマンドより始まる:# 'Colored'と名づけたマテリアルを定義newmtl Colored

マテリアルのアンビエント色は、Kaを使って記述される。色の定義は、それぞれのチャンネルの値が0から1の間となるRGBである。# 白Ka 1.000 1.000 1.000

似たように、ディフューズ色は、Kdを使って記述される。# 白Kd 1.000 1.000 1.000

スペキュラ色は、Ksを使って記述され、スペキュラ指数 Ns を使って重み付けされる。 # 黒 (無効)Ks 0.000 0.000 0.000# 0から1000の範囲Ns 10.000

マテリアルは透過できる。これは「ディゾルブ」(dissolve) とも呼ばれる。本物の透過とは異なり、結果はオブジェクトの厚みに依存しない。"d"における1.0の値は標準であり完全に不透明を意味し、Trの0.0の値と同等である。# いくつかの実装は 'd' を使う。d 0.9 # 他は 'Tr' (反転) を使う。Tr 0.1

マテリアルはそのサーフィスの光学密度を持つことができる。これは屈折率としても知られている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:34 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef