Day 1-3 搭好了舞台、相机、纹理。今天开始讲材质------物体的"皮肤质感"。
材质分两大类:不需要灯光 和 需要灯光。本篇是(上),先讲前者:
- MeshBasicMaterial------纯色平面,最基础
- MeshNormalMaterial------彩色法向,调试神器
- MeshMatcapMaterial------假光照,真质感
- MeshDepthMaterial------根据深度渐变,黑白艺术
读完(上),你能根据需求选择基础材质;下一篇(下)讲 MeshStandardMaterial + 光照,让物体真正"亮"起来。
四种材质的核心讲解
1. MeshBasicMaterial------基础款
一句话:纯色,不受光照影响,最省资源。
javascript
ini
//引入纹理
const doorClorTexture= textureLoader.load('/textures/door/door.jpg');
//使用纹理的样子
const material = new THREE.MeshBasicMaterial()
material.map = doorClorTexture
//使用纯色
material.color = new THREE.Color(0xffffff)
比喻:白纸一张,你涂什么颜色就是什么颜色,不管屋里灯开没开。
以下是使用纹理和颜色填充的对比效果


可以看到没有任何的光源,我使用了木门的纹理和白色纯色填充。
2. MeshNormalMaterial------炫彩款
一句话解释:根据物体表面的朝向,自动显示不同的颜色。
生活比喻:炫彩包装纸
还记得小时候那种"炫彩卡片"吗?------你换个角度,颜色就变了。
MeshNormalMaterial 就是这种"炫彩纸":
- 立方体朝右的面 → 红色
- 朝上的面 → 绿色
- 朝前的面 → 蓝色
旋转立方体时,颜色随着面的朝向实时变化,就像手里的炫彩卡片在阳光下翻转。
const material = new THREE.MeshNormalMaterial()
代码非常简单,只需要创建MeshNormalMateria,就可以得到非常炫酷的效果,有一点赛博朋克感。 
3. MeshMatcapMaterial------高级假货
一句话:用一张"预设贴图"模拟光照效果,不需要真光源,但质感很棒。
`// MeshMatcapMaterial
const material = new THREE.MeshMatcapMaterial()
material.matcap = matcapTexture`
就很像我们自拍时使用美颜相机或者有滤镜效果时,实际上没有真的打光但是看起来皮肤变得有光泽了。

这个看起来非常的棒,通过模拟的光照可以直接带来非常不错的的质感。
4.MeshDepthMaterial------黑白艺术
一句话解释:
根据物体离相机的远近,显示从白到黑的渐变------越近越白,越远越黑。
生活比喻:雾中行走
想象你在一个大雾天里走路:
- 离你近的物体 → 看得清楚(白色)
- 离你远的物体 → 渐渐被雾淹没(灰色)
- 远到看不见 → 完全消失在雾中(黑色)
MeshDepthMaterial 就是这个"雾"------用黑白灰度告诉你:每个点离相机有多远。
`// MeshDepthMaterial
const material = new THREE.MeshDepthMaterial()`
创建深度材质就可以得到效果: 
四种材质对比一览表
| 材质 | 颜色规律 | 是否需要贴图 | 是否需要灯光 | 一句话记忆 | 最佳用途 |
|---|---|---|---|---|---|
| MeshBasicMaterial | 你指定什么颜色就是什么颜色 | 可选 | ❌ 不需要 | 白纸一张 | 基础场景、性能优先 |
| MeshNormalMaterial | RGB = XYZ(红X/绿Y/蓝Z) | ❌ 不需要 | ❌ 不需要 | 炫彩包装纸 | 调试几何体、赛博朋克风 |
| MeshMatcapMaterial | 贴图上的颜色(模拟光照) | ✅ 必须 | ❌ 不需要 | 假光照滤镜 | 想要质感但不想加灯光 |
| MeshDepthMaterial | 越近越白,越远越黑 | ❌ 不需要 | ❌ 不需要 | 雾中行走 | 深度特效、后期处理 |
四种材质,四种性格------不需要灯光,也能玩出花样。
下一篇(下)预告:MeshStandardMaterial + 环境光 + 点光源,让你的物体从"平面色块"变成"真实世界的物体"。