BIGEMAP卫星地图_高清卫星地图_北斗高清地图_地图软件_矢量地图数据_专题地图

Primitive

基本體表示Scene中的幾何體。幾何圖形可以來自下面的示例1所示的單個GeometryInstance,也可以來自實例數組,即使幾何圖形來自不同的幾何圖形類型,如代碼示例2中所示的RectangleGeometryEllipsoidGeometry

基本體將幾何體實例與描述完整著色的Appearance結合起來,包括MaterialRenderState。大致上,幾何體實例定義結構和位置,外觀定義視覺特征。分離幾何體和外觀允許我們混合和匹配大多數幾何體和外觀,并獨立地添加新的幾何體或外觀。

將多個實例組合成一個原語稱為批處理,顯著提高了靜態數據的性能。實例可以單獨選取;Scene#pick返回其GeometryInstance#id。使用類似于PerInstanceColorAppearance的每個實例外觀,每個實例也可以具有唯一的顏色。

Geometry可以在Web工作者或主線程上創建和批處理。前兩個示例顯示將使用幾何圖形的描述在Web工作者上創建的幾何圖形。第三個示例演示如何通過顯式調用createGeometry方法在主線程上創建幾何體。

new Primitive(options)
Parameters:
options (Object)
Name Description
options.geometryInstances
(Array.<GeometryInstance> | GeometryInstance)
要渲染的幾何體實例-或單個幾何體實例。
options.appearance
Appearance
用于呈現原語的外觀。
options.depthFailAppearance
Appearance
用于在深度測試失敗時對該基元進行著色的外觀。
options.show
Boolean
default true
確定是否顯示此基元。
options.modelMatrix
Matrix4
default Matrix4.IDENTITY
將基本體(所有幾何體實例)從模型轉換為世界坐標的4x4轉換矩陣。
options.vertexCacheOptimize
Boolean
default false
true時,幾何體頂點將針對頂點前和頂點后明暗器緩存進行優化。
options.interleave
Boolean
default false
true時,幾何頂點屬性交錯,這可以稍微提高渲染性能,但增加加載時間。
options.compressVertices
Boolean
default true
true時,幾何體頂點被壓縮,這將節省內存。
options.releaseGeometryInstances
Boolean
default true
true時,原語不保留對輸入geometryInstances的引用以保存內存。
options.allowPicking
Boolean
default true
true時,每個幾何體實例只能使用Scene#pick進行選擇。當false時,保存GPU內存。
options.cull
Boolean
default true
true時,渲染器的平截體剔除和地平線根據其邊界體積剔除基本體的命令。如果要手動剔除原語,請將其設置為false以獲得較小的性能增益。
options.asynchronous
Boolean
default true
確定在準備就緒之前是異步創建基元還是阻止創建基元。
options.debugShowBoundingVolume
Boolean
default false
僅用于調試。確定是否顯示此基元的命令的邊界球。
options.shadows
ShadowMode
default ShadowMode.DISABLED
確定此基元是投射還是接收來自每個光源的陰影。
Examples
// 1. Draw a translucent ellipse on the surface with a checkerboard pattern
var instance = new bmgl.GeometryInstance({
  geometry : new bmgl.EllipseGeometry({
      center : bmgl.Cartesian3.fromDegrees(-100.0, 20.0),
      semiMinorAxis : 500000.0,
      semiMajorAxis : 1000000.0,
      rotation : bmgl.Math.PI_OVER_FOUR,
      vertexFormat : bmgl.VertexFormat.POSITION_AND_ST
  }),
  id : 'object returned when this instance is picked and to get/set per-instance attributes'
});
scene.primitives.add(new bmgl.Primitive({
  geometryInstances : instance,
  appearance : new bmgl.EllipsoidSurfaceAppearance({
    material : bmgl.Material.fromType('Checkerboard')
  })
}));
// 2. Draw different instances each with a unique color
var rectangleInstance = new bmgl.GeometryInstance({
  geometry : new bmgl.RectangleGeometry({
    rectangle : bmgl.Rectangle.fromDegrees(-140.0, 30.0, -100.0, 40.0),
    vertexFormat : bmgl.PerInstanceColorAppearance.VERTEX_FORMAT
  }),
  id : 'rectangle',
  attributes : {
    color : new bmgl.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5)
  }
});
var ellipsoidInstance = new bmgl.GeometryInstance({
  geometry : new bmgl.EllipsoidGeometry({
    radii : new bmgl.Cartesian3(500000.0, 500000.0, 1000000.0),
    vertexFormat : bmgl.VertexFormat.POSITION_AND_NORMAL
  }),
  modelMatrix : bmgl.Matrix4.multiplyByTranslation(bmgl.Transforms.eastNorthUpToFixedFrame(
    bmgl.Cartesian3.fromDegrees(-95.59777, 40.03883)), new bmgl.Cartesian3(0.0, 0.0, 500000.0), new bmgl.Matrix4()),
  id : 'ellipsoid',
  attributes : {
    color : bmgl.ColorGeometryInstanceAttribute.fromColor(bmgl.Color.AQUA)
  }
});
scene.primitives.add(new bmgl.Primitive({
  geometryInstances : [rectangleInstance, ellipsoidInstance],
  appearance : new bmgl.PerInstanceColorAppearance()
}));
// 3. Create the geometry on the main thread.
scene.primitives.add(new bmgl.Primitive({
  geometryInstances : new bmgl.GeometryInstance({
      geometry : bmgl.EllipsoidGeometry.createGeometry(new bmgl.EllipsoidGeometry({
        radii : new bmgl.Cartesian3(500000.0, 500000.0, 1000000.0),
        vertexFormat : bmgl.VertexFormat.POSITION_AND_NORMAL
      })),
      modelMatrix : bmgl.Matrix4.multiplyByTranslation(bmgl.Transforms.eastNorthUpToFixedFrame(
        bmgl.Cartesian3.fromDegrees(-95.59777, 40.03883)), new bmgl.Cartesian3(0.0, 0.0, 500000.0), new bmgl.Matrix4()),
      id : 'ellipsoid',
      attributes : {
        color : bmgl.ColorGeometryInstanceAttribute.fromColor(bmgl.Color.AQUA)
      }
  }),
  appearance : new bmgl.PerInstanceColorAppearance()
}));
See:

Members

(readonly) allowPicking : Boolean

true時,每個幾何體實例只能使用Scene#pick進行選擇。當false時,保存GPU內存。*
Default Value: true

appearance : Appearance

Appearance用于對該原語進行著色。每個幾何體實例都以相同的外觀著色。一些外觀,如PerInstanceColorAppearance允許為每個實例提供唯一的屬性。
Default Value: undefined

(readonly) asynchronous : Boolean

確定是否將在Web工作者上創建和批處理幾何體實例。
Default Value: true

(readonly) compressVertices : Boolean

true時,幾何體頂點被壓縮,這將節省內存。
Default Value: true

cull : Boolean

true時,渲染器的平截體剔除和地平線根據其邊界體積剔除基本體的命令。如果要手動剔除原語,請將其設置為false以獲得較小的性能增益。
Default Value: true

debugShowBoundingVolume : Boolean

此屬性僅用于調試;它既不用于生產,也不進行優化。

為基本體中的每個draw命令繪制邊界球體。

Default Value: false

depthFailAppearance : Appearance

Appearance用于在深度測試失敗時對該原語進行著色。每個幾何體實例都以相同的外觀著色。一些外觀,如PerInstanceColorAppearance允許為每個實例提供唯一的屬性。

當使用需要顏色屬性的外觀時,如PerInstanceColorAppearance,請為每個實例屬性添加DepthFailColor。

需要ext}frag_depth webgl擴展以正確呈現。如果不支持擴展,則可能存在工件。

Default Value: undefined

(readonly) geometryInstances : (Array.<GeometryInstance>|GeometryInstance)

使用此基元渲染的幾何體實例。在構造基元時,如果options.releaseGeometryInstancestrue,則可能是undefined

在呈現基元后更改此屬性沒有效果。

Default Value: undefined

(readonly) interleave : Boolean

確定幾何體頂點屬性是否交錯,這可以稍微提高渲染性能。
Default Value: false

modelMatrix : Matrix4

將基本體(所有幾何體實例)從模型轉換為世界坐標的4x4轉換矩陣。當這是一個單位矩陣時,原語以世界坐標繪制,即地球的wgs84坐標。本地參考幀可以通過提供不同的轉換矩陣來使用,如Transforms.eastNorthUpToFixedFrame返回的轉換矩陣。

此屬性僅在3D模式下受支持。

Default Value: Matrix4.IDENTITY
Example:
var origin = bmgl.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
p.modelMatrix = bmgl.Transforms.eastNorthUpToFixedFrame(origin);

(readonly) ready : Boolean

確定基元是否已完成并準備好呈現。如果此屬性為真,則下次調用Primitive#update時將呈現原語。

(readonly) readyPromise : Promise.<Primitive>

獲取解決基元何時準備呈現的承諾。

(readonly) releaseGeometryInstances : Boolean

true時,原語不保留對輸入geometryInstances的引用以保存內存。
Default Value: true

shadows : ShadowMode

確定此基元是投射還是接收來自每個光源的陰影。
Default Value: ShadowMode.DISABLED

show : Boolean

確定是否顯示基元。這會影響基本體中的所有幾何體實例。
Default Value: true

(readonly) vertexCacheOptimize : Boolean

true時,幾何體頂點將針對頂點前和頂點后明暗器緩存進行優化。
Default Value: true

Methods

destroy()
銷毀此對象持有的WebGL資源。銷毀對象允許確定地釋放WebGL資源,而不是依賴垃圾收集器來銷毀此對象。

一旦對象被破壞,就不應使用它;調用除isDestroyed以外的任何函數都將導致DeveloperError異常。因此,將返回值(undefined)賦給對象,如示例中所述。

Example
e = e && e.destroy();
Throws
See:
getGeometryInstanceAttributes(id) → {Object}
返回GeometryInstance的每個實例可修改屬性。
Parameters:
id (*) GeometryInstance的ID。
Example
var attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = bmgl.ColorGeometryInstanceAttribute.toValue(bmgl.Color.AQUA);
attributes.show = bmgl.ShowGeometryInstanceAttribute.toValue(true);
attributes.distanceDisplayCondition = bmgl.DistanceDisplayConditionGeometryInstanceAttribute.toValue(100.0, 10000.0);
attributes.offset = bmgl.OffsetGeometryInstanceAttribute.toValue(Cartesian3.IDENTITY);
Throws
  • DeveloperError : 必須在調用GetGeometryInstanceAttributes之前調用Update。
isDestroyed() → {Boolean}
如果此對象被破壞,則返回true;否則返回false。

如果此對象被破壞,則不應使用它;調用除isDestroyed以外的任何函數都將導致DeveloperError異常。

See:
update()
ViewerBMWidget渲染場景以獲取渲染此原語所需的繪制命令時調用。

不要直接調用此函數。這只是為了列出渲染場景時可能傳播的異常:

Throws
  • DeveloperError : 所有實例幾何必須具有相同的PrimitiveType。
  • DeveloperError : 外觀和材料有一個統一的名稱。
  • DeveloperError : Primitive.ModelMatrix僅在3D模式下受支持。
  • RuntimeError : 需要頂點紋理獲取支持來渲染具有每個實例屬性的基本體。頂點紋理圖像單位的最大數目必須大于零。
主站蜘蛛池模板: 合金锤头_破碎机锤头_耐磨锤头_巩义市东辰铸造 高耐磨合金锤头厂家 | 精品中文字幕在线观看,粉嫩av一区二区三区,最近中文字幕在线看免费视频,亚洲高清在线观看,日本一区二区视频手机免费看,国产黄色小视频,亚洲高清免费视频,国产精品一区二区欧美视频,亚洲人免费视频,亚洲视频在线观看免费,国产免费高清综合视频,中文字幕永久在线 | 山东德曼医疗设备集团有限公司| 柱状_椰壳_蜂窝_果壳_粉状活性炭_活性炭厂家 - 銮桦净化 | 乐贝贝童装批发网-外贸童装批发厂家直销|网上品牌童装批发市场|儿童服装批发首选 | 深圳展厅设计_产业园区展馆设计_展馆设计公司_健康产业展馆设计_展厅设计哪家好_华竣国际 | 廊坊微信营销,廊坊小程序开发,廊坊APP开发(安卓_苹果ios开发),微信朋友圈广告,百度推广,廊坊网络公司品牌服务商-河北盛秋网络科技有限公司 | 津成电线电缆价格,天津津成线缆,津成线缆销售电话,天津津成线缆批发电话-天津市津成电线电缆有限公司 | 天津翻译公司盖章|022-58385822| 翰文博译(天津)商务咨询有限公司 | 我的建筑网-中国建筑工程行业门户网站! | 湖南视频会议设备厂家|长沙视频会议设备安装型号齐全找湖南日恒智能工程有限公司 | 纸箱包装,济南纸箱,济南包装盒-济南佳琦包装有限公司 | 快速卷帘门-电动卷帘门-快速堆积门-快速门厂家-任丘市康速机电设备有限公司 | 贴标机_全自动贴标机_贴标机生产厂家_【佼佼者自动化】 | 山东华德耐特工业设备有限公司-仓储货架-钢托盘-物流车-周转箱-工位器具 | 中捷摇臂钻,数控钻床,沈阳中捷设备机床厂官网_沈阳中捷数控摇臂钻床厂 | 木材粉碎机-树枝秸秆粉碎机价格-双轴金属撕碎机生产线-金禾机械厂家 | 潍坊劲昊磁电科技有限公司-电磁除铁器,永磁除铁器,管道式除铁器,金属探测仪,磁滚筒,输送设备,给料设备,破碎设备 | 金属剪切机,金属打包机,废钢剪切机,废铁压块机,金属压块机,废纸打包机,重废龙门剪,废钢龙门剪,箱式剪,液压剪切机-瑞顿机械装备制造江阴有限公司 | 天津鸿宸机械设备有限公司-提取浓缩设备和生物制药设备以及制剂设备、粉碎设备、烘干等设备供应商 | 摩托车-摩托车配件-摩托车与配件_摩托车与配件行业权威的门户网站! | 压力机-压装机-黄油机-黄油泵-[广东品嘉灵]专业定制各种精密压装设备 | 混凝土砂石分离机_龙门洗车机_振动型砂石分离机 - 青州同辉环保机械 | 金诺国际拍卖集团有限公司--金诺国际拍卖集团有限公司 | 启东华立石油化工机械设备有限公司|过滤器|混合机|消声器|混合器|管道过滤器|空气过滤器|精细过滤器 | 无缝钢管生产厂家-20G-L360N无缝钢管价格-天津海诚无缝钢管集团 无尘投料站-真空上料机-旋振筛|超声波振动筛|摇摆筛|筛分机-新乡市欧霖佳机械有限公司 | 上海商标注册,上海注册商标,上海商标代理,国际商标注册,版权登记-上海律点知识产权代理有限公司 上海山田机械有限公司 | 永康微网站建设、永康手机网站建设、永康营销型网站建设、永康外贸网站建设、永康网站托管、永康网络公司—英汇网络 - 永康市英汇网络技术有限公司 | 射频微波_微波元器件_芯片_电源模块_Raychem_立维创展 | 影像测量仪|检测设备定制|平面度测量仪|三坐标测量机|广州市海科思自动化设备有限公司-400-0528-668 | 液压提升设备,液压顶升装置,钢内筒提升设备,储罐液压顶升_沧州鼎恒液压机械制造有限公司 | 河北高新技术企业认定,沧州商标注册,沧州9001质量管理体系认证,沧州高新技术企业认定,沧州体系认证,沧州商标续展,沧州版权登记,河北国瑞企业管理咨询有限公司 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 起名字典|宝宝新生儿男孩女孩起名免费网-诗经周易生辰八字取名字大全 | 新乡市大成数控机械有限公司| 上海协格机电科技股份有限公司-上海格力中央空调安装报价工程服务商 | 西门子伺服电机维修_西门子变频器维修_西门子伺服驱动器维修_数控系统维修_PL维修-上海仰光电子 西克制冷官网│制冷机组冷风机冷库设备厂家-西克制冷(无锡)有限公司_西克制冷(无锡)有限公司 | 远程供电系统-电源发生器-隔离电源转换器-深圳市安博特电源设备有限公司 | 三氯异氰尿酸_二水二氯异氰尿酸钠_氰尿酸 | 西安网站建设,西安网站设计制作,西安短视频拍摄_短视频运营就选动力无限网络推广公司 | 上海熙隆光电科技有限公司-半导体激光器,一字线激光器,光纤耦合激光器,拉曼激光器 |