Dear polycount community,
I hope some of you can help me understand basic techniques used to achieve a custom made terrain tool engine like they have made for the upcoming Diablo 4 game. Here is the video that shows the terrain editor in action (forward the video to 24:40 to se the demo of terrain editor):
https://youtu.be/b_t2AbmKfqI?t=1475I have a lot of experience with software development, mostly with C# (Unity). My original plan is to attempt to do this in Unity from scratch - that is without using the Unity's terrain tools but make custom one.
I know for sure that some mesh blending shaders have to be implemented to achieve this.
What I would like to know in detail is how they made it possible to sculpt/draw with prefabricated 3D models (biomes) and still have a smooth blending between different meshes when raising the terrain.
I hope some one can help me understand the basic techniques.
/Boki
Replies
I expect mesh/material distribution is almost entirely mask driven but I'd be surprised if there weren't prefabs that support manual mesh placement in combination with a specific heightmap/mask stamp to allow for more artistic control - that's certainly what I'd be doing.
Blending stuff together is fairly trivial if you're dealing with mask/texture data
A biome is really just dictionary of the form layer:asset
There'll be a bunch of criteria that determine which layer(rock,grass,forest etc) gets used under which circumstance (slope angle, height, mask type etc etc.) and the content of an asset is arbitrary - I'd expect the system shown here is several levels deep with an "asset" being a further set of data describing a combination of material and mesh distribution rules.
I don't mean to trivialise the amount of work that goes into creating such a system - to do it well is hard work and requires a lot of planning but the principles are pretty simple.
I'd strongly suggest watching the GDC talk on horizon zero dawn's world generation - it's got a fair bit of depth on implementation - unlike the Wildlands one which is basically just a big advert for houdini