var hyp = null;
var layer = null;
//加载白膜
function fnOpenSCENE() {
var promise = scene.open('http://www.supermapol.com/realspace/services/3D-CBDbuilding/rest/realspace');
Cesium.when.all(promise, function () {
//切换视角至模型位置
scene.camera.setView({
"destination": { "x": -2184052.8561826544, "y": 4388517.457033638, "z": 4070341.9478602377 },
"orientation": { "pitch": -0.8394038119311453, "heading": 6.247957622130757, "roll": 0.00001267923949921368 }
});
layer = scene.layers.find("ExtrudeBodyResult@CBD");
hyp = new Cesium.HypsometricSetting();
setHypsometric(layer);//渐变效果
// switchLight();//点光源
});
}
渐变效果
function setHypsometric(layer) {
//创建分层设色对象
var colorTable = new Cesium.ColorTable();
//设置最大/最小可见高度, 颜色表
colorTable.insert(0, new Cesium.Color(0, 39 / 255, 148 / 255));
colorTable.insert(150, new Cesium.Color(149 / 255, 232 / 255, 249 / 255));
hyp.ColorTable = colorTable;
hyp.Opacity = 0.8;//透明度
hyp.LineInterval = 10.0;//线宽
layer.hypsometricSetting = {
hypsometricSetting: hyp,
analysisMode: Cesium.HypsometricSettingEnum.AnalysisRegionMode.ARM_ALL //显示模式
}
};
点光源
var directionalLight, directionalLight_1, directionalLight_2, directionalLight_3, directionalLight_4, pointLight7;
function switchLight() {
//设置环境光(白天)
scene.lightSource.ambientLightColor = new Cesium.Color(0, 0, 0, 1);
//开启HDR
viewer.scene.hdrEnabled = true;
// 指定范围
var pointLightPos7 = new Cesium.Cartesian3.fromDegrees(116.45775058552576, 39.91295039170964, 300);
var pointLightOptions7 = {
cutoffDistance: 1000,//点光源的扩散距离
color: new Cesium.Color(1, 0, 0, 1),
intensity: 2.5 //点光源强度
};
pointLight7 && scene.removeLightSource(pointLight7)
pointLight7 = new Cesium.PointLight(pointLightPos7, pointLightOptions7);
scene.addLightSource(pointLight7);
// 新增直射光--西北侧光
// var position = new Cesium.Cartesian3.fromDegrees(106.282013734667, 29.7615756638933, 630);
// var targetPosition = new Cesium.Cartesian3.fromDegrees(106.756840202248, 29.3980661015228, 500);
// var dirLightOptions = {
// targetPosition: targetPosition,
// color: new Cesium.Color(0, 0, 1, 1),//蓝色
// intensity: 2
// };
// directionalLight && scene.removeLightSource(directionalLight)
// directionalLight = new Cesium.DirectionalLight(position, dirLightOptions);
// scene.addLightSource(directionalLight);
// 新增直射光1--东南侧光
// var position1 = new Cesium.Cartesian3.fromDegrees(106.756840202248, 29.3980661015228, 500);
// var targetPosition1 = new Cesium.Cartesian3.fromDegrees(106.282013734667, 29.7615756638933, 630);
// var dirLightOptions1 = {
// targetPosition: targetPosition1,
// color: new Cesium.Color(1, 0, 0, 1),//红色
// intensity: 2
// };
// directionalLight_1 && scene.removeLightSource(directionalLight_1)
// directionalLight_1 = new Cesium.DirectionalLight(position1, dirLightOptions1);
// scene.addLightSource(directionalLight_1);
// 新增直射光2--东北侧光
// var position2 = new Cesium.Cartesian3.fromDegrees(106.437, 29.571, 71);
// var targetPosition2 = new Cesium.Cartesian3.fromDegrees(106.436, 29.569, 1);
// var dirLightOptions2 = {
// targetPosition: targetPosition2,
// color: new Cesium.Color(0, 1, 0, 1),//绿色
// intensity: 2
// };
// directionalLight_2 && scene.removeLightSource(directionalLight_2)
// directionalLight_2 = new Cesium.DirectionalLight(position2, dirLightOptions2);
// scene.addLightSource(directionalLight_2);
// 新增直射光3--西南侧光
// var position3 = new Cesium.Cartesian3.fromDegrees(106.452, 29.573, 1);
// var targetPosition3 = new Cesium.Cartesian3.fromDegrees(106.454, 29.581, 91);
// var dirLightOptions3 = {
// targetPosition: targetPosition3,
// color: new Cesium.Color(1, 0, 1, 1),//紫色
// intensity: 2
// };
// directionalLight_3 && scene.removeLightSource(directionalLight_3)
// directionalLight_3 = new Cesium.DirectionalLight(position3, dirLightOptions3);
// scene.addLightSource(directionalLight_3);
// 新增直射光4--顶光+正面光
// var position4 = new Cesium.Cartesian3.fromDegrees(106.492, 29.593, 100);
// var targetPosition4 = new Cesium.Cartesian3.fromDegrees(106.492, 29.593, 10);
// var dirLightOptions4 = {
// targetPosition: targetPosition4,
// color: new Cesium.Color(1, 1, 0, 1),//黄色
// intensity: 2
// };
// directionalLight_4 && scene.removeLightSource(directionalLight_4)
// directionalLight_4 = new Cesium.DirectionalLight(position4, dirLightOptions4);
// scene.addLightSource(directionalLight_4);
}