UniformType
定义了Cesium中的uniform variables的类型。
以下是可用的 UniformType
类型:
类型名称 | 描述 |
---|---|
INT | 整数类型 |
FLOAT | 浮点类型 |
MAT2 | 2x2的矩阵类型 |
MAT3 | 3x3的矩阵类型 |
MAT4 | 4x4的矩阵类型 |
VEC2 | 包含两个浮点类型元素的向量类型 |
VEC3 | 包含三个浮点类型元素的向量类型 |
VEC4 | 包含四个浮点类型元素的向量类型 |
SAMPLER2D | 2D纹理类型 |
SAMPLER3D | 3D纹理类型 |
SAMPLERCUBE | 立方体纹理类型 |
以下是使用 UniformType
的示例:
var myShader = new Cesium.Primitive({
type: 'MY_SHADER',
uniforms: {
u_Color: {
name: 'u_Color',
type: Cesium.UniformType.VEC4,
value: new Cesium.Cartesian4(1.0, 0.0, 0.0, 1.0)
},
u_Time: {
name: 'u_Time',
type: Cesium.UniformType.FLOAT,
value: 0.0
},
u_Texture: {
name: 'u_Texture',
type: Cesium.UniformType.SAMPLER2D,
value: myTexture
}
}
});
在这个例子中,我们定义了一个包含了三个uniforms的 Primitive
。 其中,u_Color
是一个四元素向量类型,u_Time
是一个浮点类型,u_Texture
是一个2D纹理类型。
UniformType
中的元素必须是确定的。比如 SamplerCube
必须是 CubeMap
纹理类型, Mat2
必须是2x2的矩阵类型,Vec3
必须是3元素向量类型。UniformType
中所有类型名称都必须是大写的。Primitive
中使用 UniformType
时,value
必须是以下类型之一:
Number
Float32Array
, Int32Array
等等。Texture
对象Matrix2
, Matrix3
, Matrix4
, Cartesian2
, Cartesian3
, Cartesian4
等Cesium对象。