理解obj模型檔案的格式和每行的意義

2021-09-10 13:19:56 字數 1360 閱讀 4834

示例obj模型檔案:

#blender v2.60 (sub 0) obj file: 『』

#www.blender.org

mtllib cube.mtl

o cube

v 1.000000 -1.000000 -1.000000

v 1.000000 -1.000000 1.000000

v -1.000000 -1.000000 1.000000

v -1.000000 -1.000000 -1.000000

v 1.000000 1.000000 -1.000000

v 1.000000 1.000000 1.000001

v -1.000000 1.000000 1.000000

v -1.000000 1.000000 -1.000000

usemtl material

f 1 2 3 4

f 5 8 7 6

f 2 6 7 3

f 3 7 8 4

f 5 1 4 8

usemtl material.001

f 1 5 6 2

obj檔案格式:

obj格式的檔案由若干個部分組成,包括頂點座標部分、表面定義部分、材質定義部分等。每個部分定義了多個頂點、法線、表面等等。

(1)以井號(#)開頭的行表示注釋,上面1行和2行就是軟體根據自身版本建立出來的注釋。

(2)第3行引用了乙個外部材質檔案。obj格式將模型的材質資訊儲存在外部的mtl格式的檔案中。

mtllib < 外部材質檔名 >這裡,外部材質檔案是cube.mtl。

(3)第4行按照如下格式指定了模型的名稱:

o < 模型名稱 > 示例程式中沒有用到這條資訊

(4)第5行到第12行按照如下格式定義了頂點的座標,其中w是可選的,如果沒有就預設為1.0 。

v x y z [w]本例中的模型時乙個標準的立方體,共有8個頂點。

(5)第13行到第20行先指定了某個材質,然後列舉了使用這個材質的表面。第13行指定了材質名稱,該材質被定義在第3行引用的mtl檔案中。

usemtl < 材質名 >

(6)接下來的第14行到第18行定義了使用這個材質的表面。每個表面是由頂點、紋理座標和法線的索引序列定義的。

f v1 v2 v3 v4 ···

其中v1、v2、v3、v4是之前定義的頂點的索引值。注意,這裡頂點的索引值從1開始,而不是從0開始。本例為了簡單,沒有包含法線,如果包含了法線向量,就需要遵照如下格式:

f v1//vn1 v2//vn2 v3//vn3 ···

其中,vn1、vn2等式法線向量的索引值,也是從1開始。

(7)第19行到第20行定義了使用了另乙個材質的表面,即橘黃色的表面。

FBX格式和obj格式的區別

目前主流常用的通用模型格式fbx格式和obj都是眾多可以用在眾多軟體平台的。既然兩個都是通用模型格式,那麼fbx格式和obj格式的區別到底是什麼呢?很多三維設計師朋友都聽說過這兩個格式,但卻不知道該如何選擇,接下來就為大家解讀對比一下吧。1 fbx格式和obj格式都是三維通用模型格式,可以用在目前幾...

OBJ檔案格式的詳細介紹

格式 v x y z 意義 每個頂點的座標 格式 vt u v w 意義 繪製模型的三角麵片時,每個頂點取畫素點時對應的紋理上的座標。紋理的座標指的是,紋理如果被放在螢幕上顯示時,以螢幕左下角為原點的座標。注意 w一般用於形容三維紋理,大部分是用不到的,基本都為0。格式 vn x y z 意義 繪製...

關於3D模型中的obj檔案

obj檔案不需要任何種檔案頭,檔案由一行行文字組成,注釋行以符號 為開頭,空格和空行可以隨意加到檔案中。有字的行都由一兩個標記字母也就是關鍵字 keyword 開頭,關鍵字可以說明這一行是什麼樣的資料。多行可以邏輯地連線在一起表示一行,方法是在每一行最後新增乙個連線符 注意連線符 後面不能出現空格或...