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,
});