Cesium BillboardCollection

new Cesium.BillboardCollection(选项)
一个可渲染的广告牌的集合。 广告牌是viewport-aligned 图像定位在3 d场景。


例子的广告牌


广告牌从集合中添加和删除 BillboardCollection#add BillboardCollection#remove 。 广告牌在一组自动分享纹理 对图像相同的标识符。
性能:

最佳性能,更喜欢一些集合,每个都有很多广告牌, 许多集合只有几广告牌。 组织收集这样的广告牌 与相同的更新频率是相同的集合,即。 广告牌,没有 改变应该在一个集合;应该在另一个广告牌,改变每一帧 集合;等等。

名字 类型 描述
options 对象 可选对象具有以下属性:
的名字 类型 默认的 描述
modelMatrix Matrix4 Matrix4.IDENTITY 可选4 x4变换矩阵,将每个广告牌从模型转换为世界坐标。
debugShowBoundingVolume 布尔 false 可选仅供调试。 决定如果这原始的命令显示碰撞球体。
scene 场景   可选必须通过广告牌使用高度引用属性或将对全球深度测试。
例子:
// Create a billboard collection with two billboards
var billboards = scene.primitives.add(new Cesium.BillboardCollection());
billboards.add({
       
  position : new Cesium.Cartesian3(1.0, 2.0, 3.0),
  image : 'url/to/image'
});
billboards.add({
       
  position : new Cesium.Cartesian3(4.0, 5.0, 6.0),
  image : 'url/to/another/image'
});
演示:
看到的:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cesium 上渲染大量的图标时,可以采用以下最佳实践来提高性能: 1. 使用 Cesium BillboardCollection 对象:Cesium BillboardCollection 对象是一种专门用于渲染大量图标的对象,可以大幅提高性能。可以使用以下代码创建 BillboardCollection 对象: ``` var billboardCollection = new Cesium.BillboardCollection(); scene.primitives.add(billboardCollection); ``` 2. 使用 Cesium.TextureAtlas 对象:Cesium.TextureAtlas 对象可以将多个图标合并到一个纹理中,从而减少纹理切换的次数,提高性能。可以使用以下代码创建 TextureAtlas 对象: ``` var textureAtlas = new Cesium.TextureAtlas({ scene: scene, imageSize: new Cesium.Cartesian2(2048, 2048) }); ``` 3. 使用 Cesium.PinBuilder 对象:Cesium.PinBuilder 对象可以快速创建各种类型的图标,包括纯色、带文字、带图片等等。可以使用以下代码创建 PinBuilder 对象: ``` var pinBuilder = new Cesium.PinBuilder(); ``` 4. 使用 Cesium.Billboard 对象:Cesium.Billboard 对象用于表示一个图标,可以设置图标的位置、大小、旋转角度、纹理等属性。可以使用以下代码创建 Billboard 对象: ``` var billboard = billboardCollection.add({ position: Cesium.Cartesian3.fromDegrees(lon, lat), image: textureAtlas.getTexture({ index: textureIndex }), width: size, height: size, rotation: angle }); ``` 5. 批量添加图标:为了提高性能,可以批量添加图标,而不是逐个添加。可以使用以下代码批量添加图标: ``` var billboards = []; for (var i = 0; i < count; i++) { var billboard = { position: Cesium.Cartesian3.fromDegrees(lon, lat), image: textureAtlas.getTexture({ index: textureIndex }), width: size, height: size, rotation: angle }; billboards.push(billboard); } billboardCollection.add(billboards); ``` 需要注意的是,以上代码仅供参考,具体实现需要根据实际需求进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值