- Home /
Large, seamless environments
I'm familiar with using separate scenes for separate "levels" in Unity, but I'd like to create an open-world game with large, seamless terrains, as seen in Elder Scrolls, WoW, etc. Is this feasible in Unity? How could it be achieved?
Answer by Piflik · Jan 05, 2013 at 02:31 PM
It can be achieved, but you will need a LoD system that is fast and robust enough to swap out tiles of terrain at runtime without noticeable flickering. Don't know if Unity's own LoD system can handle that (although it should) and you'd need Pro for it anyway.
I don't think Unity's LoD can handle that. But this is just a guess based on this plugin: http://forum.unity3d.com/threads/148432-Smart-LOD-RELEASED and from docs and from briefily testing unity's lod... unity's require all gameobjects to be instantiated in scene already.
Answer by MithosAnnar · Jan 05, 2013 at 02:46 PM
Hello CazicThule!
I like your question and have voted it up. The answer would be to use noise to create you terrains. I learned about noise while animating in cinema 4d.
Noise is seamless and can take the form of any surface (including clouds).
http://en.wikipedia.org/wiki/Perlin_noise
Create a noise shader.
Apply the noise shader to a plane.
Put planes together to create your landscape.
Noise can be mixed with other Noises and animated at different speeds with other Noises. Noise, I think is your best option, because it's so fluid and because it's procedural. You can also color (with alpha) and displace noise based on greyscale information and use lots of different greyscale noises to create interestingly colored and shaped landscapes.
Well thats my input :)
I'm not sure how you'd code this (I don't know shader script ;). But your landscapes would definitely look original this way and, of course, procedural.
Cheers and happy 5th of january :)
Mithos
I am not wanting to create procedurally generated terrain, I want to know if Unity can handle large environments in one "scene". The terrain could be hand-sculpted.
@CazicThule: All games you've mentioned use dynamic loading of parts of the scene. There's no way around some kind of LoD system. You don't have to generate the terrain procedural but load parts of it dynamically at runtime.
You don't really need Unity pro if you can split your terrain in really small pieces so loading doesn't impact the framerate. However asynchron level loading is quite useful.
I've created this chunk-based level generator, you can modify it a bit to load Height$$anonymous$$aps from file ins$$anonymous$$d of letting it generate them procedurally. You can configure the render distance to prevent unity to slow down by unloading far terrain and reloading near.
Have a nice day.
Your answer
Follow this Question
Related Questions
An attempt to make a open world map. 1 Answer
attach Hexagonal Grids to a terrain like a texture 0 Answers
Procedurally Generated UVs Seams 0 Answers
3D Hex Terrain Generation with Height 1 Answer
Dynamic terrain loading on one scene 0 Answers