EllipsoidSurfaceAppearance

椭球体表面的几何图形外观,如PolygonGeometryRectangleGeometry,支持所有材料,如MaterialAppearanceMaterialAppearance.MaterialSupport.ALL。但是,这种外观需要较少的顶点属性,因为片段着色程序可以计算normaltangentbitangent
new EllipsoidSurfaceAppearance(options)
Parameters:
options (Object)
Name Description
options.flat
Boolean
default false
true时,片段着色中使用平面着色,这意味着不考虑照明。
options.faceForward
Boolean
default options.aboveGround
true时,片段明暗器会根据需要翻转曲面法线,以确保法线面向查看器以避免出现黑点。当几何图形的两边都应该像WallGeometry那样加阴影时,这很有用。
options.translucent
Boolean
default true
true时,几何体将显示为半透明,因此EllipsoidSurfaceAppearance#renderState启用了alpha混合。
options.aboveGround
Boolean
default false
true时,几何体应位于椭球体的表面上,而不是其上方的恒定高度,因此EllipsoidSurfaceAppearance#renderState启用背面剔除。
options.material
Material
default Material.ColorType
用于确定片段颜色的材质。
options.vertexShaderSource
String
可选的glsl顶点明暗器源覆盖默认的顶点明暗器。
options.fragmentShaderSource
String
可选的glsl fragment shader source覆盖默认的fragment shader。
options.renderState
RenderState
可选的渲染状态以覆盖默认的渲染状态。
Example
var primitive = new bmgl.Primitive({
  geometryInstances : new bmgl.GeometryInstance({
    geometry : new bmgl.PolygonGeometry({
      vertexFormat : bmgl.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
      // ...
    })
  }),
  appearance : new bmgl.EllipsoidSurfaceAppearance({
    material : bmgl.Material.fromType('Stripe')
  })
});

Members

(static, constant) VERTEX_FORMAT : VertexFormat

所有EllipsoidSurfaceAppearance实例都兼容的VertexFormat,这只需要positionst属性。其他属性在片段明暗器中按程序计算。

(readonly) aboveGround : Boolean

true时,几何体应位于椭球体的表面上,而不是其上方的恒定高度,因此EllipsoidSurfaceAppearance#renderState启用背面剔除。
Default Value: false

(readonly) closed : Boolean

true时,几何图形将关闭,因此EllipsoidSurfaceAppearance#renderState启用背面剔除。如果查看器进入几何图形,它将不可见。
Default Value: false

(readonly) faceForward : Boolean

true时,片段明暗器会根据需要翻转曲面法线,以确保法线面向查看器以避免出现黑点。当几何图形的两边都应该像WallGeometry那样加阴影时,这很有用。
Default Value: true

(readonly) flat : Boolean

true时,片段着色中使用平面着色,这意味着不考虑照明。
Default Value: false

(readonly) fragmentShaderSource : String

片段明暗器的glsl源代码。完整片段明暗器源按程序构建,考虑到EllipsoidSurfaceAppearance#materialEllipsoidSurfaceAppearance#flatEllipsoidSurfaceAppearance#faceForward。使用EllipsoidSurfaceAppearance#getFragmentShaderSource获取完整源。

material : Material

用于确定片段颜色的材质。与其他EllipsoidSurfaceAppearance属性不同,这不是只读的,因此外观的材质可以随时更改。
Default Value: Material.ColorType

(readonly) renderState : Object

呈现几何图形时要使用的WebGL固定函数状态。

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

translucent : Boolean

true时,几何体将显示为半透明。
Default Value: true

(readonly) vertexFormat : VertexFormat

此外观实例与之兼容的VertexFormat。几何体可以有更多的顶点属性,并且仍然是兼容的(以潜在的性能代价),但是它不能有更少的顶点属性。
Default Value: EllipsoidSurfaceAppearance.VERTEX_FORMAT

(readonly) vertexShaderSource : String

顶点明暗器的glsl源代码。

Methods

getFragmentShaderSource() → {String}
getRenderState() → {Object}
创建渲染状态。这不是最终的渲染状态实例;相反,它可以包含与上下文中创建的渲染状态相同的渲染状态属性的子集。
isTranslucent() → {Boolean}
确定几何图形是否基于EllipsoidSurfaceAppearance#translucentMaterial#isTranslucent半透明。