椭球表面几何体的外观,如
PolygonGeometry
和RectangleGeometry
,它支持所有的材料,如MaterialAppearance
和MaterialAppearance.materialsupport.all
。
然而,这种外观需要更少的顶点属性,因为片段着色器可以程序地计算normal
、tangent
和bitangent
。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有以下属性的对象:
|
Example:
var primitive = new SuperMap3D.Primitive({
geometryInstances : new SuperMap3D.GeometryInstance({
geometry : new SuperMap3D.PolygonGeometry({
vertexFormat : SuperMap3D.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
// ...
})
}),
appearance : new SuperMap3D.EllipsoidSurfaceAppearance({
material : SuperMap3D.Material.fromType('Stripe')
})
});
Members
-
staticconstantSuperMap3D.EllipsoidSurfaceAppearance.VERTEX_FORMAT : VertexFormat
-
-
当为true时,几何体被期望在椭球体的表面上-而不是在它上面的恒定高度-所以
EllipsoidSurfaceAppearance#renderState
启用了背面剔除。-
Default Value:
false
-
当为true时,几何体将被封闭,因此
EllipsoidSurfaceAppearance#renderState
将启用背面剔除。如果观察者进入几何体,它将不可见。-
Default Value:
false
-
当为true时,碎片着色器根据需要翻转表面法线,以确保法线面向观看者,以避免黑点。当几何体的两边都应该像
WallGeometry
那样着色时,这很有用。-
Default Value:
true
-
当为true时,在片段着色器中使用平面着色,这意味着照明不考虑在内。
-
Default Value:
false
-
片段着色器的GLSL源代码。完整的片段着色器源是按程序构建的,考虑到
EllipsoidSurfaceAppearance#material
,EllipsoidSurfaceAppearance#flat
和EllipsoidSurfaceAppearance#faceForward
。 使用EllipsoidSurfaceAppearance#getFragmentShaderSource
获取完整的源代码。 -
material : Material
-
用来确定碎片颜色的材质。与其他
EllipsoidSurfaceAppearance
属性不同,这不是只读的,所以外观的材质可以动态更改。-
Default Value:
Material.ColorType
-
渲染几何体时使用的WebGL固定函数状态。
渲染状态可以在构造
EllipsoidSurfaceAppearance
实例时显式定义,也可以通过EllipsoidSurfaceAppearance#半透明
和EllipsoidSurfaceAppearance#aboveGround
隐式设置。 -
当为true时,几何体应该是半透明的。
-
Default Value:
true
-
readonlyvertexFormat : VertexFormat
-
这个外观实例兼容的
VertexFormat
。一个几何体可以有更多的顶点属性,但仍然是兼容的——以潜在的性能成本为代价——但不能少。-
Default Value:
EllipsoidSurfaceAppearance.VERTEX_FORMAT
-
顶点着色器的GLSL源代码。
Methods
-
程序化创建完整的 GLSL 片段着色器源。对于
EllipsoidSurfaceAppearance
来说,这是从EllipsoidSurfaceAppearance#fragmentShaderSource
、EllipsoidSurfaceAppearance#flat
和EllipsoidSurfaceAppearance#faceForward
衍生而来。Returns:
完整的 GLSL 片段着色器源。 -
创建一个呈现状态。这不是最终的呈现状态实例。相反,它可以包含与上下文中创建的呈现状态相同的呈现状态属性子集。
Returns:
渲染状态。 -
根据
EllipsoidSurfaceAppearance#translucent
和Material#isTranslucent
确定几何体是否半透明。Returns:
如果外观是半透明的,则为 true。