Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Builds on top of CesiumGS/cesium-native#569 (see that PR for more details)
This is the simplest implementation of derived content caching, we simply serialize / deserialize the in-memory gltfs along with all the buffers. Currently this lets us skip all the Cesium Native loading, but we still have to go through the Cesium for Unreal loading. Before merging we plan to:
CreateOffGameThread(..)
- since the loading process may mutate the in-memory glTF, e.g., generate mipmaps.Still a good bit of work to do here, but so far this is a good show-case implementation of the Cesium Native changes.
Some preliminary results:
In the below picture, the load tasks containing the big yellow task (physics cooking) are cache misses (fresh response data from the network with no derived cache content). The super fast ones are cache hits. The load time difference (per tile) is already incredible, a rough average improvement might be ~400ms down to ~40ms for a tile's load work. The overall apparent load time seems improved as well, but may still be slightly bottlenecked by the sqlite reader thread pool (we can experiment with increasing the number of threads there).