MapMagic is compatible with HDRP, but to use it the proper terrain material should be assigned:
Duplicate the default terrain HD material (located in Packages\Runtime\RenderPipelineResources\Material) to Asset folder or any of it's subfolders;
Switch material terrain type in MapMagic Terrain Settings to Custom;
Assign the duplicated material to Custom Material slot and make sure Assign Material checkbox is enabled
Use the standard Textures Output in graph the way it's done with the standard render pipeline (no need to use Custom Shader Output).
Why do you use multithreading instead of GPU?
I'd like to mention that not everything that run on GPU is automatically fast. The most complex generators like erosion or forest could not be calculated in hundreds of threads, while the simple nodes like Curve are fast enough to be compared with compute shaders overhead. The reason I prefer multithreading to GPU calculations is that it fits dynamically generated infinite terrain better. GPU generating usually looks great in the editor, but in playmode, when GPU load is usually 100% it can squeeze graphics calculations and produce a some lag. While in most cases the processor cores are not so loaded (maybe except the main unity thread), which allows to use them almost unnoticeable.
MapMagic calculates all of the generators asynchronously in a several separate threads, and just applies final the result in a main thread. Calculating terrain is mostly fast (dozens milliseconds per generator per thread) except some generators like erosion, which can take up to several seconds. All the generating runs in a background and creates no lag in game. The only lag you may notice is on applying generated results to terrain in main thread, but it will happen when using compute shaders anyways.
Is there any way to change standard MapMagic graphs to make them work with Voxeland?
Unfortunately, I don't believe it's possible. Textures Output cannot be just replaced with Voxeland Output node. Voxeland Output uses absolutely different (and more complex) algorithm, it does not just blends layers in a Photoshop manner, but it creates layers in 3D space. This requires not only the significant graph changes, but changing the whole approach to the graph creation. That's why I'm not converting Island or Demo scenes to be used with Voxeland - they will require the whole graph created from scratch, and it will not have much in common with the original one.
You can find MM+Voxeland tutorial here, JIC: https://youtu.be/jlLALBsAUZY
Is there any way for custom generator to get neighbour chunk information?
No. It's one of MMWG's concepts: chunks are independent. Nor they get any data from a neighbor chunk, neither they send it. Otherwise each chunk will require all of the neightbour chunks to generate, and they will require all of their neigbours to be generated, and so on up to infinity.
Is there any way to export terrain as model?
Actually it's a subject for a whole new plugin, like this one: Terrain To Mesh (https://www.assetstore.unity3d.com/en/#!/content/47276).
However, there is a way to export terrain into 3D editor without a plugin - since MM generates the standard terrains their heightmap could be exported using the "Export Raw" button in the terrain's settings tab. This heightmap could be could be applied to the plane with displace modifier.
But terrain data could be exported as a standard Unity terrain using this script: https://www.dropbox.com/s/tnb3v1s6r5h1ss0/ExportTerrainData.cs?dl=0
Place it anywhere inside Assets folder, assign it to terrain and check "Export" (it works like a button).
Where I can find the graphs shown in the biomes videos?
You can download badlands and snow plains graphs from the Community Grpahs page. Note that the textures are not included, I hasve no rights to share them. Sorry.
Is there any way to use navmesh or backed pathfinding on a dynamic terrains?
It's better not to use anything baked on a dynamic terrain: not a lightmap nor a navmesh. A dynamic pathfinding should be used instead, using waypoint navigation, collision detection and steering behaviors. An open terrain is not a maze, so in most cases it will be enough.
Apex Path boasts dynamic pathfinding, but I have not tested it. Some users claim that they are using Apex Path alongside MapMagic with great results. (end of page 7)
However, for pinned terrains that can have some complex POI like villages or cities a manual navmesh could be created with the standard tools.
How to use RTP 8-layers mode?
You need to switch RTP to 8-layer manually using _RTP_LODmanager: RTP features first pass -> 8 LAYERS in first pass.
How to change the dynamic generator linking from the code?
What is the best way to restrict how far the player can go? My idea was to pin the last terrain and draw a mountain or a invisible wall, is this the way that you guys are working with it?
I think that the best way to create the invisible walls is to actually place invisible walls. It should be a collider mesh that should not be associated with MM in any way, just a separate game object that limits player movement. Or it could be a character controller script that does not allow character exceed some bounds. Let MM generate the terrains on the background, and set the map bounds by other means.
I'm using custom terrain material with my own shader. Is there any way to make it work with MapMagic?
You can use Custom Shader Output (CSO) in "Custom"(default) mode. It uses per-channel generate of control maps using r,g,b and alpha inputs and assigns them to terrain material using the given property name.
I'm going to use a world of 20*20 terrains. Do I need to pin them all?
No, MapMagic was not designed to work with huge terrain grids. It's not a streaming asset, it does not load terrains dynamically, but generates them instead.
Here is how do I see the MapMagic pipeline and how do I actually use it: I create a large procedural terrain, pinning only a couple of chunks for the preview. Then pin and lock the chunks that are located at the places where the main POI should be, like towns or castles. I leave all of the minor POI like small villages, single buildings, mob spawn locations, dungeon entrances to be procedurally generated. This way I get only 5-10 chunks per scene that should be edited manually, while all the chunks in-between are generated with MapMagic. 10 terrains per scene is a pretty significant amount of work with an adequate level design, it makes a team of 2 (and a half :)) level-designers busy for months.
You can limit your game zone boundary with a script or a huge collider, and let MapMagic generate terrains infinitely. This will create new terrains out of the game zone, but player will not get there anyways, so consider them a horizon scenery.
How do I give mountains snowy peaks?
You can use height map adjusted by curve to mask some texture at particular level:
It's recommended to append this mask with the Slope and Cavity for more realistic snow effect. See Snow Plains biome as an example:
I'd like to remove grass under stone objects
What is the simplest graph to create an island?
How to create a RAW image using the free software?
One of the tools I know that support RAW export is Krita. However there might be the others.
To export raw image from Krita:
make your image square
set image color space to 16 bit integer grayscale in Image -> Properties:
draw your heightmap. Note that this step should be done only after you switch the color space, otherwise you can have a stairs effect in height.
export image as R16 Heightmap (.r16), set your image resolution and PC endiannes in a pop-up window:
import r16 in MapMagic, and if you are happy with it save it to assets.
I don't really know why but the imported image is rotated 90 degrees and flipped vertically, so take it into account when drawing your image.
Is there any way to remove single grass bushes growing atop of cliff texture in tutorial video?
This happens because because your cliff texture has a slight grass blend in these places: like 90% of cliff and 10% of grass. This creates grass meshes with a lesser density, but still noticeable.
To get rid of the grass growing through the adjust the grass mask with a curve to make it more contrast:
You can try moving both keys left or right to adjust bias to find cliff/grass ratio that looks fine for the grass:
How to create lakes?
If you are going to create some lakes with no water plane underneath all the terrain (for the performance reasons, I guess) you can place them in just like usual objects. Personally I would rather scatter them in lowlands (using the scatter mask), deepen the ground under them (with blob + subtract blending), and output in water planes:
Attached: scene, prefab