同一个网格模型,若使用不同的材质,最终显示出来的效果是不一样的。本章将介绍5中材质
PointsMaterial(点材质)
LineDashedMaterial(线材质)
MeshBasicMaterial、MeshLambertMaterial、MeshPhongMaterial(网格材质)
PointsMaterial
顾名思义,若网格模型使用了点材质,最终显示出来的模型则为点模型。需要注意的是,若材质为点材质,则网格模型也必须为
点模型。主要代码 :
//几何体
let geometry = new THREE.SphereGeometry(20,20,20);
//点材质
let material = new THREE.PointsMaterial({
color : 'yellow',
size : 1,
});
//点模型
let point = new THREE.Points(geometry, material);
scene.add(point);
例子
LineDashedMaterial
线材质也必须使用线模型。主要代码 :
//几何体
let geometry = new THREE.SphereGeometry(20,20,20);
//线材质
let material = new THREE.LineDashedMaterial({
color : 'yellow',
size : 1,
});
//线模型
let point = new THREE.Line(geometry, material);
scene.add(point);
例子
MeshBasicMaterial
MeshBasicMaterial是一种不会对光源产生反应的材质,主要代码 :
let geometry = new THREE.BoxGeometry(20,20,20);
//基础材质(不会对光有反应)
let material = new THREE.MeshBasicMaterial({ color : 'yellow'});
let mesh = new THREE.Mesh(geometry, material);
mesh.rotation.set(-0.1,2,0);
scene.add(mesh);
例子
MeshLambertMaterial
MeshLambertMaterial是一种会对光源产生反应的材质,主要代码 :
//几何体
let geometry = new THREE.BoxGeometry(20,20,20);
//兰伯特材质 (对光有反应)
let material = new THREE.MeshLambertMaterial({ color : 'yellow'});
//网格模型
let mesh = new THREE.Mesh(geometry, material);
mesh.rotation.set(-0.1,2,0);
scene.add(mesh);
例子
MeshPhongMaterial
MeshPhongMaterial是一种高光材质,类似镜面发射。主要代码 :
//几何体
let geometry = new THREE.BoxGeometry(20,20,20);
//高光材质 (类似镜面发射)
let material = new THREE.MeshPhongMaterial({
color : 'yellow',
specular:0x444444,//高光部分的颜色
shininess:50,//高光部分的亮度,默认30
});
//网格模型
let mesh = new THREE.Mesh(geometry, material);
mesh.rotation.set(-0.1,2,0);
scene.add(mesh);
例子