1. 什么是材质?
材质决定了物体表面的视觉特性,包括颜色、光泽、透明度和纹理等。正确选择和配置材质可以显著提升场景的真实感和美观性。Three.js 提供了多种材质类型,以满足不同的应用需求。
2. 常用材质类型
1. MeshBasicMaterial
- 特点:不受光照影响,适合用于简单的几何体和不需要光照效果的场景。
- 应用:用于显示纯色或简单纹理,通常用于背景或 UI 元素。
const material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); // 红色
2. MeshLambertMaterial
特点:支持漫反射光照,适合模拟粗糙表面。
应用:常用于木材、石材等自然材料,能够表现出表面的细微纹理。
const material = new THREE.MeshLambertMaterial({ color: 0x00ff00 }); // 绿色
3. MeshPhongMaterial
特点:支持镜面高光,适合光滑表面。
应用:用于模拟金属或塑料等材质,表现出光泽感和反射效果。
const material = new THREE.MeshPhongMaterial({
color: 0x0000ff,
shininess: 100,
}); // 蓝色,高光
4. MeshStandardMaterial
特点:基于物理的材质,支持更复杂的光照计算。
应用:适合用于需要真实光照效果的场景,广泛应用于现代 WebGL 渲染。
const material = new THREE.MeshStandardMaterial({ color: 0xffff00 }); // 黄色
5. MeshPhysicalMaterial
特点:在 MeshStandardMaterial 的基础上,增加了透明度、粗糙度和金属度等属性。
应用:用于需要高真实性的材质效果,如玻璃和水。
const material = new THREE.MeshPhysicalMaterial({
color: 0x00ffff,
roughness: 0.1,
metalness: 0.5,
}); // 青色