createTangentSpaceDebugPrimitive
函数用于创建一个调试用的切线空间三角形网格Primitive,用来表示切线空间在模型表面的方向和值,该函数属于Cesium3D开源JavaScript库。
参数 | 类型 | 描述 |
---|---|---|
options | Object | 可选参数,包括以下属性: |
options.geometry | Geometry | 必需参数,表示三角形形状的Geometry。 |
options.attributeName | String | 可选参数,表示包含切线和副法线信息的属性名,默认为“TANGENT”。 |
options.length | Number | 可选参数,表示切线和副法线线长的倍数,默认为1。 |
类型 | 描述 |
---|---|
Primitive | 一个切线空间三角形网格Primitive。 |
const geometry = new Cesium.Geometry({
attributes: {
position: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: new Float32Array([
0.0, 0.0, 0.0,
100000.0, 0.0, 0.0,
0.0, 100000.0, 0.0
])
}),
normal: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: new Float32Array([
0.0, 0.0, 1.0,
0.0, 0.0, 1.0,
0.0, 0.0, 1.0
])
}),
tangent: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: new Float32Array([
1.0, 0.0, 0.0,
1.0, 0.0, 0.0,
1.0, 0.0, 0.0
])
}),
st: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.FLOAT,
componentsPerAttribute: 2,
values: new Float32Array([
0.0, 0.0,
1.0, 0.0,
0.0, 1.0
])
})
},
indices: new Uint32Array([0, 1, 2]),
primitiveType: Cesium.PrimitiveType.TRIANGLE_STRIP
});
const tangentSpaceDebugPrimitive = Cesium.createTangentSpaceDebugPrimitive({
geometry: geometry,
attributeName: 'TANGENT',
length: 10
});
viewer.scene.primitives.add(tangentSpaceDebugPrimitive);
如果options.geometry不提供或者不是一个Geometry,则会抛出异常“options.geometry是必需参数,且必须是Geometry。”。