最近有个项目需要把掘进车放到巷道里面,加载出来的效果一片漆黑,看不清模型细节。
由于Cesium中材质没有自发光的设置,所以只能设置光源。
在网上查了一些代码,Cesium的光照效果的设置是通过webgl修改白膜的材质来实现的,由于巷道本身有贴图材质,用该方法实现的效果不好。
只能通过修改
viewer.scene.light
来实现了。
修改代码为:
viewer.scene.light = new Cesium.DirectionalLight({
direction: viewer.scene.camera.directionWC,
});
viewer.scene.preRender.addEventListener(function (scene, time) {
viewer.scene.light.direction = Cesium.Cartesian3.clone(
viewer.scene.camera.directionWC,
viewer.scene.light.direction
);
});
设置光照角度跟随摄像机视角,并实时刷新光照角度。效果为:
这样能大致看到模型的轮廓了,但是光线太暗需要调整亮度
加上代码
// 亮度设置
var stages = viewer.scene.postProcessStages;
viewer.scene.brightness = viewer.scene.brightness || stages.add(Cesium.PostProcessStageLibrary.createBrightnessStage());
viewer.scene.brightness.enabled = true;
viewer.scene.brightness.uniforms.brightness = Number(3);
最终效果:
本文转自 https://blog.csdn.net/ximi2231/article/details/127313571,如有侵权,请联系删除。
标签:brightness,viewer,light,模型,scene,3dtiles,Cesium,光照 From: https://www.cnblogs.com/hustshu/p/17159111.html