深入了解 Three.js 中的材质与光照-一、材质概述

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,
}); // 青色
上一篇:C语言刷题笔记2(6)


下一篇:银河麒麟相关