ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Cesium 使用primitive绘制几何图形,相机拉近(视野放大),几何图形破损显示不完整

2022-04-05 19:35:44  阅读:330  来源: 互联网

标签:primitive 几何图形 geometry appearance Cesium new


分析:此原因是因为地形导致,可以尝试将primitive设置高程(高度)如5000m,此时图形位置由于高于山峰等地形,图形可以显示完整。

但是如果几何图形必须要贴地(高度为0m)呢?

解决方法:

1.设置scene.globe.depthTestAgainstTerrain = false;即不进行地形深度测试,也就忽略了地形。这时可以正常显示几何图形。

2.使用GroundPrimitive。顾名思义,这是帮助你将几何图形贴地的类。

scene.primitives.add(new Cesium.GroundPrimitive({

		geometryInstances : instances,
		appearance : new Cesium.PerInstanceColorAppearance()
	}));

这里给出官方的解释:

A ground primitive represents geometry draped over the terrain in the Scene. The geometry must be from a single GeometryInstance. Batching multiple geometries is not yet supported.

A primitive combines the geometry instance with an Appearance that describes the full shading, including Material and RenderState. Roughly, the geometry instance defines the structure and placement, and the appearance defines the visual characteristics. Decoupling geometry and appearance allows us to mix and match most of them and add a new geometry or appearance independently of each other. Only the PerInstanceColorAppearance is supported at this time.

For correct rendering, this feature requires the EXT_frag_depth WebGL extension. For hardware that do not support this extension, there will be rendering artifacts for some viewing angles.

Valid geometries are CircleGeometry, CorridorGeometry, EllipseGeometry, PolygonGeometry, and RectangleGeometry.

这里给出官方demo:

var rectangleInstance = new Cesium.GeometryInstance({   geometry : new Cesium.RectangleGeometry({     rectangle : Cesium.Rectangle.fromDegrees(-140.0, 30.0, -100.0, 40.0)   }),   id : 'rectangle',   attributes : {     color : new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5)   } }); scene.primitives.add(new Cesium.GroundPrimitive({   geometryInstances : rectangleInstance }));

本文转自 https://blog.csdn.net/u013821237/article/details/80221108,如有侵权,请联系删除。

标签:primitive,几何图形,geometry,appearance,Cesium,new
来源: https://www.cnblogs.com/hustshu/p/16103521.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有