1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > three.js加载三维模型(obj文件mtl文件)

three.js加载三维模型(obj文件mtl文件)

时间:2021-10-12 23:29:25

相关推荐

three.js加载三维模型(obj文件mtl文件)

.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 D:\Threejs\three.js学习\貂蝉\1411_DiaoChan_D_512.png

three.js加载三维模型(obj文件mtl文件)

核心代码:

/**

* OBJ和材质文件mtl加载

*/

var OBJLoader = new THREE.OBJLoader(); //obj加载器

var MTLLoader = new THREE.MTLLoader(); //材质文件加载器

MTLLoader.load('貂蝉/貂蝉.mtl', function(materials) {

// 返回一个包含材质的对象MaterialCreator

console.log(materials);

//obj的模型会和MaterialCreator包含的材质对应起来

BJLoader.setMaterials(materials);

OBJLoader.load('貂蝉/貂蝉.obj', function(obj) {

console.log(obj);

scene.add(obj); //返回的组对象插入场景中

// 加载后操作

obj.children[0].scale.set(2, 2, 2); //缩放球体网格模型

// 通过调节参数,地球表面的凹凸感更强

obj.children[0].material.normalScale.set(3, 3);

})

})

效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。