# BeginPaintHoles(Terrain, Rect, int, bool)

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

## Definition

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

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

### Parameters

**** (\[Terrain]\(/engine/6000.3/script-reference/unityengine/terrain)): Reference Terrain tile.**** (\[Rect]\(/engine/6000.3/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.3/script-reference/unityengine/terraintools/paintcontext.md) | PaintContext that contains the combined Terrain holes data for the specified region. |

### Remarks

BeginPaintHoles identifies all of the Terrain holes 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.3/script-reference/unityengine/terraintools/paintcontext/sourcerendertexture.md).

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

Additional Resources: [TerrainPaintUtility.EndPaintHoles](/engine/6000.3/script-reference/unityengine/terraintools/terrainpaintutility/endpaintholes.md) and [PaintContext](/engine/6000.3/script-reference/unityengine/terraintools/paintcontext.md).
