.obj和.mtl格式详解
obj文件是3D模型文件格式。 Alias|Wavefront公司为3D建模和动画软件“高级可视化器”开发的标准,适用于3D软件模型之间的互感,也可以在Maya中读写。
只支持模型的三角面数据和材质信息,不支持动画功能; 其中几何信息由. obj文件提供,材质信息由. mtl文件定义。
.obj格式
与# obj对应的材质文件
# mtllib testvt.mtl
#组名称
g默认
# 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
#当前实体使用的材质
use MTL默认
# ssmoothshadingacrosspolygonsisenabledbysmoothinggroups。
# smoothshadingcanbedisabledaswell。
关闭系统
# v1/vt1/vn1v2/vt2/VN 2v3/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 #材质的Kd Kd 0.784314 0.784314 0.784314 #用于环境光ka00散射光diffuse color 玻璃的折射率是1.5。 Ni 1 #反射指数定义反射高光度。 该值越高,高光越密,通常取0到0~1000之间的值。 Ns 400 #滤光器透射率Tf 1 1 1 #淡入指数描述参数factor表示物体融入背景的数量,值的范围为0.0~1.0,值为1.0时完全不透明,值为0.0时完全透明。 为d 1 #漫反射指定颜色纹理文件map_Kd D:Threejsthree.js学习貂蝉1411_DiaoChan_D_512.png
http://www.Sina.com/http://www.Sina.com /
核心代码:
//*
*加载obj和材质文件mtl
*/
varobjloader=new three.obj loader (; //obj加载程序
varmtlloader=new three.MTL loader (; //材质文件加载器
mtlLoader.load (貂蝉/貂蝉. MTL ),function(materials )。
返回包含//材质的对象材质创建器
console.log (材料;
//obj模型对应于材质创建器中包含的材质
bjloader.set materials (materials;
OBJLoader.load ('貂蝉/貂蝉. obj ',function () obj )。
控制台. log (obj;
Sene.add(obj; //返回的组对象插入到场景中
//加载后的操作
obj.children [0].scale.set (2,2 ); //缩放球体的网格模型
//通过调节参数,地球表面的凹凸感增强
obj.children [0].material.normal scale.set (3,3 );
() )
() )
效果: