Three.js学习2_场景相关

场景参数设置

  部分内容展示:

    

  场景相关内容, 下文将一一解释

  1. 构造器Scene(),
  2. 属性:
    1. fog
    2. overrideMaterial
    3. autoUpdate
    4. background
  3. 方法
    1. toJSON
    2. dispose

1. 构造器

  构造一个场景, let scene = new THREE.Scene()

2. 属性

2.1 fog

  该属性表示线性雾, 就和实际生活中类似, 距离越远, 可视度越低

 

1     let scene = new THREE.Scene();
2     let fog = new THREE.Fog(0xffffff, 1, 20);
3     scene.fog = fog;

 

  效果如上图所示

2.2 overrideMaterial

  用于覆盖场景中所有物体的材质, 关于材质在后续会讲到.

  这里简单讲解下物体, 每个物体由两部分组成, 一个是几何结构, 一个是用于展示的材质

  代码及效果如下:  

         

 1     let scene = new THREE.Scene();
 2 
 3     let material1 = new THREE.MeshBasicMaterial({
 4         // color: 0x00ff00,
 5         vertexColors: THREE.VertexColors,
 6         wireframe: true
 7     });
 8 
 9     // 覆盖所有材质
10     scene.overrideMaterial=material1;
11 
12     let geometry = new THREE.BoxGeometry( 1, 1, 1 );
13     let meterial2 = new THREE.MeshBasicMaterial( {
14         vertexColors: THREE.VertexColors,
15         // wireframe: true
16     });
17     let cube = new THREE.Mesh(
18         geometry,
19         meterial2
20     );
21     scene.add(cube);

  解释: 

  3-7行创建材质, 10行场景覆盖所有材质, 12行创建正方体, 13-16行创建材质, 创建带材质的正方体

  逻辑: 首先创建一个带有材质的正方体, 如上左图  ---->  10行语句直接将该正方体材质换成场景要求的, 如上右图

2.3 autoUpdate

  默认值为true,若设置了这个值,则渲染器会检查每一帧是否需要更新场景及其中物体的矩阵。 当设为false时,你必须亲自手动维护场景中的矩阵。还未使用过

2.4 background

  设置场景的背景, 可以是颜色, 照片, 或者是六个面组成的天空盒, 看起来就和真实环境十分类似

       

          更改背景颜色                          更改背景照片

1     let scene = new THREE.Scene();
2     // scene.background = new THREE.Color(0xfff0ff);
3     scene.background = new THREE.TextureLoader().load( "../项目/images/brick_uneven_stones_basecolor.png" );

  解释: 

  2行, 更改背景颜色, 3行更改背景图片

3. 方法

3.1 toJSON

  返回目前流行的JSON数据

console.log(scene.toJSON());

  返回结果

3.2 dispose

  清除WebGLRenderer内部所缓存的场景相关的数据。

  

 

posted @ 2020-08-30 20:40  随遇丿而安  阅读(353)  评论(0编辑  收藏  举报