new Cesium.MaterialAppearance(options)
支持材质着色的任意几何图形的外观(与
EllipsoidSurfaceAppearance
相反)。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有以下属性的对象:
|
示例:
var primitive = new Cesium.Primitive({
geometryInstances : new Cesium.GeometryInstance({
geometry : new Cesium.WallGeometry({
materialSupport : Cesium.MaterialAppearance.MaterialSupport.BASIC.vertexFormat,
// ...
})
}),
appearance : new Cesium.MaterialAppearance({
material : Cesium.Material.fromType('Color'),
faceForward : true
})
});
演示Demo:
参考:
成员变量
当
true
时,几何图形将被关闭,因此MaterialAppearance#renderState
启用了后表面剔除。
-
Default Value:
false
当
true
时,片段着色器会根据需要翻转表面法线,
以确保法线面对观察者,避免出现黑斑。当几何图形的两侧都应像WallGeometry
一样着色时,这很有用。
-
Default Value:
true
当
true
时,在片段着色器中使用了平面着色,这意味着没有考虑到光照。
-
Default Value:
false
片段着色器的GLSL源代码。 完整的片段着色器源是根据
MaterialAppearance#material
、MaterialAppearance#flat
和MaterialAppearance#faceForward
构建的。
使用MaterialAppearance#getFragmentShaderSource
获得完整的源代码。
material : Material
用于确定片元颜色的材质。与其他
MaterialAppearance
属性不同,它不是只读的,所以外观的材质可以动态改变。
-
Default Value:
Material.ColorType
参考:
此实例支持的材质类型。 这影响了所需的
VertexFormat
和顶点、片段着色器的复杂性。
-
Default Value:
MaterialAppearance.MaterialSupport.TEXTURED
渲染几何图形时的WEBGL状态。
可以在构造MaterialAppearance
实例时显式定义渲染状态,
也可以通过MaterialAppearance#半透明
和MaterialAppearance#closed
隐式设置渲染状态。
translucent : Boolean
当
true
时,几何图形应该是半透明的。
-
Default Value:
true
与此外观实例兼容的
VertexFormat
。
几何图形可以有更多的顶点属性,而且仍然是兼容的——以潜在的性能成本为代价——但它不能有更少的顶点属性。
-
Default Value:
MaterialAppearance.MaterialSupport.TEXTURED.vertexFormat
顶点着色器的GLSL源代码。
内置方法
创建完整的GLSL片段着色源。对于
MaterialAppearance
,这是从MaterialAppearance#fragmentShaderSource
、MaterialAppearance#material
、MaterialAppearance#flat
、MaterialAppearance#faceForward
派生出来的。
返回值:
完整的GLSL片段着色器。
创建渲染状态。 这不是最终的渲染状态实例;相反,它可以包含与上下文中创建的呈现状态相同的渲染状态属性的子集。
返回值:
渲染的状态。
根据
MaterialAppearance#translucent
和Material#isTranslucent
确定几何图形是否为半透明。
返回值:
如果外观是半透明的
true
。