麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - GeometryPipeline 中文文档

本文介绍下Cesium中 GeometryPipeline API的详细使用说明。

GeometryPipeline API 调用方法

GeometryPipeline()
几何图形的内容管道(Content pipeline)函数。
参考:

内置方法

staticCesium.GeometryPipeline.compressVertices(geometry)Geometry
压缩和打包几何法线属性值以节省内存。
Name Type Description
geometry Geometry 要修改的几何图形。
返回值:
修改后的geometry参数,其法线被压缩和打包。
示例:
geometry = Cesium.GeometryPipeline.compressVertices(geometry);
staticCesium.GeometryPipeline.computeNormal(geometry)Geometry
通过对所有与顶点相关的三角形的法线求平均值,计算包含TRIANGLES的几何图形的每个顶点法线 结果是一个新的normal属性添加到几何图形中。 这假设是逆时针旋转的顺序。
Name Type Description
geometry Geometry 要修改的几何图形。
返回值:
修改后的geometry参数,其计算出的normal属性。
异常情况:
示例:
Cesium.GeometryPipeline.computeNormal(geometry);
staticCesium.GeometryPipeline.computeTangentAndBitangent(geometry)Geometry
计算包含TRIANGLES的几何图形的每个顶点切线和位切(bitangents)。 结果是新的tangentbitangent属性添加到几何图形中。 这假设是逆时针旋转的顺序。

Based on Computing Tangent Space Basis Vectors for an Arbitrary Mesh by Eric Lengyel.

Name Type Description
geometry Geometry 要修改的几何图形。
返回值:
修改后的geometry参数,计算出的tangentbitangent属性。
异常情况:
示例:
Cesium.GeometryPipeline.computeTangentAndBiTangent(geometry);
staticCesium.GeometryPipeline.createAttributeLocations(geometry)Object
创建一个对象,将属性名映射到唯一的位置(索引),以匹配顶点属性和着色程序。
Name Type Description
geometry Geometry 创建对象的几何图形(未修改)。
返回值:
具有属性名/索引对的对象。
示例:
var attributeLocations = Cesium.GeometryPipeline.createAttributeLocations(geometry);
// Example output
// {
//   'position' : 0,
//   'normal' : 1
// }
staticCesium.GeometryPipeline.createLineSegmentsForVectors(geometry, attributeName, length)Geometry
创建一个新的Geometry,其中LINES代表为所提供的几何图形提供的属性(attributeName)。 这用于可视化向量属性,如法线、切线和位切(bitangents)。
Name Type Default Description
geometry Geometry 带有属性的Geometry实例。
attributeName String 'normal' optional 属性的名称。
length Number 10000.0 optional 每条线段的长度,以米为单位。它可以是负的,指向相反的方向。
返回值:
一个新的Geometry实例,带有向量的线段。
异常情况:
  • DeveloperError : geometry.attributes 必须具有与attributeName参数同名的属性。
示例:
var geometry = Cesium.GeometryPipeline.createLineSegmentsForVectors(instance.geometry, 'bitangent', 100000.0);
staticCesium.GeometryPipeline.encodeAttribute(geometry, attributeName, attributeHighName, attributeLowName)Geometry
将浮点几何属性值编码为两个独立的属性,以提高渲染精度。

这通常用于创建高精度的位置顶点属性。

Name Type Description
geometry Geometry 要修改的几何图形。
attributeName String 属性的名称。
attributeHighName String 已编码的高位的属性名。
attributeLowName String 已编码的低位的属性名。
返回值:
修改后的geometry参数及其编码属性。
异常情况:
  • DeveloperError : geometry必须有与attributeName参数匹配的属性。
  • DeveloperError : 属性componentDatatype必须是ComponentDatatype.DOUBLE。
示例:
geometry = Cesium.GeometryPipeline.encodeAttribute(geometry, 'position3D', 'position3DHigh', 'position3DLow');
staticCesium.GeometryPipeline.fitToUnsignedShortIndices(geometry)Array.<Geometry>
如果需要,将一个几何图形分割成多个几何图形,以确保indices中的索引适合于无符号的short。 当不支持无符号整型索引时,它用于满足WebGL需求。

如果几何图形没有任何indices,则此函数无效。

Name Type Description
geometry Geometry 要分割成多个几何图形的几何图形。
返回值:
一组几何图形,每个几何图形的索引都适合无符号的shorts。
异常情况:
  • DeveloperError : geometry.primitiveType 必须等于 PrimitiveType.TRIANGLES, PrimitiveType.LINES, 或 PrimitiveType.POINTS。
  • DeveloperError : 所有几何属性列表必须具有相同数量的属性。
示例:
var geometries = Cesium.GeometryPipeline.fitToUnsignedShortIndices(geometry);
staticCesium.GeometryPipeline.projectTo2D(geometry, attributeName, attributeName3D, attributeName2D, projection)Geometry
将几何图形的3D< code>position属性投影到2D,将position属性替换为单独的position3D >和position2D属性。

如果几何图形没有position,则此函数无效。

Name Type Default Description
geometry Geometry 要修改的几何图形。
attributeName String 属性的名称。
attributeName3D String 3D中属性的名称。
attributeName2D String 2D中属性的名称。
projection Object new GeographicProjection() optional 要使用的投影。
返回值:
修改后的geometry参数具有position3Dposition2D属性。
异常情况:
示例:
geometry = Cesium.GeometryPipeline.projectTo2D(geometry, 'position', 'position3D', 'position2D');
staticCesium.GeometryPipeline.reorderForPostVertexCache(geometry, cacheCapacity)Geometry
通过使用Tipsify算法,重新排序几何图形的索引,以获得更好的性能。 如果几何图形primitiveType不是TRIANGLES或者几何图形没有indices,这个函数没有作用。
Name Type Default Description
geometry Geometry 要修改的几何图形。
cacheCapacity Number 24 optional 可以在GPU的顶点缓存中保存的顶点数。
返回值:
修改后的geometry参数,其索引为post-vertex-shader缓存重新排序。
异常情况:
示例:
geometry = Cesium.GeometryPipeline.reorderForPostVertexCache(geometry);
参考:
staticCesium.GeometryPipeline.reorderForPreVertexCache(geometry)Geometry
重新排序几何图形的属性和索引,以从GPU的pre-vertex-shader缓存获得更好的性能。
Name Type Description
geometry Geometry 要修改的几何图形。
返回值:
修改后的geometry参数,其属性和索引为GPU的pre-vertex-shader缓存重新排序。
异常情况:
  • DeveloperError : geometry.attributes中的每个属性数组必须具有相同数量的属性。
示例:
geometry = Cesium.GeometryPipeline.reorderForPreVertexCache(geometry);
参考:
staticCesium.GeometryPipeline.toWireframe(geometry)Geometry
将几何图形的三角形索引转换为线索引。 如果几何图形有indices,且其primitiveTypeTRIANGLESTRIANGLE_STRIPTRIANGLE_FAN,则转换为LINES;否则,几何图形不会改变。

这通常用于创建用于可视化调试的线框图几何。

Name Type Description
geometry Geometry 要修改的几何图形。
返回值:
修改后的geometry参数,其三角形索引转换为线索引。
异常情况:
  • DeveloperError : geometry.primitiveType 必须为 TRIANGLES, TRIANGLE_STRIP, 或 TRIANGLE_FAN。
示例:
geometry = Cesium.GeometryPipeline.toWireframe(geometry);
staticCesium.GeometryPipeline.transformToWorldCoordinates(instance)GeometryInstance
将一个几何实例转换为世界坐标。 这将实例的AAA更改为BBB,并转换以下属性(如果存在的话):positionnormaltangent bitangent
Name Type Description
instance GeometryInstance 要修改的几何实例。
返回值:
修改后的实例参数,其属性转换为世界坐标。
示例:
Cesium.GeometryPipeline.transformToWorldCoordinates(instance);

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)