案例:Three 纹理贴图 3D地球陆地不反光     状态:可编辑再运行    进入竖版
 运行结果 
x
 
1
<!DOCTYPE html>
2
<html>
3
<head>
4
  <meta charset="UTF-8">
5
  <style>
6
    body {
7
      margin: 0;
8
      overflow: hidden;
9
      /* 隐藏body窗口区域滚动条 */
10
    }
11
  </style>
12
  <!--引入three.js三维引擎-->
13
  <script src="/js/threejs/threer92.js"></script>
14
  <script src="/example/threejs/solarsystem/files/OrbitControls.js"></script>
15
16
</head>
17
18
<body>
19
  <script>
20
    //创建场景
21
    var scene = new THREE.Scene();
22
23
var geometry = new THREE.SphereGeometry(100, 25, 25); //球体
24
// TextureLoader创建一个纹理加载器对象,可以加载图片作为几何体纹理
25
var textureLoader = new THREE.TextureLoader();
26
// 加载纹理贴图
27
var texture = textureLoader.load('/img/threejs/earth.jpg');
28
// 加载法线贴图
29
var textureNormal = textureLoader.load('/img/threejs/threejs54EarthNormal.png');
30
var material = new THREE.MeshPhongMaterial({
31
  map: texture, // 普通颜色纹理贴图
32
  specularMap: textureNormal, //高光贴图,注释本行,则陆地反光效果会和海洋一样
33
  shininess: 30,//高光部分的亮度,默认30
34
}); //材质对象Material
35
var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
36
scene.add(mesh); //网格模型添加到场景中
37
      
38
    /**
39
     * 光源设置
40
     */
41
    //点光源
42
    var point = new THREE.PointLight(0xffffff);
43
    point.position.set(400, 200, 300); //点光源位置
44
    scene.add(point); //点光源添加到场景中
45
    //环境光
46
    var ambient = new THREE.AmbientLight(0xaaaaaa);
47
    scene.add(ambient);
48