天天看點

一文詳解 .obj .mtl 檔案格式

obj檔案是3D模型檔案格式。由Alias|Wavefront公司為3D模組化和動畫軟體"Advanced Visualizer"開發的一種标準,适合用于3D軟體模型之間的互導,也可以通過Maya讀寫。

  • 隻支援模型三角面資料和材質資訊,無動畫功能支援;
  • 其中幾何資訊由.obj檔案提供,材質資訊由.mtl檔案定義;
  • 檔案以行為機關表示一條資料,可以根據行開頭的字元判斷後續的内容;
  • 其中 # 字元表示注釋行

OBJ格式

# obj對應的材質檔案
# mtllib testvt.mtl
# 組名稱
g default
# o 對象名稱(Object name)
o testvt.obj
# 頂點
v -0.5 -0.5 0.1
v -0.5 -0.5 -0.1
v 0 0.5 0.1
v 0 0.5 -0.1
v 0.5 -0.5 0.1
v 0.5 -0.5 -0.1
# 紋理坐标
vt 0 1
vt 1 1
vt 0.5 0
# 頂點法線
vn 0 0 1
vn 0 0 -1
# 目前圖元所用材質
usemtl Default
# s Smooth shading across polygons is enabled by smoothing groups.
# Smooth shading can be disabled as well.
s off
# v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3(索引起始于1)    
f 1/1/1 5/2/1 3/3/1
f 6/2/2 2/1/2 4/3/2
           

MTL格式

# 定義一個名為 'xxx'的材質
newmtl xxx
# 材質的環境光(ambient color)
Ka 0 0 0
# 散射光(diffuse color)用Kd
Kd 0.784314 0.784314 0.784314
# 鏡面光(specular color)用Ks
Ks 0 0 0
# 折射值 可在0.001到10之間進行取值。若取值為1.0,光在通過物體的時候不發生彎曲。玻璃的折射率為1.5。
Ni 1
# 反射指數 定義了反射高光度。該值越高則高光越密集,一般取值範圍在0~1000。
Ns 400
# 濾光透射率
Tf 1 1 1
# 漸隐指數描述 參數factor表示物體融入背景的數量,取值範圍為0.0~1.0,取值為1.0表示完全不透明,取值為0.0時表示完全透明。
d 1
# 為漫反射指定顔色紋理檔案
map_Kd test_vt.bmp           

參考:

https://baike.baidu.com/item/OBJ%E6%96%87%E4%BB%B6/3574019 https://en.wikipedia.org/wiki/Wavefront_.obj_file

========== THE END ==========

文章首發于公衆号”CODING技術小館“,如果文章對您有幫助,可關注我的公衆号。

繼續閱讀