什么是法线贴图?

  • 法线贴图是一种用来模拟表面细节的纹理贴图技术。它不会真正改变模型的几何形状,而是通过改变表面法线的方向来欺骗光照系统,使平面看起来具有凹凸效果。

下面我们用球形来生一个有凹凸干的月球为例子

  • 只放一张普通贴图的效果

  • 法线贴图用来展现月球表面的细微凹凸:

if (useNormalMap) {
  material.normalMap = new THREE.TextureLoader().load('/models/texture/NormalMap.png');
  material.normalScale.set(1, 1);  // 控制法线贴图的强度
} else {
  material.normalMap = null;
}
  • 使用法线贴图后的效果,可以看到球形的本体没有改变

  • 法线贴图的特点:

  1. 不改变几何体的实际形状

  2. 性能消耗相对较小

  3. 在近距离观察时效果可能不够真实

  4. 特别适合表现细微的表面细节

什么是高度贴图?

高度贴图(位移贴图)是一种真实改变模型几何形状的贴图技术。它通过灰度图来定义表面的高度变化,白色区域表示凸起,黑色区域表示凹陷。

  • 高度贴图用来展现月球表面的真实起伏:

if (useLdemMap) {
  material.displacementMap = new THREE.TextureLoader().load('/models/texture/ldem.jpg');
  material.displacementScale = 0.15;  // 控制位移的强度
} else {
  material.displacementMap = null;
  material.displacementScale = 0;
}
  • 使用高度贴图后的效果,明显球体的形状被改变了

高度贴图的特点:

  1. 真实改变模型的几何形状

  2. 需要较高的几何体细分度

  3. 性能消耗相对较大

  4. 可以产生真实的凹凸效果

使用高度贴图能产生真实的凹凸效果,但需要相应的也会消耗更多计算资源