# OnRenderImage(RenderTexture, RenderTexture)

> Event function that Unity calls after a Camera has finished rendering, that allows you to modify the Camera's final image.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)

## OnRenderImage()

```csharp
public void OnRenderImage(RenderTexture renderTexture, RenderTexture renderTexture2)
```

### Parameters

**** (\[RenderTexture]\(/engine/6000.0/script-reference/unityengine/rendertexture)): **** (\[RenderTexture]\(/engine/6000.0/script-reference/unityengine/rendertexture)):&#x20;

### Remarks

In the Built-in Render Pipeline, Unity calls `OnRenderImage` on MonoBehaviours that are attached to the same GameObject as an enabled [Camera](/engine/6000.0/script-reference/unityengine/camera.md) component, after the Camera finished rendering. You can use `OnRenderImage` to create a fullscreen post-processing effect. These effects work by reading the pixels from the source image, using a Unity shader to modify the appearance of the pixels, and then rendering the result into the destination image. You would typically use [Graphics.Blit](/engine/6000.0/script-reference/unityengine/graphics/blit.md) to perform these steps. If multiple scripts on the same Camera implement `OnRenderImage`, Unity calls them in the order that they appear in the Camera Inspector window, starting from the top. The `destination` of one operation is the `source` of the next one; internally, Unity creates one or more temporary RenderTextures to store these intermediate results. On Android, to avoid banding or to use alpha in fullscreen effects, set [PlayerSettings.use32BitDisplayBuffer](/engine/6000.0/script-reference/unityeditor/playersettings/use32bitdisplaybuffer.md) to `true`. `OnRenderImage` is not supported in the Scriptable Render Pipeline. To create custom fullscreen effects in the Universal Render Pipeline (URP), use the [ScriptableRenderPass](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest/index.html?subfolder=/api/UnityEngine.Rendering.Universal.ScriptableRenderPass.html) API. To create custom fullscreen effects in the High Definition Render Pipeline (HDRP), use a [Fullscreen Custom Pass](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html?subfolder=/manual/Custom-Pass.html). For information about using Unity's pre-built post-processing effects, see [Post-processing](/engine/6000.0/manual/post-processing-and-full-screen-effects/overview.md).

### Examples

```csharp

using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    // A Material with the Unity shader you want to process the image with
    public Material mat;

    void OnRenderImage(RenderTexture src, RenderTexture dest)
    {
        // Read pixels from the source RenderTexture, apply the material, copy the updated results to the destination RenderTexture
        Graphics.Blit(src, dest, mat);
    }
}
```
