I’m extremely lost | I cannot understand anything | I don’t know how to do X
I highly recommend to check out the included samples. It has an example of a textured terrain on each of the pipelines, with vegetation and physics objects. There’s also an included displacement particle system scene for built-in to move the grass around. You can use and test with those assets to get a hang of how/what can be done.
If with that it’s still not enough head out to Scripting to see small tutorials. Finally, join our discord server! There’s plenty of people, including me, happy to guide you around.
World has no detail | World has too much detail
If you find yourself with a terrain with too much detail or almost none, you might be in one of the three situations:
- Scales are too big or too small: You might have a noise layer with the wrong scale. A scale too small will compress the noise and make all ridges really close to each other. The same way, a scale too big will make the ridges to far from each other and maybe not even visible in scene. With a mesh scale of a 1000 units, you will need a scale that fits, around 400-500 units.
- Min Max is too big or too small: The noise gets scaled according to the min max value. Scale it up and down to fit. With a mesh scale of a 1000 units, you will need a min max that fits, around 0 to 200-300 units.
- Too many octaves: There are cases where the additional octaves will make the whole terrain over detailed. Reduce the amount of octaves or play with lacunarity and persistence to better fit your needs.
No detail
Too much detail
Vegetation doesn’t work | I don’t see anything being rendered | There are no colliders anywhere
The vegetation rendering system can be a bit tricky to get working if the documentation hasn’t been properly read. It’s important to read how the Vegetation Renderer works and how to create your own Vegetation Asset. Some key notes:
- To ensure that a vegetation Asset gets rendered using GPU instancing, it is mandatory that the asset uses an Infinite Lands compatible shader. You can use the provided default shaders or head to the tutorial on how transform/make yours.
- To ensure that the vegetation system generates colliders, make sure that in the Infinite Lands Terrain there are Transforms assigned in the View Settings.
It goes pretty slow when inside PlayMode :(
Well, vegetation rendering is not free, and mesh can have a lot of triangles, so let’s go over some tweaks that can be done.
- Reduce Resolution in Mesh Settings
- Increase Mesh Size in Mesh Settings
- Reduce Generation Distance in the generator
- Enable Decimated Meshes for NonClose LOD and reduce the Decimated LOD to 1
- Set a Max Rendering Distance in the Vegetation Renderer
- Go through the Vegetation Asset and:
- Reduce View Distance
- Increase Distance Between Items
- Delete Asset Nodes in the Graph
I want to do a custom implementation of X thing, but I can’t figure it out
First check the code and the already prexisting implementations. You might find some useful information and already written code that you can base your ideas from.
If with that it’s still not enough head out to Scripting to see small tutorials on how to make your own implementation.
Finally, worst case scenario, remember that you can join our discord server and ask any questions there!
Why should I use Infinite Lands chunks when you support Unity Terrain (or the other way)?
Well, I added Unity Terrain support mainly for compatibility reasons, and because I want to give the option to generate the terrain, export it, and allow users to manually modify it without the need of Infinite Lands. But here are some pros and cons of each system
| Infinite Lands | Unity Terrain |
|---|---|
|
The default terrain system for Infinite Lands. It's a plain old mesh. This means that any technique or shader that works on a mesh can be easily applied to it. - You can use Decimated mode to reduce the poly count, for example. - The default terrain shader is built in Shader Graph and can be modified easily. - Tessellation shaders and custom mesh modifiers are straightforward to implement - Meshes are reused reducing overall memory allocation to the bare minimum required The template includes: - Mesh Painter: Specifically used for painting the mesh using various shading techniques like Triplanar Mapping, Stochastic Sampling or Height Map blending - Vegetation Renderer: Built from the ground up for long-distance gpu instancing and rendering. Since I built both systems myself, it's easy to find issues or bottlenecks and get fixes going. |
Initially it was added for compatibility reasons. It was slower, didn't support QuadTree, and couldn't make use of the Vegetation Renderer for fast GPU vegetation.
However, this has changed. It now supports all of that, with more or less setup. - It doesn't support decimated meshes, but Unity Terrain by default applies a form of tessellation reducing rendered polycount - Requires specific Unity Terrain compatible shader. - Allows usage of other Unity Terrain shaders or assets, with slightly extra configurations - The internals are built by Unity and therefore it follows the pre-existing ecosystem The template includes: - Unity Terrain Painter: Adds the texture data required to paint the terrain using the default Unity Terrain Shader - Unity Terrain Vegetation: Adds the vegetation details and trees for it to render. However, it isn’t as optimized for very long-distance rendering or extremely dense vegetation setups |
I just walked around really far and everything flickers! CHAOS!
Don’t worry! Welcome to Floating Point errors. Since you are really far from the origin, you will be seeing a lot of flickering because of how the math is done in the shaders. To solve this, you can add the Floating Origin component to your generator. Make sure that any object static or movable, has a Floating Point component added to it too! This will ensure that it is at the right position when the main character moves around.
error: The type or namespace name “….” could not be found.
Make sure you have these dependencies installed and up to date:
- “com.unity.burst”: “1.8.11”
- “com.unity.collections”: “1.4.0”
- “com.unity.render-pipelines.core”:”12.1.15”
- “com.unity.searcher”: “4.9.2”
- “com.unity.shadergraph”: “12.1.15”
Unity is stuck saving/reloading domain/other and I can’t work. It doesn’t finish!
There’s a weird bug hard to find and to fix because it’s hard to replicate, where unity gets stuck saving your scene or asset, and other similar actions. There’s a work around when that happens.
First open task manager and look for Unity Editor.
You will see two Unity Editor instances together, and down in the bottom the one saying “Not Responding”. Right click on the two instances that are together and Force Close them.
That should get Unity running up to speed again.
I need more help!
Join our discord server for direct support, you will find that it’s faster to ask there than to figure out some things!