麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - MaterialAppearance 中文文档

本文介绍下Cesium中 MaterialAppearance API的详细使用说明。

MaterialAppearance API 调用方法

new Cesium.MaterialAppearance(options)
支持材质着色的任意几何图形的外观(与EllipsoidSurfaceAppearance相反)。
Name Type Description
options Object optional 具有以下属性的对象:
Name Type Default Description
flat Boolean false optionaltrue时,在片段着色器中使用了平面着色,这意味着没有考虑到光照。
faceForward Boolean !options.closed optionaltrue时,片段着色器会根据需要翻转表面法线, 以确保法线面对观察者,避免出现黑斑。当几何图形的两侧都应像WallGeometry 一样着色时,这很有用。
translucent Boolean true optionaltrue时,几何图形应该是半透明的,因此MaterialAppearance#renderState启用了alpha混合。
closed Boolean false optionaltrue时,几何图形将被关闭,因此MaterialAppearance#renderState启用了背面剔除。
materialSupport MaterialAppearance.MaterialSupport MaterialAppearance.MaterialSupport.TEXTURED optional 支持的材质类型。
material Material Material.ColorType optional 用于确定片元颜色的材质。
vertexShaderSource String optional 可选的GLSL顶点着色器源覆盖默认的顶点着色器。
fragmentShaderSource String optional 可选的GLSL片段着色器源覆盖默认的片段着色器。
renderState RenderState 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:
参考:

成员变量

readonlyclosed : Boolean
true时,几何图形将被关闭,因此MaterialAppearance#renderState启用了后表面剔除。
Default Value: false
readonlyfaceForward : Boolean
true时,片段着色器会根据需要翻转表面法线, 以确保法线面对观察者,避免出现黑斑。当几何图形的两侧都应像WallGeometry 一样着色时,这很有用。
Default Value: true
readonlyflat : Boolean
true时,在片段着色器中使用了平面着色,这意味着没有考虑到光照。
Default Value: false
readonlyfragmentShaderSource : String
片段着色器的GLSL源代码。 完整的片段着色器源是根据MaterialAppearance#materialMaterialAppearance#flatMaterialAppearance#faceForward构建的。 使用MaterialAppearance#getFragmentShaderSource获得完整的源代码。
用于确定片元颜色的材质。与其他MaterialAppearance属性不同,它不是只读的,所以外观的材质可以动态改变。
Default Value: Material.ColorType
参考:
readonlymaterialSupport : MaterialAppearance.MaterialSupport
此实例支持的材质类型。 这影响了所需的VertexFormat和顶点、片段着色器的复杂性。
Default Value: MaterialAppearance.MaterialSupport.TEXTURED
readonlyrenderState : Object
渲染几何图形时的WEBGL状态。

可以在构造MaterialAppearance实例时显式定义渲染状态, 也可以通过MaterialAppearance#半透明MaterialAppearance#closed隐式设置渲染状态。

translucent : Boolean
true时,几何图形应该是半透明的。
Default Value: true
与此外观实例兼容的VertexFormat。 几何图形可以有更多的顶点属性,而且仍然是兼容的——以潜在的性能成本为代价——但它不能有更少的顶点属性。
Default Value: MaterialAppearance.MaterialSupport.TEXTURED.vertexFormat
readonlyvertexShaderSource : String
顶点着色器的GLSL源代码。

内置方法

getFragmentShaderSource()String
返回值:
完整的GLSL片段着色器。
getRenderState()Object
创建渲染状态。 这不是最终的渲染状态实例;相反,它可以包含与上下文中创建的呈现状态相同的渲染状态属性的子集。
返回值:
渲染的状态。
isTranslucent()Boolean
根据MaterialAppearance#translucentMaterial#isTranslucent确定几何图形是否为半透明。
返回值:
如果外观是半透明的true

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)