EllipsoidSurfaceAppearance

new Cesium.EllipsoidSurfaceAppearance(options)

一种用于椭球表面几何(如 PolygonGeometryRectangleGeometry)的外观,它支持所有材质,如同 MaterialAppearance 配合 MaterialAppearance.MaterialSupport.ALL。不过,由于片元着色器可以按程序计算 normaltangentbitangent,此外观所需的顶点属性更少。
Name Type Description
options object optional 包含以下属性的对象:
Name Type Default Description
flat boolean false optional 当为 true 时,片元着色器使用平面着色,即不考虑光照。
faceForward boolean options.aboveGround optional 当为 true 时,片元着色器会按需翻转表面法线,以确保法线朝向观察者,避免出现暗斑。当几何体的两侧都需要着色(如 WallGeometry)时,这很有用。
translucent boolean true optional 当为 true 时,几何预期为半透明,因此 EllipsoidSurfaceAppearance#renderState 启用了 alpha 混合。
aboveGround boolean false optional 当为 true 时,几何预期位于椭球表面(而非在其上方固定高度处),因此 EllipsoidSurfaceAppearance#renderState 启用了背面剔除。
material Material Material.ColorType optional 用于确定片元颜色的材质。
vertexShaderSource string optional 可选的 GLSL 顶点着色器源码,用于覆盖默认的顶点着色器。
fragmentShaderSource string optional 可选的 GLSL 片元着色器源码,用于覆盖默认的片元着色器。
renderState object optional 可选的渲染状态,用于覆盖默认的渲染状态。
Example:
const primitive = new Cesium.Primitive({
  geometryInstances : new Cesium.GeometryInstance({
    geometry : new Cesium.PolygonGeometry({
      vertexFormat : Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
      // ...
    })
  }),
  appearance : new Cesium.EllipsoidSurfaceAppearance({
    material : Cesium.Material.fromType('Stripe')
  })
});
See:

Members

static constant Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT : VertexFormat

所有 EllipsoidSurfaceAppearance 实例 兼容的 VertexFormat,它仅需要 positionst 两种属性。其他属性在片元着色器中按程序计算。
当为 true 时,几何预期位于椭球 表面(而非在其上方固定高度处),因此 EllipsoidSurfaceAppearance#renderState 启用了背面剔除。
Default Value: false
当为 true 时,几何预期为闭合的,因此 EllipsoidSurfaceAppearance#renderState 启用了背面剔除。 如果观察者进入几何体内部,它将不可见。
Default Value: false
当为 true 时,片元着色器会按需翻转表面法线, 以确保法线朝向观察者,避免 出现暗斑。当几何体的两侧都需要着色(如 WallGeometry)时,这很有用。
Default Value: true
当为 true 时,片元着色器使用平面着色, 即不考虑光照。
Default Value: false

readonly fragmentShaderSource : string

片元着色器的 GLSL 源码。完整的片元着色器 源码是按程序构建的,会考虑 EllipsoidSurfaceAppearance#materialEllipsoidSurfaceAppearance#flatEllipsoidSurfaceAppearance#faceForward。 使用 EllipsoidSurfaceAppearance#getFragmentShaderSource 获取完整源码。
用于确定片元颜色的材质。与其他 EllipsoidSurfaceAppearance 属性不同,它不是只读的,因此外观的材质可以动态更改。
Default Value: Material.ColorType
See:
渲染几何时要使用的 WebGL 固定功能状态。

渲染状态可以在构造 EllipsoidSurfaceAppearance 实例时显式定义,也可以通过 EllipsoidSurfaceAppearance#translucentEllipsoidSurfaceAppearance#aboveGround 隐式设置。

当为 true 时,几何预期为半透明。
Default Value: true
此外观实例兼容的 VertexFormat。 几何可以拥有更多的顶点属性并仍然兼容——但会有 潜在的性能开销——但它不能少于此格式。
Default Value: EllipsoidSurfaceAppearance.VERTEX_FORMAT

readonly vertexShaderSource : string

顶点着色器的 GLSL 源码。

Methods

getFragmentShaderSource()string

Returns:
完整的 GLSL 片元着色器源码。
创建一个渲染状态。这不是最终的渲染状态实例,而是 可以包含与上下文中创建的渲染状态 相同的部分渲染状态属性。
Returns:
渲染状态。
根据 EllipsoidSurfaceAppearance#translucentMaterial#isTranslucent 判断几何是否半透明。
Returns:
如果外观是半透明的则为 true
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。