Mesh to Terrain is a tool for easily and quickly converting a 3D terrain model created in 3ds Max, Terragen or any other editor to Unity Terrains.
Mesh to Terrain can convert textures to SplatPrototypes (Terrain Layers), generate terrain from several models and split the model into several terrains.
Mesh to Terrain can convert textures to SplatPrototypes (Terrain Layers), generate terrain from several models and split the model into several terrains.


A landscape modeled in Blender, 3ds Max, or another DCC application remains a regular mesh after import. That is fine for a finished static asset, but it prevents you from using the normal Unity Terrain workflow for sculpting, Terrain Layers, trees, and details. Mesh to Terrain bridges that gap by casting rays through the source model, recording the intersections in a heightmap, and creating one or more Terrain tiles. The result can then be edited with Unity's built-in Terrain tools.
This is surface reconstruction rather than a lossless format conversion. A heightmap can store only one elevation at each XZ coordinate. Caves, overhangs, bridges, undercut cliffs, and stacked surfaces therefore cannot survive as Terrain geometry. Separate those features before conversion and keep them as meshes. Rolling ground, plateaus, excavated sites, and other single-valued surfaces are much better candidates.
Prepare a scene copy for testing
Make a backup of the scene or save a separate working version before conversion. Mesh to Terrain creates new Terrain objects, and some helper options can change hierarchy and prefab connections. A scene copy gives you room to repeat the process and compare each result with the source.
The model must be present in the scene; selecting a prefab in the Project window is not enough. Check its position and scale before starting. Normal sends rays from top to bottom and is the usual choice. Use Reversed only when the working side of the geometry faces downward.
Set the model's Index Format to 16 bits in its import settings. On meshes with more than 65,000 vertices, another format can make Physics.Raycast unstable and may freeze the Editor. If the model cannot use 16-bit indices, split it into smaller pieces in the DCC application while preserving their relative positions.
For the first test, use GameObjects as the mesh selection type and add only the landscape. Child objects are included, so inspect the hierarchy first: a rock, building, or decorative mesh under the selected root will also be sampled and can leave an unwanted shape in the Terrain. Layers is better reserved for a prepared tile set with nothing unrelated on those layers.
Set the bounds before choosing resolution
Choose New Terrains when the converter should build the output grid. Count controls the number of tiles along X and Z. Multiple tiles provide more total height samples and can fit a streamed world, but their borders need inspection. Choose Existing Terrains when your project already defines the grid, sizes, and positions; place those Terrain objects beneath the model and add them to the list.
Auto Detect bounds work well when the source mesh is already cropped to the exact area. Use From GameObject when the model contains helper geometry or several conversions must share an identical footprint. The bounding object must be an unrotated cube that contains the complete conversion area. This prevents one stray polygon from changing the output extent.
Height Map Resolution controls how often the surface is sampled. Estimate the spacing before choosing a value: divide the width of one tile by the number of heightmap intervals. A 1,024-meter tile at a resolution of 1,025 has samples about one meter apart. A ditch or sharp ridge narrower than that will disappear or change shape.
There is little value in starting at the maximum resolution. Run a test at a moderate setting and inspect the features that matter to gameplay. If they are too soft, raise the resolution or split the area across more Terrain tiles. Both approaches preserve more detail, but also require more processing and resources.
Start with Minimal Range for Y Range in most cases. It derives the vertical interval from the mesh bounds and avoids spending available height precision on empty space. Fixed Value is useful when separate conversion jobs need the same vertical range, but an unnecessarily large value reduces accuracy. Long Mesh Side derives the range from the larger horizontal dimension and is useful when consistent axis scale matters more than the tightest possible elevation range.
Run a geometry-only test first
Ignore textures on the first pass and concentrate on shape. Alternate visibility between the source mesh and the generated Terrain, keeping the same camera angle. Inspect a road on a slope, a peak, a level building pad, and the tile boundaries. Viewing both surfaces at once is less helpful because z-fighting hides the actual differences.
If the entire result is wrong along Y, or the tool reports a bounds error, check model scale first. Adjust size of meshes is intended for extremely small or large sources: it temporarily rescales the model to make raycasts more reliable and restores the size afterward. It also breaks prefab links, which is another reason to work in a scene copy.
Enable heightmap smoothing only after inspecting the unsmoothed result. It can reduce visible steps, but it also rounds narrow ridges and intentional flat areas. A small manual correction is often more predictable than smoothing the whole landscape.
Use texture transfer as a draft
Mesh to Terrain provides Camera and Raycasting capture modes for textures. Camera renders the model with an orthographic camera, so scene lighting affects the output, and this mode requires Adjust size of meshes. Auto Setup Lighting can prepare and restore the scene lighting, or you can create a neutral setup manually. Raycasting reads only the main texture from the first material; it cannot reproduce a layered material or complex shader.
Plan to rebuild the final surface treatment on the generated Terrain. Configure Terrain Layers, tiling scale, slope masks, and normal maps after the shape has passed inspection. A texture should not be used to conceal incorrect geometry. Validate elevations first, then work on materials, vegetation, and detail placement.
Validate before retiring the source mesh
Do the final check in Play mode with the actual character or vehicle controller. Walk the main route and inspect slopes, tile seams, site edges, and building pads. TerrainCollider follows the sampled Terrain shape, so a resolution that looks acceptable from the camera may still feel wrong during movement.
Once the test passes, disable the source mesh but keep it available in the project. It remains useful if a scale, bounds, or detail problem appears later. Mesh to Terrain removes the manual work of constructing a heightmap, but the result still needs inspection and finishing. The most reliable workflow is a few short passes with one goal each: establish the bounds, validate the shape, and only then rebuild the material.