Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash during rendering of point cloud with batch table #11166

Open
runaas opened this issue Mar 17, 2023 · 2 comments
Open

Crash during rendering of point cloud with batch table #11166

runaas opened this issue Mar 17, 2023 · 2 comments

Comments

@runaas
Copy link

runaas commented Mar 17, 2023

Cesium crashes in rendering of a point cloud file with batch table. If I use a .pnts file generated from the same data without point attributes (and no batch_table) it works without problems. The tileset has been testet with the 3d-tiles-validator without problems, and there are no issues during loading.

Cesium 1.96 didn't crash, but I was unable to extract point attributes, so something was not fully corrct. All versions from v 1.98 crashes (I've not tested 1.97...)

In the Unminified build of v 1.103 the crash happens here because of an undefined feature table:

BatchTexturePipelineStage.process@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:88762:26
ModelSceneGraph.prototype.buildDrawCommands@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:93454:32
buildDrawCommands@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:96083:23
Model.prototype.update@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:95960:20
Model3DTileContent.prototype.update@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:96812:9
Cesium3DTile.prototype.process@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:114825:17
processTiles@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:117608:14
Cesium3DTileset.prototype.prePassesUpdate@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:117498:15
PrimitiveCollection.prototype.prePassesUpdate@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:134434:17
prePassesUpdate@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:209512:14
tryAndCatchError@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:209585:22
Scene4.prototype.render@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:209624:19
CesiumWidget.prototype.render@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210969:17
render2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210412:18
FrameRequestCallbackrender2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallback
render2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallbackrender2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallback
render2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallbackrender2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallback
render2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallbackrender2@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210413:32
FrameRequestCallback
startRenderLoop@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210436:24
set@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210808:26
CesiumWidget@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:210616:33
Viewer@http://norgei3d.no/Cesium/Current/Build/CesiumUnminified/index.js:244618:24

Example that should crash almost immediately:
http://norgei3d.no/Cesium/Current/Apps/HelloBug.html

Browser:
Tested on Firefox, Chrome and Edge

Operating System:
Only tested on Windows

I'm really not sure if there is something wrong with my .pnts implementation or with Cesium, but if the error is mine it should still give an error message in the validator, and the Cesium crash should rather happen in the file loading process than in rendering.

I have tried to track down the bug, but debugging in the 200k+ line unminified js is not easy and the data path from loading to rendering is rather convoluted...

@ggetz
Copy link
Contributor

ggetz commented Mar 20, 2023

Thanks for the report @runaas! 1.97 changed how point clouds were loaded, so this may be a regression.

Would you be able to include a Sandcastle example that replicates the issue? That would help us give us more context to determine the issue. Thanks!

@runaas
Copy link
Author

runaas commented Mar 20, 2023

I was unable to load the 3DTileset and pnts file from my servers and into a sandcastle example (I guess there are some security restrictions there?), so I ended up making a very minimal example in that HelloBug.html (practically your HelloWorld.html + loading of a very minimal 3DTileSet and setting a viewpoint). You can easily download the HelloBug.html I have also packed the tileset/pnts onto the attached zip to this message.

3DTileset-pnts.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants