常见的材质(Materials)

Three.js 中,Material(材质)用于定义物体的外观。常见的材质包括 基本材质、光照材质、物理材质、特殊材质 等。

1️⃣ MeshBasicMaterial(基础材质)

  • 不会受光照影响,颜色始终保持不变。
  • 适用于 UI 元素、贴图展示、HUD、透明物体 等。
const material = new THREE.MeshBasicMaterial({
  color: 0xff0000,  // 纯红色
  wireframe: true   // 线框模式
});

📌 特点
✅ 颜色始终不变,不受光照影响。
✅ 适合绘制 线框、标识物、无光照模型


2️⃣ MeshStandardMaterial(标准材质 - PBR 渲染)

  • 支持光照,可以实现 金属感、粗糙度、法线贴图 等效果。
  • 适用于 现实材质(金属、塑料、木头等)。
const material = new THREE.MeshStandardMaterial({
  color: 0x00ff00,  // 绿色
  roughness: 0.5,   // 0 = 光滑, 1 = 粗糙
  metalness: 0.8,   // 0 = 非金属, 1 = 金属
});

📌 特点
✅ 受光照影响,适用于 PBR(基于物理的渲染)。
需要光源,否则物体可能看不见。


3️⃣ MeshPhysicalMaterial(物理材质 - 高级 PBR)

  • MeshStandardMaterial 更真实,支持 透明度、折射、发光 等。
  • 适用于 玻璃、钻石、水等材质
const material = new THREE.MeshPhysicalMaterial({
  color: 0xabcdef,
  roughness: 0.2,  // 光滑程度
  metalness: 0.9,  // 金属度
  clearcoat: 1.0,  // 透明涂层(0~1)
  transmission: 0.9,  // 透光度(0 = 不透明,1 = 完全透明)
});

📌 特点
✅ 适合高光泽、透明度、玻璃等效果。
MeshStandardMaterial 更真实,但计算更复杂。


4️⃣ MeshLambertMaterial(朗伯材质 - 适用于漫反射)

  • 受光照影响,适合 非金属表面(木头、石头等)
  • 计算速度较快,适用于低性能设备。
const material = new THREE.MeshLambertMaterial({
  color: 0xff9900,
});

📌 特点
计算快,适合大场景、多物体。
适用于漫反射材质(无金属感)。
不支持高光反射,看起来较“朴素”。


5️⃣ MeshPhongMaterial(冯氏材质 - 适用于光滑材质)

  • 支持高光反射,适用于 塑料、瓷器、光滑物体
  • MeshLambertMaterial 更真实,但比 MeshStandardMaterial 计算更快。
const material = new THREE.MeshPhongMaterial({
  color: 0x0000ff,   // 蓝色
  shininess: 100,    // 反射强度
  specular: 0xffffff // 高光颜色
});

📌 特点
✅ 适合光滑表面,如 瓷器、塑料、金属
支持高光反射,比 MeshLambertMaterial 更逼真。
不适用于 PBR 渲染(不如 MeshStandardMaterial 真实)。


6️⃣ MeshToonMaterial(卡通材质 - 漫画风格)

  • 适用于 卡通风格、Cel Shading 渲染
const material = new THREE.MeshToonMaterial({
  color: 0x00ff00
});

📌 特点
✅ 适用于 卡通风、动漫风 渲染。
计算较快,适合风格化游戏。


📌 特殊材质

7️⃣ PointsMaterial(粒子材质)

  • 适用于 粒子系统(雪、雨、星空等)
const material = new THREE.PointsMaterial({
  color: 0xffffff,
  size: 0.1
});

8️⃣ LineBasicMaterial(线条材质)

  • 适用于 绘制线条(如辅助线、网格等)。
const material = new THREE.LineBasicMaterial({ color: 0xff0000 });

🎯 选材指南

材质类型

适用场景

受光照影响

备注

MeshBasicMaterial

纯色、贴图、UI

❌ 否

不受光照影响

MeshLambertMaterial

木头、布料、石头

✅ 是

低性能设备适用

MeshPhongMaterial

瓷器、塑料、光滑表面

✅ 是

有高光反射

MeshStandardMaterial

真实感材质(PBR)

✅ 是

支持粗糙度、金属度

MeshPhysicalMaterial

玻璃、水、透明材质

✅ 是

计算最真实

MeshToonMaterial

卡通风格

✅ 是

类似动漫渲染

PointsMaterial

粒子系统(雪、雨、星星)

❌ 否

适用于粒子效果

LineBasicMaterial

线条、网格

❌ 否

适用于辅助线


🎯 总结

  • 不受光照:用 MeshBasicMaterial
  • 真实感材质(PBR):用 MeshStandardMaterialMeshPhysicalMaterial
  • 低计算成本(适合大场景):用 MeshLambertMaterial
  • 带反射高光:用 MeshPhongMaterial
  • 卡通风格:用 MeshToonMaterial
  • 粒子、线条:用 PointsMaterialLineBasicMaterial

如果你要创建 现代 3D 场景,建议用:

  • MeshStandardMaterial(最常用,适合 PBR 渲染)。
  • MeshPhysicalMaterial(高级 PBR,适合玻璃、水)。
  • MeshPhongMaterial(适合光滑表面)。

这样可以获得更真实的渲染效果!🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值