解决cesium锯齿和页面模糊问题

cesium中有个属性viewer.resolutionScale,默认值是1.0。
JavaScript中有个属性window.devicePixelRatio,属性返回的是当前显示设备的物理像素分辨率与CSS像素分辨率的比率,即一个CSS像素和一个物理像素的大小比值

cesium中viewer.resolutionScale默认值是1.0,也就是说无论在哪个屏幕上,cesium都把当前显示器的物理像素分辨率与CSS像素分辨率的比率(window.devicePixelRatio)当成是1.0来渲染,而实际上的比率可能是1.0或者1.25或者2.0(比如mac电脑Retina屏),所以造成锯齿和模糊。

想解决这个问题,显而易见,使viewer.resolutionScale的值等于window.devicePixelRatio值就好了。

if(Cesium.FeatureDetection.supportsImageRenderingPixelated()){//判断是否支持图像渲染像素化处理
  viewer.resolutionScale = window.devicePixelRatio;
}

如果这个时候地图远处还会有一点点锯齿,model边缘也还会有一点点锯齿,不用担心,官方文档给出的有个抗锯齿的属性: viewer.scene.fxaa,最新文档应该是viewer.scene.postProcessStages.fxaa.enabled,默认是false,改成true就可以了,一点点锯齿都看不见了,哈哈哈,直接说拜拜。

//是否开启抗锯齿
viewer.scene.fxaa = true;
viewer.scene.postProcessStages.fxaa.enabled = true;

但是开启后会造成字体的模糊(不是很明显),不用担心,设置字体的时候,字号设置大一些,然后比例缩小一倍,能够有效解决字体模糊。

label = {
  text: '测试',
  font: '24px Helvetica',
  scale: 0.5,
}

这样子基本就完美了~

  • 20
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值