Cesium原理篇:Batch

Cesium原理篇:Batch

ID:39547721

大小:42.50 KB

页数:7页

时间:2019-07-06

Cesium原理篇:Batch_第1页
Cesium原理篇:Batch_第2页
Cesium原理篇:Batch_第3页
Cesium原理篇:Batch_第4页
Cesium原理篇:Batch_第5页
资源描述:

《Cesium原理篇:Batch》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Cesium原理篇:Batch通过之前的Material和Entity介绍,不知道你有没有发现,当我们需要添加一个rectangle时,有两种方式可供选择,我们可以直接添加到Scene的PrimitiveCollection,也可以构造一个Entity,添加到Viewer的EntityCollection中,代码如下:复制代码//直接构造Primitive,添加rectangle=scene.primitives.add(newCesium.Primitive({geometryInstances:newCesium.GeometryInstance({geometry:ne

2、wCesium.RectangleGeometry({rectangle:Cesium.Rectangle.fromDegrees(-120.0,20.0,-60.0,40.0),vertexFormat:Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT})}),appearance:newCesium.EllipsoidSurfaceAppearance({aboveGround:false})}));//间接构造一个Entity,Cesium内部将其转化为Primitiveviewer.entities.add({rectan

3、gle:{coordinates:Cesium.Rectangle.fromDegrees(-92.0,20.0,-86.0,27.0),outline:true,outlineColor:Cesium.Color.WHITE,outlineWidth:4,stRotation:Cesium.Math.toRadians(45),material:stripeMaterial}});复制代码两者有何不同,为什么还要提供Entity这种方式,绕了一大圈,最后照样是一个primitive。当然,有一个因素是后者调用简单,对用户友好。但还有一个重点是内部在把Entity转为Prim

4、itive的这条生产线上,会根据Entity的不同进行打组分类,好比快递的分拣线会将同一个目的地的包裹分到一类,然后用一个大的箱子打包送到该目的地,目的就是优化效率,充分利用显卡的并发能力。在Entity转为Primitive的过程中,GeometryInstance是其中的过渡类,以Rectangle为例,我们看看构造GeometryInstance的过程:复制代码RectangleGeometryUpdater.prototype.createFillGeometryInstance=function(time){if(this._materialPropertyinst

5、anceofColorMaterialProperty){varcurrentColor=Color.WHITE;if(defined(this._materialProperty.color)&&(this._materialProperty.color.isConstant

6、

7、isAvailable)){currentColor=this._materialProperty.color.getValue(time);}color=ColorGeometryInstanceAttribute.fromColor(currentColor);attributes={show:

8、show,color:color};}else{attributes={show:show};}returnnewGeometryInstance({id:entity,geometry:newRectangleGeometry(this._options),attributes:attributes});}复制代码首先,该材质_materialProperty就是构建Entity时传入的材质对象,attributes则用来标识该Geometry实例化的attribute属性,Cesium内部判断该材质是否为color类型,进而对应不同的实例化attribute。在其他Geo

9、metryUpdater方法中都是此逻辑,因此在材质的处理上,只对color进行了实例化的处理。这里留意一下appearance参数,可以看到主要对应perInstanceColorAppearanceType和materialAppearanceType两种,分别封装ColorMaterialProperty和其他MaterialProperty,这个在之前的Material中已经讲过。BatchCesium通过GeometryInstance作为标准,来达到物以类聚鸟以群分的结果,这个标准就是如上的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。