以下の内容はhttps://redhologerbera.hatenablog.com/entry/2025/03/08/234722より取得しました。


obj形式のファイルフォーマットを理解する④ Obj形式のデータを自作するその②

本日は昨日に引き続きOBJを自作していきます。

前回はデータ手打ちでOBJモデルを作成できました。

 OBJのモデルはテキストファイルであるためフォーマットを理解していれば手打ちで入力することができます。

〇OBJ形式

 objはサーフェスモデルの中間拡張子として用いられるフォーマットです。

 ほかのフォーマットと異なりリグ構造などを含めることができず、汎用性が高いとは呼べませんが、シンプルであるうえに軽量であることが特徴であり、単にメッシュデータのみを扱いたい場合やもともとリグなどを含めることを想定していないスキャンデータ等に用いられる傾向があります。

〇UVとポリゴン

前回は1ポリゴンの単独データを作成しました。

今回は複数のポリゴンを作成していきます。

まずは2ポリゴンの平面を作成します。これは共有する2つの頂点を合わせ4頂点であらわされています。

普通に頂点を追加して面を意味するfを2つ設定していきます。

v 0 0 0
v 1 1 0
v 0 1 0
v 1 0 0
vn 0 0 1
vn 0 0 1 
vn 0 0 1
vn 0 0 1
vt 0 1 
vt 0 1 
vt 0 1
vt 0 1
f  1/1/1 2/2/2 3/3/3
f  1/1/1 4/4/4 2/2/2

これによって次のようにQuadが生成されます。

〇UV

ここまではUVを意味するvtは仮で0 1を入れていました。

これは各頂点のUV座標が(x,y )= (0,1)であることを意味しています。

つまりこのモデルのUV座標を見ると次のようになっています。

座標0,1にすべての頂点が集まっていることがわかります。

そのため以下のようにvtをそれぞれ定義します。

v 0 0 0
v 1 1 0
v 0 1 0
v 1 0 0
vn 0 0 1
vn 0 0 1 
vn 0 0 1
vn 0 0 1
vt 0 0 
vt 1 1 
vt 1 0
vt 0 1
f  1/1/1 2/2/2 3/3/3
f  1/1/1 4/4/4 2/2/2

これを読み込むことでQuadに対応するUV座標を作成することができました。

本日は2ポリゴンのモデルとUVについてみていきました。

本日は以上です。




以上の内容はhttps://redhologerbera.hatenablog.com/entry/2025/03/08/234722より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14