Draco-compressed glTF with external .bin fails in Cesium for Unreal while GLB works (same tool, same model)

First of all, thank you for developing and maintaining this excellent Unreal plugin. I discovered an issue related to Draco compression during use, which may help improve code quality. The problem description is as follows:

Draco-compressed glTF models processed by the same gltf-pipeline tool show inconsistent behavior in Cesium for Unreal:

  • GLB output: :white_check_mark: Works perfectly

  • Separated GLTF + .bin output: :cross_mark: Fails with "Draco bufferView extends beyond its buffer"

Key facts:

  1. Identical input model → same compression settings

  2. Only difference is container format (GLB vs separated)

  3. Draco data content is byte-for-byte identical

This indicates a container-specific parsing bug in Cesium for Unreal’s Draco loader.

error details:

Draco-compressed glTF models processed by the same gltf-pipeline tool show inconsistent behavior in Cesium for Unreal:

  • GLB output: :white_check_mark: Works perfectly

  • Separated GLTF + .bin output: :cross_mark: Fails with "Draco bufferView extends beyond its buffer"

Key facts:

  1. Identical input model → same compression settings

  2. Only difference is container format (GLB vs separated)

  3. Draco data content is byte-for-byte identical

This indicates a container-specific parsing bug in Cesium for Unreal’s Draco loader.

LogCesium: Warning: [2025-12-24 15:35:44.368] [warning] [ErrorList.h:108] Warning when loading file:///C:/Users/Administrator/Desktop/aaaaa/d_fixed.gltf:

  • Draco bufferView extends beyond its buffer.
    LogCesium: Warning: file:///C:/Users/Administrator/Desktop/aaaaa/d_fixed.gltf mesh 0 primitive 0: Invalid position buffer
    Cmd: DebugManager.CycleToPreviousColumn

There have been issues about that

These should have been resolved via Add a function to load a glTF file by timoore · Pull Request #610 · CesiumGS/cesium-native · GitHub quite a while ago.

It may be worth checking which version of Cesium For Unreal you are using (maybe it is an old one that does not yet include this fix?).

If it is a recent one, then it may also be worth checking whether other viewers can load this data. So maybe as a quick test: When you drag-and-drop the glTF (together with its external BIN files and textures and such) into https://gltf-viewer.donmccurdy.com/ , does it work there?

The goal would be to make sure that the glTF is not ~“invalid” in some way. If the glTF was invalid, then maybe it’s not an issue of CesiumForUnreal/cesium-native, but of gltf-pipeline. If the glTF works in another viewer, then maybe one of the issues has to be reopened. In this case, it could be helpful if you could provide one of the glTF assets (attached as a ZIP here), but let’s see what the result of the first test is.