Streaming solution for large open worlds #13137
Closed
caphindsight
started this conversation in
3D
Replies: 2 comments
-
Another related (but different) improvement here would be a node that implements scalable, baked, static geometry. Instead of storing other nodes in a spatially partitioned tree, it would store the transforms for a set of known mesh models, with LODs, for a collection of managed |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Godot already has frustrum and occlusion culling that can be used to optimize draw calls for large worlds. However, another scaling bottleneck here is simply the number of nodes in the world. It would be nice if there was a canonical way to organize world streaming that works both in game and in the editor.
This could be, for example, a special type of 3d node that stores its children in an optimized format (some kind of spatially partitioned tree), and loads / unloads them between on-disk <-> in RAM, depending on the position of the camera / some other observer node. When the node is loaded from the scene, it's originally empty (so very lightweight to load), but it starts asynchronously scanning its data files on a separate thread, managing loading / unloading the children nodes.
The crucial part of this proposal is a good editor integration. To implement this functionality in-game is not hard (and I have a working implementation for my projects), however, making this work in-editor in a seamless and nice way is a whole other issue.
Beta Was this translation helpful? Give feedback.
All reactions