[cesium] | 3dTilset建筑物 | 模型 | Shader 泛光涟漪特效

效果比较简单,修改了一点源码,还可以再加一些其他的shader,后续上传github

在线查看

效果

 

github地址:传送门

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Cesium 中创建发光建筑模型的基本思路是,将建筑模型的外表面和内部空间分别用不同的材质进行渲染,其中外表面使用普通材质,内部空间使用发光材质。具体实现步骤如下: 1. 加载建筑模型 首先,你需要加载一个建筑模型,你可以使用 glTF 或者其他格式的模型Cesium 提供了 `Cesium.Model` 类用于加载和显示模型。例如,以下代码加载了一个 glTF 格式的建筑模型: ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame( Cesium.Cartesian3.fromDegrees(-75.62898254394531, 40.02804946899414, 0.0)); var model = viewer.scene.primitives.add(Cesium.Model.fromGltf({ url: 'path/to/model.gltf', modelMatrix: modelMatrix })); ``` 2. 定义发光材质 接下来,你需要定义一个发光材质,并将其应用于建筑模型的内部空间。Cesium 提供了 `Cesium.GlobeSurfaceShaderSet` 类用于创建和管理地球表面使用的着色器程序,你可以使用 `Cesium.GlobeSurfaceShaderSet.buildPolylineFS` 方法创建一个发光材质的着色器程序。例如,以下代码定义了一个发光材质: ```javascript var glowMaterial = new Cesium.Material({ fabric: { type: 'PolylineGlow', uniforms: { color: new Cesium.Color(0.0, 1.0, 0.0, 1.0), glowPower: 0.5, taperPower: 0.0 } } }); ``` 其中,`PolylineGlow` 是 Cesium 内置的一个发光材质类型,`color` 属性指定了发光的颜色,`glowPower` 属性指定了发光的强度,`taperPower` 属性指定了发光的渐变程度。 3. 应用发光材质 最后,你需要将发光材质应用于建筑模型的内部空间。你可以使用 `Cesium.Model` 对象的 `getNodeByName` 方法获取建筑模型中的某个节,并使用 `Cesium.MaterialProperty` 对象将发光材质应用到该节上。例如,以下代码将发光材质应用到建筑模型中名为 "Interior" 的节上: ```javascript var interiorNode = model.getNodeByName('Interior'); interiorNode.material = new Cesium.MaterialProperty(glowMaterial); ``` 现在,你可以在 Cesium 中创建一个发光建筑模型了。注意,由于发光材质需要使用着色器程序实现,因此需要 GPU 支持。某些移动设备或者低性能的计算机可能无法正常显示发光效果

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值