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

Logic of tile loading failure #1505

Open
Yeah-Zi opened this issue Aug 20, 2024 · 2 comments
Open

Logic of tile loading failure #1505

Yeah-Zi opened this issue Aug 20, 2024 · 2 comments

Comments

@Yeah-Zi
Copy link

Yeah-Zi commented Aug 20, 2024

I’ve observed occasional failures during the loading of TileContent, specifically at CreateOffGameThread or CreateOnGameThread. However, there is no existing logic to handle these loading failures in the code connecting Cesium for Unreal and Cesium Native. This lack of error handling can lead to incorrect tile selections during tile filtering, as tiles that haven’t successfully loaded may still be incorrectly marked as TileLoadState::Done, resulting in visible gaps in the model.

Interestingly, this issue doesn’t seem to exist in CesiumJS, which handles loading exceptions quite effectively.

Relevant Code (from TilesetContentManager.cpp):

void* pWorkerRenderResources = pRenderContent->getRenderResources();
void* pMainThreadRenderResources =
this->_externals.pPrepareRendererResources->prepareInMainThread(tile,pWorkerRenderResources);
pRenderContent->setRenderResources(pMainThreadRenderResources);
tile.setState(TileLoadState::Done);

Is there any potential solution to address this issue?

@kring
Copy link
Member

kring commented Aug 21, 2024

What sort of tile failures are you seeing? My understanding is that the code you quoted above should only be called after the tile is in the ContentLoaded state, meaning the the content has already loaded successfully.

@Yeah-Zi
Copy link
Author

Yeah-Zi commented Aug 22, 2024

I have recorded some videos for us to continue discussing this issue

The phenomenon of loading errors is as follows:
https://github.com/user-attachments/assets/e06fb9f3-fe3c-4c7a-8fab-322e5e6b58ff

The code for cesium native only marked warnings:

20240822_084946.mp4

The code for cesium unreal did not address the issue of loading failure, which in my example was due to an error in the buffer view in the allocator:

20240822_090657.mp4

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

No branches or pull requests

2 participants