TextureUniform 是 Cesium中用于描述纹理的类。它提供了一些方法和属性来控制纹理的属性。
创建一个 TextureUniform 对象:
var textureUniform = new Cesium.TextureUniform({
    image: 'texture.png',
    flipY: true
});
创建了一个默认纹理坐标 [0.0, 0.0, 1.0, 1.0] 的纹理,图片地址为 texture.png,纹理文件会根据设备的支持情况自动在cpu和gpu之间选择上传方式。
设置纹理对材质的影响:
var material = new Cesium.Material({
    fabric: {
        type: 'Color',
        uniforms: {
            image: textureUniform,
            color: new Cesium.Color(1.0, 1.0, 1.0, 0.5)
        }
    }
});
这里的 image 用于控制 TextureUniform 对材质的影响。
image String or HTMLImageElement or HTMLCanvasElement: 纹理图片路径,亦可传入已加载的图片对象或canvas对象
pixelFormat PixelFormat: 解析纹理的颜色格式,默认使用 PixelFormat.RGBA_UNSIGNED_BYTE;
pixelDatatype PixelDatatype: 解析纹理的数据类型,默认使用 PixelDatatype.UNSIGNED_BYTE
flipY Boolean: 是否翻转纹理的Y坐标,默认为false。
wrapS TextureWrap: s轴的纹理循环方式,默认为 TextureWrap.REPEAT。
wrapT TextureWrap: t轴的纹理循环方式,默认为 TextureWrap.REPEAT。
magnificationFilter TextureMagnificationFilter: 放大过滤器。默认为 TextureMagnificationFilter.LINEAR。
minificationFilter TextureMinificationFilter: 缩小过滤器。默认为 TextureMinificationFilter.LINEAR。
maximumAnisotropy Number: 最大各向异性,默认为1。
textureCoordinates: 纹理坐标数组,格式为 [s0, t0, s1, t1],默认值是 [0.0, 0.0, 1.0, 1.0]。
isTranslucent() 返回纹理是否半透明。
equals(other) 比较两个 TextureUniform 是否相等。
sampler2D texture 使用集成后的 texture 对象,使纹理效果work使用 Texture。
两个 vec2 类型的uniform属性。分别是 rotateTextureCoordinates 和 translateTextureCoordinates。可用以调节纹理的位置和角度。使用方法如下:
uniforms: {
    texture: textureUniform,
    rotateTextureCoordinates: new Cesium.Cartesian2(0, 1),
    translateTextureCoordinates: new Cesium.Cartesian2(0.25, 0.0)
}
这个表示对纹理进行左上角旋转45度并使纹理向右平移1/4的纹理坐标调整。
注意:rotateTextureCoordinates 的值为 (0,0) 时纹理坐标不发生变化,translateTextureCoordinates 的值为 (0,0) 时纹理坐标不发生平移。