任意几何体的外观(与
EllipsoidSurfaceAppearance相对),支持材质着色。
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有以下属性的对象:
|
Example:
var primitive = new SuperMap3D.Primitive({
geometryInstances : new SuperMap3D.GeometryInstance({
geometry : new SuperMap3D.WallGeometry({
materialSupport : SuperMap3D.MaterialAppearance.MaterialSupport.BASIC.vertexFormat,
// ...
})
}),
appearance : new SuperMap3D.MaterialAppearance({
material : SuperMap3D.Material.fromType('Color'),
faceForward : true
})
});
Members
-
确定
MaterialAppearance实例所支持的Material类型。 这是在灵活性(多种材质)和内存/性能(所需顶点格式和 GLSL 着色器复杂度)之间的权衡。 -
为 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 -
readonlymaterialSupport : MaterialAppearance.MaterialSupport
-
此实例支持的材质类型。这将影响所需的
VertexFormat以及顶点和片段着色器的复杂程度。-
Default Value:
MaterialAppearance.MaterialSupport.TEXTURED -
渲染几何体时使用的 WebGL 固定函数状态。
呈现状态可以在构建
MaterialAppearance实例时显式定义,也可以通过MaterialAppearance#translucent和MaterialAppearance#closed隐式设置。 -
为true时,几何体将呈现半透明效果。
-
Default Value:
true -
readonlyvertexFormat : VertexFormat
-
该外观实例兼容的
VertexFormat顶点属性。一个几何体可以有更多的顶点属性,并且仍然兼容,但可能要付出性能代价,但不能少。-
Default Value:
MaterialAppearance.MaterialSupport.TEXTURED.vertexFormat -
顶点着色器的 GLSL 源代码。
Methods
-
程序化创建完整的 GLSL 片段着色器源。 对于
MaterialAppearance来说,这源于MaterialAppearance#fragmentShaderSource、MaterialAppearance#material、MaterialAppearance#flat和MaterialAppearance#faceForward。Returns:
完整的 GLSL 片段着色器源。 -
创建一个呈现状态。这不是最终的呈现状态实例;相反,它可以包含与上下文中创建的呈现状态相同的呈现状态属性子集。
Returns:
渲染状态。 -
根据
MaterialAppearance#translucent和Material#isTranslucent确定几何体是否半透明。Returns:
如果外观是半透明的,则为 true。
