iClient3D-for-WebGL icon indicating copy to clipboard operation
iClient3D-for-WebGL copied to clipboard

s3mb压缩纹理长度不够

Open xiaoch11 opened this issue 1 year ago • 3 comments

  1. 执行S3ModelParser.parseBuffer时,执行到parseTexturePackage这一步,得到的texutrePackage里纹理长度宽度分别为1024,格式为RBG_DXT1(33776),compressType为31,数据长度dataSize为158813
  2. 执行S3MContentParser.parse时,创建压缩纹理并上传,在DDSTexture.init中会调用Cesium.PixelFormat.compressedTextureSizeInBytes来计算纹理数据的字节长度,计算结果为524288,与瓦片数据中的数组长度158813差距巨大,导致下一行代码创建新的Uint8Array时长度不够,引发报错RangeError: Invalid typed array length: 524288
  3. 数据version为3 此数据使用超图的SuperMap3D jssdk是可以正常解析加载的,但使用cesium+S3MLayerPlugin会出现上述问题

xiaoch11 avatar Oct 21 '24 07:10 xiaoch11

能否提供您的数据给我们测试呢

Tian-shanchuan avatar Oct 24 '24 03:10 Tian-shanchuan

compressType为31的KTX2类型纹理插件暂时不支持的,目前插件只支持DXT或CRN-DXT5类型纹理

supermap123 avatar Oct 30 '24 08:10 supermap123

compressType为31的KTX2类型纹理插件暂时不支持的,目前插件只支持DXT或CRN-DXT5类型纹理

你好,我看更新日志显示支持ktx2类型纹理了,但我通过Cesium_S3MLayer_Plugins/S3MTilesLayer/examples/S3MTilesLayer.html这个示例还是加载不成功,会报RangeError: Invalid typed array length,请问是什么原因

IMustTo avatar Dec 06 '24 01:12 IMustTo