在加载Cesium.Geometry时,仰视视角(高于平视视角)对象消失不显示的问题怎么解决?
cesium里面我创建了一个Geometry->GeometryInstance->Primitive的对象,在我俯视的时候,即使高度低于对象也可以显示,但是一旦相机视角高于平视(仰视)的时候,对象就会消失不显示?
我在Primitive中已经关闭了背面剔除效果,但是还是会出现这种问题。
是因为我创建的对象的问题还是cesium本身不支持?如果这样的话,一般cesium是怎么将这种灰度图像加载上再三维显示的呀(不是作为高程加载)
附上代码:
const geometry = new Cesium.Geometry({
attributes: {
position: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.DOUBLE,
componentsPerAttribute: 3,
values: new Float64Array(
Cesium.Cartesian3.packArray(Cesium.Cartesian3.fromDegreesArrayHeights(new Float64Array(positions)))
),
}),
normal: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: new Float32Array(normals),
}),
color: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.FLOAT,
componentsPerAttribute: 4,
values: new Float32Array(colors),
}),
},
primitiveType: Cesium.PrimitiveType.TRIANGLES,
vertexFormat: Cesium.VertexFormat.POSITION_AND_COLOR,
boundingSphere: Cesium.BoundingSphere.fromVertices(new Float64Array(positions)),
});
console.log('geometry created successfully:', geometry);
const geometryInstance = new Cesium.GeometryInstance({
geometry: geometry,
modelMatrix: Cesium.Matrix4.IDENTITY,
id: 'horizon',
});
const primitive = new Cesium.Primitive({
geometryInstances: geometryInstance,
// 修复视角问题的外观设置
appearance: new Cesium.PerInstanceColorAppearance({
translucent: false,
closed: false, // 允许从内部看到几何体
flat: true,
}),
asynchronous: false,
cull: false, // 禁用背面剔除
frustumCulled:false,
show: true,
});
俯视:

仰视:
