最近、トンネル内に掘削車両を配置するプロジェクトがありましたが、ローディング効果が暗く、モデルの詳細がはっきりと見えませんでした。
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);
最終的な効果: