同一個網格模型,若使用不同的材質,最終顯示出來的效果是不一樣的。本章將介紹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);
例子