CompressedTextureBuffer是一个CesiumJS中的类,用于封装WebGL的纹理缓冲(TextureBuffer)。CompressedTextureBuffer适用于存储压缩后的纹理数据,在CesiumJS中用于支持加载KTX、DXT等格式的纹理数据。
创建一个新的CompressedTextureBuffer对象。
CompressedTextureBuffer的宽度,单位为像素。
CompressedTextureBuffer的高度,单位为像素。
CompressedTextureBuffer中的WebGL纹理对象。
销毁CompressedTextureBuffer以及相关的WebGL纹理对象。
var xhr = new XMLHttpRequest();
xhr.open('GET', './texture.ktx', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
var width = 512;
var height = 512;
var compressedData = xhr.response;
var internalFormat = WebGLRenderingContext.COMPRESSED_RGB_S3TC_DXT1_EXT;
var compressedTextureBuffer = new Cesium.CompressedTextureBuffer(width, height, compressedData, internalFormat);
var viewer = new Cesium.Viewer('cesiumContainer');
viewer.imageryLayers.addImageryProvider(new Cesium.SingleTileImageryProvider({
url : compressedTextureBuffer.texture,
rectangle : Cesium.Rectangle.fromDegrees(-74.3587, 40.4838, -73.8281, 40.918),
credit : 'Imagery provided by NASA'
}));
};
xhr.send(null);
上述代码演示了如何使用CompressedTextureBuffer加载KTX格式的纹理数据,并将其作为图层添加到CesiumJS的Viewer中展示。