法线贴图、高度贴图
什么是法线贴图?
法线贴图是一种用来模拟表面细节的纹理贴图技术。它不会真正改变模型的几何形状,而是通过改变表面法线的方向来欺骗光照系统,使平面看起来具有凹凸效果。
下面我们用球形来生一个有凹凸干的月球为例子
只放一张普通贴图的效果

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

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

法线贴图的特点:
不改变几何体的实际形状
性能消耗相对较小
在近距离观察时效果可能不够真实
特别适合表现细微的表面细节
什么是高度贴图?
高度贴图(位移贴图)是一种真实改变模型几何形状的贴图技术。它通过灰度图来定义表面的高度变化,白色区域表示凸起,黑色区域表示凹陷。
高度贴图用来展现月球表面的真实起伏:

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

高度贴图的特点:
真实改变模型的几何形状
需要较高的几何体细分度
性能消耗相对较大
可以产生真实的凹凸效果
使用高度贴图能产生真实的凹凸效果,但需要相应的也会消耗更多计算资源