Three.js学习之网格

前端之家收集整理的这篇文章主要介绍了Three.js学习之网格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_4030@

前言


@H
403_0@  小编之前发布过关于<a target="_blank" href="//www.jb51.cc/article/89579.htm">几何形状和<a target="_blank" href="//www.jb51.cc/article/89889.htm">材质,相信大家看过学习之后,我们就能使用他们来创建物体了。最常用的一种物体就是网格(Mesh),网格是由顶点、边、面等组成的物体;其他物体包括线段(Line)、骨骼(Bone)、粒子系统(ParticleSystem)等。创建物体需要指定几何形状和材质,其中,几何形状决定了物体的顶点位置等信息,材质决定了物体的颜色、纹理等信息。


@H_4030@

1.创建网格


@H
403_0@  在前几篇中,我们学习了如何创建<a target="_blank" href="//www.jb51.cc/article/89579.htm">几何形状与<a target="_blank" href="//www.jb51.cc/article/89889.htm">材质,而网格的创建非常简单,只要把几何形状与材质传入其构造函数。最常用的物体是网格(Mesh),它代表包含点、线、面的几何体,其构造函数是:


<div class="jb51code">
<pre class="brush:js;">
Mesh(geometry,material)

@H_403_0@  下面,让我们通过一个具体的例子了解如何创建网格:

color: 0xffff00

});

var geometry = new THREE.CubeGeometry(1,2,3);

var mesh = new THREE.Mesh(geometry,material);

scene.add(mesh);

@H_403_0@  如果material和geometry之后不会复用的话,也可以合在一起写为:

color: 0xffff00

})

);

scene.add(mesh);

@H_403_0@  添加光照后,得到的效果为:

@H_403_0@  如果不指定material,则每次会随机分配一种wireframe为true的材质,每次刷新页面后的颜色是不同的,一种可能的效果是:

@H_403_0@  源码:

<Meta charset="UTF-8"> 3.js测试9.1
@H_403_0@

2.修改属性

@H_403_0@  

2.1 修改材质

@H_403_0@  除了在构造函数中指定材质,在网格被创建后,也能对材质进行修改

color: 0xffff00

});

var geometry = new THREE.CubeGeometry(1,material);

scene.add(mesh);

mesh.material = new THREE.MeshLambertMaterial({

color: 0xff0000

});

@H_403_0@  最终显示的颜色是红色:

@H_403_0@  源码:

<Meta charset="UTF-8"> 3.js测试9.2
@H_403_0@  

2.2 位置、缩放、旋转

@H_403_0@  位置、缩放、旋转是物体三个常用属性。由于THREE.Mesh基础自THREE.Object3D,因此包含scale、rotation、position三个属性。它们都是THREE.Vector3实例,因此修改其值的方法是相同的,这里以位置为例。

@H_403_0@  THREE.Vector3有x、y、z三个属性,如果只设置其中一个属性,则可以用以下方法

@H_403_0@  如果需要同时设置多个属性,可以使用以下两种方法

@H_403_0@  或者:

@H_403_0@  缩放对应的属性是scale,旋转对应的属性是rotation,具体方法与上例相同,分别表示沿x、y、z三轴缩放或旋转。

@H_403_0@  源码:

<Meta charset="UTF-8"> 3.js测试9.3
@H_403_0@本文的内容到这就结束了,文章通过详细实例及图片介绍了Three.js中的网格,希望本文对大家学习Three.js有所帮助。

猜你在找的JavaScript相关文章