モデルを構成する「面」の話
面(face)の定義とは?
頂点が集まると「面(めん)」を作ることができます。
3Dモデルは、この面をたくさん組み合わせてできています。
面とは?
- 頂点(点)を 3つ以上 つないだときにできる「平らな形」
- 通常は 三角形(3点) や 四角形(4点) が使われる
- 面は 順番が大事(表と裏が決まる)
OBJファイルでの書き方
OBJでは、面は f
で書きます:
f 頂点1 頂点2 頂点3
たとえば:
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 0.0 1.0 0.0
f 1 2 3
→これは「1番、2番、3番の頂点で三角形の面を作る」という意味です。
頂点以外の情報も指定できる
OBJでは、面ごとにテクスチャ座標や法線ベクトルも指定できます:
f 頂点番号 / テクスチャ番号 / 法線番号
たとえば:
f 1/1/1 2/2/1 3/3/1
これは以下のような組合せで、三角形の面を作っています。
- 頂点1、テクスチャ1、法線1
- 頂点2、テクスチャ2、法線1
- 頂点3、テクスチャ3、法線1
記述のパターン:
書き方 | 意味 |
---|---|
f v1 v2 v3 |
頂点だけ |
f v1/vt1 v2/vt2 v3/vt3 |
頂点 + テクスチャ |
f v1//vn1 v2//vn2 v3//vn3 |
頂点 + 法線 |
f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 |
頂点 + テクスチャ + 法線 |
注意するポイント
- 面の順番:時計回り・反時計回りで表裏が変わる
- 法線の向き:裏返っていると黒く表示されたり、透明になることがある
- 三角形化:四角形より三角形のほうが軽くて処理が安定
まとめ
- 面(f) : 頂点で囲まれた平らな形
- 最小構成 : 頂点3つ(三角形)
- OBJでの表記 :
f 1 2 3
またはf 1/1/1 2/2/1 3/3/1
- 法線やUV :
/
を使って指定できる - 重要な点 : 順番が向き(表裏)に影響する