案例:Three 加载.obj和材质(手镯)     状态:可编辑再运行    进入竖版
 运行结果 
x
 
1
<!DOCTYPE html>
2
<html>
3
4
<head>
5
  <meta charset="UTF-8">
6
  <title>Three 加载.obj和材质(手镯)</title>
7
  <style>
8
    body {
9
      margin: 0;
10
      overflow: hidden;
11
      /* 隐藏body窗口区域滚动条 */
12
    }
13
  </style>
14
  <script src="https://www.w3xue.com/js/threejs/threer92.js"></script>
15
  <script src="https://www.w3xue.com/example/threejs/solarsystem/files/OrbitControls.js"></script>
16
  <!-- 引入obj模型加载库OBJLoader.js -->
17
  <script src="/js/threejs/OBJLoader.js"></script>
18
  <!-- 引入obj模型材质加载库MTLLoader.js -->
19
  <script src="/js/threejs/MTLLoader.js"></script>
20
</head>
21
22
<body>
23
    <div id="app">
24
25
    </div>
26
    
27
  <script>
28
    /**
29
     * 创建场景对象Scene
30
     */
31
    var scene = new THREE.Scene();
32
33
    /**
34
     * OBJ和材质文件mtl加载
35
     */
36
    var OBJLoader = new THREE.OBJLoader();//obj加载器
37
    var MTLLoader = new THREE.MTLLoader();//材质文件加载器
38
    MTLLoader.load('/js/threejs/bracelet.mtl', function(materials) {
39
      // 返回一个包含材质的对象MaterialCreator
40
      console.log(materials);
41
      //obj的模型会和MaterialCreator包含的材质对应起来
42
      OBJLoader.setMaterials(materials);
43
      OBJLoader.load('/js/threejs/bracelet.obj', function(obj) {
44
        scene.add(obj);//返回的组对象插入场景中
45
        obj.children[0].scale.set(5,5,5);//网格模型缩放
46
        // 更换纹理贴图 texture1.png texture2.png texture3.png
47
        var texture = new THREE.TextureLoader().load('/js/threejs/texture1.png');
48
        obj.children[0].material.map=texture