> ## Documentation Index
> Fetch the complete documentation index at: https://dacruzdev.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cryptomatte and AOV Capture with Mattes in ScreenshotKit

> Render a beauty shot plus every enabled AOV pass in one call with CaptureWithMattes, or request individual matte textures via CryptomatteCapture.

## Beauty plus all enabled passes

```csharp theme={null}
using DaCruz.ScreenshotKit;

var result = ScreenshotCapture.CaptureWithMattes(sourceCamera, settings);
if (result.Success)
{
    Debug.Log($"Beauty: {result.FilePath}");
    foreach (var mattePath in result.MatteFilePaths)
        Debug.Log($"Matte: {mattePath}");
}
```

`CaptureWithMattes` writes the beauty shot plus every pass enabled on `settings` (Object ID, Normals, Depth, and so on). `MatteFilePaths` lists every matte file written.

## Individual matte textures

Request single passes directly through `CryptomatteCapture` when you want the pixels rather than files:

```csharp theme={null}
// Each method returns a Texture2D you can use, save, or upload anywhere.
Texture2D normals       = CryptomatteCapture.CaptureNormals(sourceCamera, 1920, 1080);
Texture2D depthLinear   = CryptomatteCapture.CaptureDepthLinear(sourceCamera, 1920, 1080);
Texture2D motionVectors = CryptomatteCapture.CaptureMotionVectors(sourceCamera, 1920, 1080);
Texture2D objectID      = CryptomatteCapture.CaptureObjectID(sourceCamera, 1920, 1080);
// Caller owns the texture; destroy it when done.
```

<Warning>
  AOV passes need URP for full fidelity. On the Built-in render pipeline, lighting and data-buffer passes fall back to a Diffuse render. See [Troubleshooting](/reference/troubleshooting).
</Warning>

## See also

* [Cryptomatte & AOV workflow](/workflows/cryptomatte-aov) for output modes and segmentation.
* [AOV Pass List](/reference/aov-pass-list) for every available pass.
