Cesium实体更新问题(重新渲染不生效不生效)

实践场景:cesium实体的经纬度发生了改变,但cesium上实体位置并未改变。如果重新渲染不生效

解决办法:先对视图进行销毁,然后对地球重新进行初始化如下:

this.viewer && this.viewer.destroy()
          this.viewer = null      
          this.initEarth()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cesium中,实体的内部和外部颜色由材质(Material)控制。如果你发现实体内外颜色不一致,可以尝试使用以下方法来解决: 1.使用双面材质 Cesium中的实体默认使用单面材质,即只渲染实体的外表面。如果你想要同时渲染内部和外部,可以使用双面材质。具体实现方法如下: ``` var entity = viewer.entities.add({ name: 'Box', position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), box : { dimensions : new Cesium.Cartesian3(400000.0, 300000.0, 500000.0), material : new Cesium.Material({ fabric : { type : 'Color', uniforms : { color : Cesium.Color.RED } } }), // 使用双面材质 perPositionHeight: true, faceForward: false, backFaceCulling: false } }); ``` 其中,perPositionHeight为true表示使用每个位置的高度值,faceForward为false表示不反转法线方向,backFaceCulling为false表示不剔除背面。 2.使用ColorBlendMode属性 Cesium中的Material有一个ColorBlendMode属性,可以用来控制内部和外部颜色的混合方式。默认情况下,ColorBlendMode为HIGHLIGHT,即使用高亮颜色混合内部和外部颜色。你可以将ColorBlendMode设置为MIX,然后调整内部和外部颜色的透明度来实现颜色一致的效果。具体实现方法如下: ``` var entity = viewer.entities.add({ name: 'Box', position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), box : { dimensions : new Cesium.Cartesian3(400000.0, 300000.0, 500000.0), material : new Cesium.Material({ fabric : { type : 'Color', uniforms : { color : Cesium.Color.RED.withAlpha(0.5) } } }), // 设置ColorBlendMode为MIX colorBlendMode: Cesium.ColorBlendMode.MIX, colorBlendAmount: 0.5 } }); ``` 其中,colorBlendAmount为0.5表示内部和外部颜色的透明度相同。你可以根据需要调整它们的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值