Cesium光照效果添加,且添加倾斜摄影后实现日照阴影效果

实现效果:

 实现光照效果的代码:(本人直接在vue文件中编写的)

全局定义inter,便于后续的使用。

let inter = null

此时的光照效果为当前时间的光照效果。 

viewer.scene.globe.enableLighting = true
			viewer.shadows = true
			viewer.terrainShadows = Cesium.ShadowMode.RECEIVE_ONLY
			//viewer.shadowMap.softShadows  = true
			viewer.shadowMap.darkness = 0.02 //阴影透明度--越大越透明

			inter = setInterval(() => {
				// 改变时间设置光照效果
				let date = new Date().getTime()
				let utc = Cesium.JulianDate.fromDate(new Date(date))
				//北京时间=UTC+8=GMT+8 不用加8
				viewer.clockViewModel.currentTime = Cesium.JulianDate.addHours(utc, 0, new Cesium.JulianDate())
			}, 100)
			// viewer.scene.light = new Cesium.DirectionalLight({
			// 	//去除时间原因影响模型颜色
			// 	direction: new Cesium.Cartesian3(0.35492591601301104, -0.8909182691839401, -0.2833588392420772)
			// })

 若想直观上更快的观察到光照效果,可将光照效果加快,即:

viewer.scene.globe.enableLighting = true
			viewer.shadows = true
			viewer.terrainShadows = Cesium.ShadowMode.RECEIVE_ONLY
			viewer.shadowMap.darkness = 0.02 //阴影透明度--越大越透明
			let time = 0
			inter = setInterval(() => {
				// 改变时间设置光照效果
				let date = new Date().getTime() + time
				let utc = Cesium.JulianDate.fromDate(new Date(date))
				//北京时间
				viewer.clockViewModel.currentTime = Cesium.JulianDate.addHours(utc, 0, new Cesium.JulianDate())
				time = time + 1000 * 60
			}, 100)

关闭光照效果的方法:

clearOpenLight() {
			viewer.scene.globe.enableLighting = false
			viewer.shadows = false
			viewer.terrainShadows = Cesium.ShadowMode.DISABLED
			if (inter) {
				clearInterval(inter)
				inter = null
			}
		}

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值