DirectionalLight是cesiumjs包中的一种光源,它是从某个方向发射的平行光,类似于太阳光。
const light = new Cesium.DirectionalLight({
direction: Cesium.Cartesian3.fromElements(0.0, 0.0, -1.0),
color: Cesium.Color.WHITE
});
DirectionalLight的constructor接收一个包含两个属性的对象,分别为direction和color。其中direction表示该光的方向,它可以通过Cartesian3类型获取三维坐标。而color则表示该光的颜色。
light.direction = Cesium.Cartesian3.fromElements(0.0, -1.0, -1.0);
DirectionalLight的direction属性可以通过Cartesian3类型设置光源方向。默认光源在z轴方向,负数表示向屏幕外发射,正数表示向屏幕内发射。
light.color = Cesium.Color.fromCssColorString('#ffffff');
DirectionalLight的color属性可以通过Color类型设置颜色,其中可以直接传入css颜色字符串,格式为 #rrggbb 或者 rgba(r, g, b, a)。
应用光源需要用到Scene类中的sun属性,代码如下:
const viewer = new Cesium.Viewer('cesiumContainer');
const scene = viewer.scene;
scene.sun = light;
上面的代码将光源应用到了场景中。DirectionalLight同时支持其他光照特性,包括diffuse, specular, attenuation等,在需要的时候可以通过light的其他属性进行设置。