光照 最后更新时间: 2021年01月22日
目前楼块图层、室内图层和MeshAcceptLights
、Prism
几个类型会接收地图全局的光源属性。
地图的光照
目前 Map 的光照属性有两个,一个环境光 ,一个平行光照,两个光照属性功能影响上述 3D 物体的亮度和显示颜色。环境光有颜色和强度两个属性,不具有方向性,影响物体的各个面,默认情况下为白色,强度0.9。平行光有方向、颜色、强度三个属性,对垂直照射到的三角面影响最大,默认情况下,地图的平行光的方向由南向北45度角照下,白色,强度0.1。可以通过如下方式获取和修改地图的这两个光照属性
map.on('complete',function(){
//获取
var ambientLight = map.AmbientLight; //获取环境光
var directionLight = map.DirectionLight; //获取平行光
//修改
map.AmbientLight = new AMap.Lights.AmbientLight([1,1,1],0.5);
map.DirectionLight = new AMap.Lights.DirectionLight([-6,-2,14],[1,1,1],0.5);
})
光照属性说明
光照强度
光照强度的范围为[0, 1]
,0 代表最暗,1 代表最亮,建议环境光和平行光的强度之和不超过 1。
光照颜色
光照的颜色有 R、G、B 三个分量,格式为[R,G,B]
,每个分量的取值范围[0, 1],
映射到十进制色值[0,255]
光照方向
平行光的光照方向可以这么理解,假定地图的中心坐标为[0, 0, 0]
,DirectionLight 的第一个构造参数dir
,则光照方向就是以地图中心为尾,以dir
坐标点为头的一个向量,这里的坐标系与地图的三维坐标系方向一致。
修改光照的属性
在获取或者创建了光照实例之后,可以调用如下修改方法修改强度、颜色、方向属性:
ambientLight.setIntensity(0.5);//修改强度
directionLight.setColor([1,0,0]);//修改颜色
directionLight.setDirection([0,-1,2]);//修改方向