任意几何体的外观(与
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。