關於3D模型中的obj檔案

2021-09-20 18:51:37 字數 4119 閱讀 3722

obj檔案不需要任何種檔案頭,檔案由一行行文字組成,注釋行以符號「#」為開頭,空格和空行可以隨意加到檔案中。

有字的行都由一兩個標記字母也就是關鍵字(keyword)開頭,關鍵字可以說明這一行是什麼樣的資料。

多行可以邏輯地連線在一起表示一行,方法是在每一行最後新增乙個連線符(\)。 注意連線符(\)後面不能出現空格或tab格,否則將導致檔案出錯。

下列關鍵字可以在obj檔案使用。在這個列表中, 關鍵字根據資料型別排列,每個關鍵字有一段簡短描述

頂點資料(vertex data):

v 幾何體頂點(geometric vertices)

vt 貼圖座標點(texture vertices)

vn 頂點法線(vertex normals)

vp 引數空格頂點 (parameter space vertices)

自由形態曲線(free-form curve)/表面屬性(su***ce attributes):

deg   度(degree)

bmat   基礎矩陣(basis matrix)

step   步尺寸(step size)

cstype 曲線或表面型別 (curve or su***ce type)

元素(elements):

p  點(point)

l  線(line)

f  面(face)

curv  曲線(curve)

curv2  2d曲線(2d curve)

surf  表面(su***ce)

自由形態曲線(free-form curve)/表面主體陳述(su***ce body statements):

parm 引數值(parameter values )

trim 外部修剪迴圈(outer trimming loop)

hole 內部整修迴圈(inner trimming loop)

scrv 特殊曲線(special curve)

sp 特殊的點(special point)

end  結束陳述(end statement)

自由形態表面之間的連線(connectivity between free-form su***ces):

con 連線 (connect)

成組(grouping):

g  組名稱(group name)

s 光滑組(smoothing group)

mg 合併組(merging group)

o 物件名稱(object name)

顯示(display)/渲染屬性(render attributes):以乙個立方體的obj模型為例

# 一些注釋

mtllib cube.mtl

g default

#v 開頭的行暗示是頂點資料的空間座標

#立方體,總共有8個頂點(v 開頭的行正好是8行)

v -0.500000 -0.500000 0.500000

v 0.500000 -0.500000 0.500000

v -0.500000 0.500000 0.500000

v 0.500000 0.500000 0.500000

v -0.500000 0.500000 -0.500000

v 0.500000 0.500000 -0.500000

v -0.500000 -0.500000 -0.500000

v 0.500000 -0.500000 -0.500000

#vt 開頭的行表示是頂點資料之紋理座標(texture coordinate)

#vt 開頭的行從第一行直到結束的第二十四行分別對應於索引1-24,

vt 0.001992 0.001992

vt 0.998008 0.001992

vt 0.001992 0.998008

vt 0.998008 0.998008

vt 0.001992 0.001992

vt 0.998008 0.001992

vt 0.001992 0.998008

vt 0.998008 0.998008

vt 0.001992 0.001992

vt 0.998008 0.001992

vt 0.001992 0.998008

vt 0.998008 0.998008

vt 0.001992 0.001992

vt 0.998008 0.001992

vt 0.001992 0.998008

vt 0.998008 0.998008

vt 0.001992 0.001992

vt 0.998008 0.001992

vt 0.001992 0.998008

vt 0.998008 0.998008

vt 0.998008 0.998008

vt 0.001992 0.998008

vt 0.998008 0.001992

vt 0.001992 0.001992

#vn的行表示是頂點資料之法線向量(normal)

#vn的行從開始的第一行直到結束的第二十四行分別對應於索引1-24。

vn 0.000000 0.000000 1.000000

vn 0.000000 0.000000 1.000000

vn 0.000000 0.000000 1.000000

vn 0.000000 0.000000 1.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 1.000000 0.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 0.000000 -1.000000

vn 0.000000 -1.000000 0.000000

vn 0.000000 -1.000000 0.000000

vn 0.000000 -1.000000 0.000000

vn 0.000000 -1.000000 0.000000

vn 1.000000 0.000000 0.000000

vn 1.000000 0.000000 0.000000

vn 1.000000 0.000000 0.000000

vn 1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

vn -1.000000 0.000000 0.000000

#然後自由組合v,vt,zn索引,來得到需要的頂點。

#f開頭的行,表示面(face),以3個'v'索引'vt'索引'vn'索引描述的頂點組成。

s 1g pcube1

usemtl file1sg

f 1/1/1 2/2/2 3/3/3

f 3/3/3 2/2/2 4/4/4

s 2f 3/13/5 4/14/6 5/15/7

f 5/15/7 4/14/6 6/16/8

s 3f 5/21/9 6/22/10 7/23/11

f 7/23/11 6/22/10 8/24/12

s 4f 7/17/13 8/18/14 1/19/15

f 1/19/15 8/18/14 2/20/16

s 5f 2/5/17 8/6/18 4/7/19

f 4/7/19 8/6/18 6/8/20

s 6f 7/9/21 1/10/22 5/11/23

f 5/11/23 1/10/22 3/12/24

擷取3D遊戲模型為obj格式

1,將d3d9.dll snapconfig.cfg拷貝或覆蓋到遊戲執行目錄 若果原先已經有d3d9.dll,則先備份以便還原 2,執行遊戲,所有貼圖和模型會自動儲存到執行目錄的snapmesh資料夾。3,擷取完後不在使用時記得將d3d9.dll刪除或還原,否則每次啟動都會擷取導致遊戲很卡。snap...

3D模型預處理(格式轉換 obj轉換為gltf)

npm install g obj2gltf然後在node modules目錄下找到obj2gltf,把需要轉的obj和帶的貼圖放在obj2gltf根目錄下 貌似是obj2gltf的bug,指定目錄似乎不管 在obj2gltf目錄下開啟命令列,進入到obj2gltf根目錄,執行下列語句即可成功轉換,...

關於建立3D線框模型的解答

bricscad 20 for mac 關於建立3d線框模型 3d線框模型是真實物件的邊緣或骨骼表示。3d線框模型由定義物件的邊緣或中心線的點,線,弧,圓和其他曲線組成。您可以使用3d線框模型來 強烈建議您將3d線框幾何體保留在單獨的參考層上,以便在檢查3d模型的完整性或重新建立模型的某些部分時方便...