How to approach world-composition, level-streaming *and* Landscape?
(Pretext: I know these questions can be googled, but UE is changing rapidly ---4.6 just released---, the documentation on these questions is rather sparse and those are more 'architectural/high level' questions than simple/technical yes/no/how questions..)
Consider building a new open-world game. Approx. 20x20 km total area would work. No networking/multiplayer is ever planned for that project.
As far as I understand it, using the World Composition feature would allow designing in-editor all "sectors" as different levels/maps that stream in and out seamlessly both at runtime and at edit-time. Is that assumption roughly correct?
The big question for me here is Landscape. Right now I'm thinking the "persistent level" would hold just exactly one single Landscape object 20x20 km off a 8k-by-8k heightmap. So there's never any (manual) "stitching"/fitting and never more than one Landscape component consuming resources (rather than say up to 4 if the player is at a cross-section in between 4 neighboring streamed sectors/levels).. is that the most reasonable approach?
Furthermore I'm inferring from the latest release notes that somehow Landscape support texture streaming, no idea how that would be worked out in practice. IIRC you assign a single material to the Landscape, but you might have 20+ ground textures (plus the same amount of normals) in total, however in practice no more than say 4 (plus normals) would need be sampled/shaded in any given frame. How to work it out which textures to stream in and out of VRAM seamlessly in a Landscape material context? Any tutorials on this that I may have missed?
Lastly, world position offsetting. Good idea to always enable? Or is that only for worlds that exceed MAX_WORLD_SIZE (previously ~5km, now ~20km in v4.6)?
asked Dec 04 '14 at 12:10 PM in Using UE4
It depends on your project, if most of the time all landscape surface will be visible, there is no need to cut it to sectors. Usually for big worlds it's better to subdivide landscape to tiles, so you can stream in/out distant parts of it. There is a tool that helps you import tiled landscape. Community made a nice tutorial about it here: https://wiki.unrealengine.com/World_Machine_to_UE4_using_World_Composition
Tiled landscape will still work as one seamless surface in the editor. Another benefit of subdividing your world to tiles is that in the editor you can load only part of the world and work on it. Big worlds with a lot of content require more machine resources. You want to keep your working set as small as possible to have responsive editor.
Landscape (heightmaps/weightmaps) texture streaming works automatically, you don't need to think about it. It uses same streaming mechanism as all other textures (based on distance from camera).
All worlds that fit into world bounds (20x20km) should not use origin rebasing. I will disable it by default in next release, as most of the projects will now fit into new world bounds.
answered Dec 04 '14 at 01:22 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here