7. 发光贴图.emissiveMap
# 发光贴图.emissiveMap
前面介绍了threejs发光属性emissive,这节课给大家介绍一个发光贴图相关的属性.emissiveMap。
# 知识回顾:颜色贴图.map
如果一个网格模型Mesh,比如一个矩形平面,如果不同区域是单一颜色,可以直接设置材质.color属性,如果Mesh不同区域颜色不同,可以设置颜色贴图.map。
# 发光贴图.emissiveMap
如果一个网格模型Mesh,不同区域发光颜色和强度相同,直接设置发光属性emissive,如果Mesh不同区域发光颜色或强度不同,可以通过发光贴图.emissiveMap设置。
- 颜色贴图
.map对应颜色属性.color - 发光贴图
.emissiveMap对应发光属性.emissive
const texLoader = new THREE.TextureLoader();
const texture = texLoader.load('./发光贴图.jpg');
const material = new THREE.MeshLambertMaterial({
emissiveMap:texture,//发光贴图
emissive:0xffffff,
});
emissive默认是黑色,可以修改为白色,以免emissiveMap不生效。
原因很简单,实际渲染emissive和emissiveMap会叠加影响,具体点,相当于乘法运算,emissive黑色是0,不管emissiveMap不同区域像素值是什么,乘以0都是0。
const material = new THREE.MeshLambertMaterial({
emissiveMap:texture,//发光贴图
emissive:0xffffff,
});