【Cesium】调整3dtiles模型的光照

最近有个项目需要把掘进车放到巷道里面,加载出来的效果一片漆黑,看不清模型细节。

 由于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);

最终效果:

猜你喜欢

转载自blog.csdn.net/ximi2231/article/details/127313571