# BeginPaintHeightmap(Terrain, Rect, int, bool)

> Helper function to set up a PaintContext for modifying the heightmap of one or more Terrain tiles.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.TerrainTools](/engine/6000.6/script-reference/unityengine/terraintools.md)
* **Assembly:** UnityEngine.TerrainModule

```csharp
public static PaintContext BeginPaintHeightmap(Terrain terrain, Rect boundsInTerrainSpace, int extraBorderPixels = 0, bool fillOutsideTerrain = true)
```

### Parameters

**** (\[Terrain]\(/engine/6000.6/script-reference/unityengine/terrain)): Reference Terrain tile.**** (\[Rect]\(/engine/6000.6/script-reference/unityengine/rect)): The region in terrain space to edit.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of extra border pixels required.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Whether to fill empty space outside of Terrain tiles with data from the nearest tile.

### Returns

| Type                                                                                     | Description                                                                   |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [PaintContext](/engine/6000.6/script-reference/unityengine/terraintools/paintcontext.md) | PaintContext containing the combined heightmap data for the specified region. |

### Remarks

BeginPaintHeightmap identifies all of the heightmap pixels that are within `extraBorderPixels` of the bounds rectangle. The search is performed across adjacent connected Terrain tiles. The pixels are collected into a temporary render texture and stored in [PaintContext.sourceRenderTexture](/engine/6000.6/script-reference/unityengine/terraintools/paintcontext/sourcerendertexture.md).

After calling this function, you may modify the heightmap by writing the new values into [PaintContext.destinationRenderTexture](/engine/6000.6/script-reference/unityengine/terraintools/paintcontext/destinationrendertexture.md). Then, you may complete the modification by calling [TerrainPaintUtility.EndPaintHeightmap](/engine/6000.6/script-reference/unityengine/terraintools/terrainpaintutility/endpaintheightmap.md) to copy the modified data back to the Terrain tiles. Alteratively, you may cancel the modification by calling [TerrainPaintUtility.ReleaseContextResources](/engine/6000.6/script-reference/unityengine/terraintools/terrainpaintutility/releasecontextresources.md) to release the RenderTexture resources.

Additional Resources: [TerrainPaintUtility.EndPaintHeightmap](/engine/6000.6/script-reference/unityengine/terraintools/terrainpaintutility/endpaintheightmap.md) and [PaintContext](/engine/6000.6/script-reference/unityengine/terraintools/paintcontext.md).
