Skip to content

s3mb压缩纹理长度不够 #31

@xiaoch11

Description

@xiaoch11
  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会出现上述问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions