GeometryPipeline

GeometryPipeline()

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

Methods

staticCesium.GeometryPipeline.compressVertices(geometry)Geometry

压缩和打包几何法线属性值以节省内存。
Name Type Description
geometry Geometry 要修改的几何图形。
Returns:
修改后的geometry参数,其法线被压缩和打包。
Example:
geometry = Cesium.GeometryPipeline.compressVertices(geometry);

staticCesium.GeometryPipeline.computeNormal(geometry)Geometry

通过对所有与顶点相关的三角形的法线求平均值,计算包含TRIANGLES的几何图形的每个顶点法线 结果是一个新的normal属性添加到几何图形中。 这假设是逆时针旋转的顺序。
Name Type Description
geometry Geometry 要修改的几何图形。
Returns:
修改后的geometry参数,其计算出的normal属性。
Throws:
Example:
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 要修改的几何图形。
Returns:
修改后的geometry参数,计算出的tangentbitangent属性。
Throws:
Example:
Cesium.GeometryPipeline.computeTangentAndBiTangent(geometry);

staticCesium.GeometryPipeline.createAttributeLocations(geometry)Object

创建一个对象,将属性名映射到唯一的位置(索引),以匹配顶点属性和着色程序。
Name Type Description
geometry Geometry 创建对象的几何图形(未修改)。
Returns:
具有属性名/索引对的对象。
Example:
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 每条线段的长度,以米为单位。它可以是负的,指向相反的方向。
Returns:
一个新的Geometry实例,带有向量的线段。
Throws:
  • DeveloperError : geometry.attributes 必须具有与attributeName参数同名的属性。
Example:
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 已编码的低位的属性名。
Returns:
修改后的geometry参数及其编码属性。
Throws:
  • DeveloperError : geometry必须有与attributeName参数匹配的属性。
  • DeveloperError : 属性componentDatatype必须是ComponentDatatype.DOUBLE。
Example:
geometry = Cesium.GeometryPipeline.encodeAttribute(geometry, 'position3D', 'position3DHigh', 'position3DLow');

staticCesium.GeometryPipeline.fitToUnsignedShortIndices(geometry)Array.<Geometry>

如果需要,将一个几何图形分割成多个几何图形,以确保indices中的索引适合于无符号的short。 当不支持无符号整型索引时,它用于满足WebGL需求。

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

Name Type Description
geometry Geometry 要分割成多个几何图形的几何图形。
Returns:
一组几何图形,每个几何图形的索引都适合无符号的shorts。
Throws:
  • DeveloperError : geometry.primitiveType 必须等于 PrimitiveType.TRIANGLES, PrimitiveType.LINES, 或 PrimitiveType.POINTS。
  • DeveloperError : 所有几何属性列表必须具有相同数量的属性。
Example:
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 要使用的投影。
Returns:
修改后的geometry参数具有position3Dposition2D属性。
Throws:
Example:
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的顶点缓存中保存的顶点数。
Returns:
修改后的geometry参数,其索引为post-vertex-shader缓存重新排序。
Throws:
Example:
geometry = Cesium.GeometryPipeline.reorderForPostVertexCache(geometry);
See:

staticCesium.GeometryPipeline.reorderForPreVertexCache(geometry)Geometry

重新排序几何图形的属性和索引,以从GPU的pre-vertex-shader缓存获得更好的性能。
Name Type Description
geometry Geometry 要修改的几何图形。
Returns:
修改后的geometry参数,其属性和索引为GPU的pre-vertex-shader缓存重新排序。
Throws:
  • DeveloperError : geometry.attributes中的每个属性数组必须具有相同数量的属性。
Example:
geometry = Cesium.GeometryPipeline.reorderForPreVertexCache(geometry);
See:

staticCesium.GeometryPipeline.toWireframe(geometry)Geometry

将几何图形的三角形索引转换为线索引。 如果几何图形有indices,且其primitiveTypeTRIANGLESTRIANGLE_STRIPTRIANGLE_FAN,则转换为LINES;否则,几何图形不会改变。

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

Name Type Description
geometry Geometry 要修改的几何图形。
Returns:
修改后的geometry参数,其三角形索引转换为线索引。
Throws:
  • DeveloperError : geometry.primitiveType 必须为 TRIANGLES, TRIANGLE_STRIP, 或 TRIANGLE_FAN。
Example:
geometry = Cesium.GeometryPipeline.toWireframe(geometry);

staticCesium.GeometryPipeline.transformToWorldCoordinates(instance)GeometryInstance

将一个几何实例转换为世界坐标。 这将实例的AAA更改为BBB,并转换以下属性(如果存在的话):positionnormaltangent bitangent
Name Type Description
instance GeometryInstance 要修改的几何实例。
Returns:
修改后的实例参数,其属性转换为世界坐标。
Example:
Cesium.GeometryPipeline.transformToWorldCoordinates(instance);