Export and Blender Materials¶
Terrain exports are unavailable in the evaluation build. GPU Preview remains available; Heightfield Geometry is limited to 25,000 vertices.
Export a terrain as a mesh with surface textures, or as height data for displacement. Keep the same source branch, dimensions and export resolution for outputs that must align.
Choose the output¶
| Required result | Node | What it contains |
|---|---|---|
| Blender geometry or a mesh for another application | Bake Terrain Mesh | Grid mesh, normals and UVs; optional vertex colors |
| Height data for displacement or further terrain processing | Save Heightfield | Single-channel OpenEXR or PNG height samples |
| Base color, masks, normals or packed material channels | Save Texture | RGBA image from the selected source fields |
These export nodes end their own branches. They do not connect to Terrain Output. Keep Terrain Output connected for preview and branch the same final height and color fields into the export nodes.
1. Finish and check the source graph¶
- Select the correct terrain in the Pro Terrain sidebar and confirm its Graph.
- Set Terrain Size and Height Scale. These settings are shared by all terrains in the scene.
- Connect the final processed heightfield to Terrain Output > height. Feed that same heightfield into the color branch, so colors describe the finished terrain.
- Inspect the result in GPU Preview. Preview lighting is for inspection and is not baked into exported base color.
Use Mountain to Export for a complete graph and example settings.
2. Export the mesh and base color¶
- Add Bake Terrain Mesh and connect the final height field to its height input.
- Set File to a
.plydestination and Format to Binary PLY. OBJ is also available, but PLY is more compact for dense terrain grids. - Choose Resolution. Start with 1K for a small trial export, then raise it for final detail. Set Grid Reduction according to the required geometry density. A value of
0keeps every sample;0.99removes approximately 99 percent of grid faces. Fewer grid faces mean coarser geometry in the exported mesh. - Add Save Texture and connect the finished palette or blend color output to color. Choose Source: Color, Encoding: PNG 8-bit RGBA or PNG 16-bit RGBA, and Color Space: sRGB. Set a
.pngdestination. - Use the same Resolution on both nodes. Preview Resolution can remain lower. Changing evaluation resolution can change small erosion and color details, so mismatched export resolutions are not guaranteed to describe identical results.
- Click Bake Mesh, wait for completion, then click Export Texture. Check each node's status before importing the files.
The optional mesh color input exports vertex colors. A separate texture can preserve more color detail when Grid Reduction removes many vertices. Neither output automatically creates a finished Blender material.
Overwrite is off by default. Enable it only to replace an existing destination. Auto Update never writes export files. Use Cancel Export to stop a job. Editing its source branch or terrain dimensions while it is running discards that result; export again after the changes. See Input and export for file precision and publication behavior.
Each export node shows its own progress bar and Elapsed time. The bar counts completed nodes in that export branch, with one step per node; it does not estimate the remaining time. Finalizing export follows graph calculation while the output is prepared and saved. Wait for Exported before using the file; Total retains the completed export time. Exports have no fixed total time limit, so a demanding graph can continue on slower hardware.
3. Import the mesh into Blender¶
- Choose File > Import > Stanford PLY (.ply) and select the exported mesh. For OBJ, use Wavefront (.obj).
- Keep scale at
1, and set the import orientation to Y Forward, Z Up to preserve the terrain's coordinates. - Check that the mesh lies in the XY plane, with height along Z. Its X and Y extent should match Terrain Size. Mesh heights already include Height Scale; do not multiply them again.
- Confirm the imported mesh has a UV map. The exporter supplies UVs across the terrain domain, so no new unwrap is needed for matching terrain textures.
- Move or rotate the imported object as needed for the scene. It is an exported snapshot; later terrain edits require another export.
The imported mesh is the renderable result. Keep the source terrain graph for revisions and avoid judging final geometry from the bounded Heightfield Geometry preview.
4. Assign the base-color texture¶
- Select the imported mesh and create a material in Blender's Shader Editor.
- Add an Image Texture node and open the exported base-color PNG.
- Set the image's Color Space to sRGB, matching the export above.
- Connect Texture Coordinate > UV to the image's Vector, then Image Texture > Color to Principled BSDF > Base Color.
- Leave the Principled BSDF connected to Material Output > Surface. Inspect the object in Material Preview or Rendered shading with scene lighting.
The terrain preview and a Blender render use different lighting. Their brightness and shadows need not match, even with the same base-color field. Set roughness and other material properties for the intended surface. The palette does not provide physically complete rock, snow or water materials.
Export masks and other material data¶
For a single mask, connect a scalar output such as erosion deposit, flow, or an analysis mask to Save Texture > height, then choose Source: Scalar Map and Color Space: Linear / Data. Load that image in Blender as Non-Color before using it to blend material properties. PNG clips values to 0 through 1; use OpenEXR when the field's actual range must be preserved.
Packed Channels combines independent fields in red, green, blue and alpha. Red is required. Missing green and blue become 0; missing alpha becomes 1. Load packed data as Non-Color and separate the channels before using them. Record which field each channel contains.
For a normal texture, export Surface Analysis > normal_color as Linear / Data and set Height Ratio = Height Scale / Terrain Size. It encodes the surface normal in the terrain's X/Y/Z axes. On a mesh imported with those axes preserved, load the image as Non-Color and use a Normal Map node set to Object Space, with Strength 1, connected to the shader's Normal input. It is not a tangent-space detail map. See Surface Analysis.
Use heightfields instead of a mesh¶
Save Heightfield exports graph heights before the scene's Height Scale. OpenEXR 32-bit preserves signed values. PNG 16-bit maps Minimum Height to 0 and Maximum Height to 1, clipping everything outside that interval. Treat both formats as data rather than display color.
To reconstruct scene-space elevation from an EXR sample, multiply it by Height Scale. For PNG, first multiply the sample by (Maximum Height − Minimum Height), add Minimum Height, and then multiply by Height Scale. For example, PNG range −0.2 to 0.8 and Height Scale 3 represent elevations from −0.6 to 2.4.
Use a square surface with the intended Terrain Size, UVs across the image, and sufficient subdivisions for displacement. Set the displacement's neutral level and scale to implement the height mapping above. A material displacement path also needs a render engine and material configuration that actually displace geometry; bump alone changes shading, not the silhouette.
When reimporting into Heightfield Source, EXR normally uses Vertical Scale: 1 and Height Offset: 0. For PNG, use the saved range width as Vertical Scale and its minimum as Height Offset. Then apply the scene's Height Scale once. See Heightfield Source for supported channels and image orientation.
Resolution and memory¶
Increasing 4K to 8K quadruples the sample count. It can increase both graph memory and output size. Grid Reduction only reduces the mesh, while Save Texture and Save Heightfield keep their own resolution. Use lower resolution for trial exports and inspect reduced geometry before committing to a dense final mesh.
See Native resolution and memory for RAM estimates, measured GPU use and mesh sizes. For failed or mismatched output, see Terrain Troubleshooting.