02. 材质对象

2022-10-19 11:37:51发布
34

同一个网格模型,若使用不同的材质,最终显示出来的效果是不一样的。本章将介绍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);    

例子

MeshBasicMaterial


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);    

例子

MeshLambertMaterial


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);    

例子

MeshPhongMaterial