Crash when viewing tiles
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
I am getting this error using 1.73 when viewing tiles, have not tried a newer version but the end of the stack trace seems to look the same as the current code in github master. I believe the problem is related to this line of code and that 'command' is undefined:
https://github.com/CesiumGS/cesium/blob/6639c8f30a11587551e11f7cdfaa72068a88e33f/Source/Scene/Cesium3DTileBatchTable.js#L1371
TypeError: Cannot read property 'derivedCommands' of undefined
TypeError: Cannot read property 'derivedCommands' of undefined
at Cesium3DTileBatchTable.addDerivedCommands (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:126807:37)
at Batched3DModel3DTileContent.update (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:149720:24)
at Cesium3DTile.process (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:175245:19)
at processTiles (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:177942:16)
at Cesium3DTileset.prePassesUpdate (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:177803:5)
at PrimitiveCollection.prePassesUpdate (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:194115:19)
at prePassesUpdate (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:280355:16)
at tryAndCatchError (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:280452:7)
at Scene.render (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:280521:5)
at CesiumWidget.render (http://localhost:8080/node_modules/cesium/Build/CesiumUnminified/Cesium.js:294542:19)
Here is an example tileset that causes the problem:
https://drive.google.com/file/d/1V0YqM08jo_8Q_zhnQ9J1R5myu84Ouf3o/view?usp=sharing
Load the tileset into cesium, look at it top down, use the 3D Tiles Inspector and set the Maximum Screen Space Error to zero and the error will occur.
Contributor guide
Research direction
Reproduce the crash with the linked tileset by loading it in Cesium, viewing it top down, opening the 3D Tiles Inspector, and setting Maximum Screen Space Error to zero. Start at Source/Scene/Cesium3DTileBatchTable.js around line 1371 and trace the addDerivedCommands call. Done means the tileset no longer crashes in this scenario and the regression is covered by an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100