CesiumGS / CesiumGS/cesium-native
ktx2-compressed textures inside b3dm tiles fail to load
- Dominant language
- C++
- Stars
- 623
- Forks
- 277
- PR merge metrics
- No merged PRs in 30d
Description
### What happened?
b3dm tiles with ktx2-compressed textures fail to load. The console logs "no data to be found." The same tileset loads correctly in CesiumJS, ruling out a data issue. glTF 2.0 supports KTX2 via `KHR_texture_basisu`, but the b3dm loading path in Cesium for Unity does not handle it.
Expected behavior: ktx2-compressed textures inside b3dm tiles load correctly, consistent with CesiumJS behavior and with GLB + ktx2 tiles (which load correctly in Cesium for Unity today).
### Environment
Cesium for Unity version:
1.23.1
Unity Editor Version:
6000.4.1f1
Operating System:
Not specified by reporter
### Reproduction steps
1. Start from a blank project with Cesium for Unity installed.
2. Add a Cesium3DTileset pointing at a b3dm tileset that uses ktx2-compressed textures.
3. Enter Play mode.
4. Observe that tiles do not appear and the console logs: `no data to be found`.
For comparison: the same tileset loads without errors in CesiumJS. A GLB tileset with ktx2 textures also loads correctly in Cesium for Unity.
### Supporting evidence
Reported via community forum across two threads:
- https://community.cesium.com/t/46028
- https://community.cesium.com/t/46033
Reporter confirmed (thread 46033, case 1) that GLB + ktx2 loads correctly — the failure is specific to ktx2 inside the b3dm wrapper.
Contributor guide
Research direction
Start by tracing the b3dm loading path in cesium-native and compare it with the existing GLB + ktx2 path, using the reported reproduction with a b3dm tileset. Confirm where KTX2 textures are rejected and verify that the b3dm tiles load without the “no data to be found” error while the existing GLB behavior remains intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, unity
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100