Cesium中给实体添加渐变色

Cesium中给实体添加渐变色

添加实体

const redWall = viewer.entities.add({
	name: '一个红墙',
	wall: {
		positions: Cesium.Cartesian3.fromDegreesArrayHeights([
          121.444409, 31.247417, 200.8,
          121.533521, 31.235685, 280.0,
          121.563273, 31.198347, 28.0,
          121.546744, 31.194054, 280.0,
          121.516705, 31.191459, 200.0,
          121.502188, 31.203074, 280.0
        ]),
        material: getColorRamp()
	}
})

这个实体的材质,我们给一个canvas,并且在canvas中设置渐变颜色

const getColorRamp = () => {
	const ramp = document.createElement('canvas');
	ramp.width = 1;
    ramp.height = 100;
    const ctx = ramp.getContext('2d');
    const grd = ctx.createLinearGradient(0, 0, 0, 100);
    grd.addColorStop(0.0, '#000000');
    grd.addColorStop(0.045, '#2747E0');
    grd.addColorStop(0.1, '#D33B7D')
    grd.addColorStop(0.15, '#D33038')
    grd.addColorStop(0.37, '#FF9742')
    grd.addColorStop(0.54, '#ffd700')
    grd.addColorStop(1.0, '#ff0000')
    tx.fillStyle = grd;
    ctx.fillRect(0,0,1, 50)
    return ramp;
}

最终效果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要给cesium实体添加阴影,可以使用以下步骤: 1. 使用Cesium的ShadowMap类来创建阴影图。这需要在场景启用实体阴影,并且还需要设置光源位置和方向。 2. 将阴影图与实体一起渲染。为此,需要使用Cesium的ShaderMaterial类来创建一个材质,该材质将阴影图作为纹理应用于实体。 3. 使用材质替换实体的默认材质。这可以通过调用Cesium的Entity的material属性来完成。 下面是一个示例代码,演示如何将阴影图应用于cesium实体: ``` // 创建一个场景 var viewer = new Cesium.Viewer('cesiumContainer'); // 启用实体阴影 viewer.shadowMap.enabled = true; // 设置光源位置和方向 viewer.scene.sun.light.direction = new Cesium.Cartesian3(0.0, 0.0, -1.0); viewer.scene.sun.light.intensity = 2.0; // 加载一个实体 var entity = viewer.entities.add({ name : 'My Entity', position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), model : { uri : 'path/to/my/model.gltf' } }); // 创建一个阴影材质 var material = new Cesium.ShaderMaterial({ translucent : false, vertexShaderSource : // 自定义的顶点着色器代码, fragmentShaderSource : // 自定义的片段着色器代码, uniforms : { shadowMap : function() { return viewer.shadowMap.texture; } } }); // 将阴影材质应用于实体 entity.material = material; ``` 注意,上述示例的顶点着色器和片段着色器代码需要根据具体的实体模型进行调整。此外,还需要使用Cesium的材质系统来创建其他需要的材质属性(例如颜色、光照等)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值