# GetTemporary

> Allocate a temporary render texture.

## Definition

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

## GetTemporary(RenderTextureDescriptor)

Allocate a temporary render texture.

```csharp
public static RenderTexture GetTemporary(RenderTextureDescriptor desc)
```

### Parameters

**** (\[RenderTextureDescriptor]\(/engine/6000.7/script-reference/unityengine/rendertexturedescriptor)): Use this RenderTextureDesc for the settings when creating the temporary RenderTexture.

### Returns

| Type                                                                          | Description |
| ----------------------------------------------------------------------------- | ----------- |
| [RenderTexture](/engine/6000.7/script-reference/unityengine/rendertexture.md) |             |

### Remarks

This function is optimized for when you need a quick RenderTexture to do some temporary calculations. Release it using [RenderTexture.ReleaseTemporary](/engine/6000.7/script-reference/unityengine/rendertexture/releasetemporary.md) as soon as you're done with it, so another call can start reusing it if needed.

Internally Unity keeps a pool of temporary render textures, so a call to GetTemporary most often just returns an already created one (if the size and format matches). These temporary render textures are actually destroyed when they aren't used for a couple of frames.

If you are doing a series of post-processing "blits", it's best for performance to get and release a temporary render texture for each blit, instead of getting one or two render textures upfront and reusing them. This is mostly beneficial for mobile (tile-based) and multi-GPU systems: GetTemporary will internally do a [RenderTexture.DiscardContents](/engine/6000.7/script-reference/unityengine/rendertexture/discardcontents.md) call which helps to avoid costly restore operations on the previous render texture contents.

You can not depend on any particular contents of the RenderTexture you get from GetTemporary function. It might be garbage, or it might be cleared to some color, depending on the platform.

Additional Resources: [RenderTexture.ReleaseTemporary](/engine/6000.7/script-reference/unityengine/rendertexture/releasetemporary.md).

## GetTemporary(int, int, int, RenderTextureFormat, RenderTextureReadWrite, int, RenderTextureMemoryless, VRTextureUsage, bool)

Allocate a temporary render texture.

```csharp
public static RenderTexture GetTemporary(int width, int height, int depthBuffer, RenderTextureFormat format, RenderTextureReadWrite readWrite, int antiAliasing, RenderTextureMemoryless memorylessMode, VRTextureUsage vrUsage, bool useDynamicScale)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Depth buffer bits (0, 16 or 24). Note that only 24 bit depth has stencil buffer.**** (\[RenderTextureFormat]\(/engine/6000.7/script-reference/unityengine/rendertextureformat)): Render texture format.**** (\[RenderTextureReadWrite]\(/engine/6000.7/script-reference/unityengine/rendertexturereadwrite)): Color space conversion mode.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of antialiasing samples to store in the texture. Valid values are 1, 2, 4, and 8. Throws an exception if any other value is passed.**** (\[RenderTextureMemoryless]\(/engine/6000.7/script-reference/unityengine/rendertexturememoryless)): Render texture memoryless mode.**** (\[VRTextureUsage]\(/engine/6000.7/script-reference/unityengine/vrtextureusage)): How Unity uses the RenderTexture as a VR eye texture. The default is [VRTextureUsage.None](/engine/6000.7/script-reference/unityengine/vrtextureusage/none.md).**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Determines whether Unity scales the render texture using dynamic resolution. The default is `false`.

### Returns

| Type                                                                          | Description |
| ----------------------------------------------------------------------------- | ----------- |
| [RenderTexture](/engine/6000.7/script-reference/unityengine/rendertexture.md) |             |

### Remarks

This function is optimized for when you need a quick RenderTexture to do some temporary calculations. Release it using [RenderTexture.ReleaseTemporary](/engine/6000.7/script-reference/unityengine/rendertexture/releasetemporary.md) as soon as you're done with it, so another call can start reusing it if needed.

Internally Unity keeps a pool of temporary render textures, so a call to GetTemporary most often just returns an already created one (if the size and format matches). These temporary render textures are actually destroyed when they aren't used for a couple of frames.

If you are doing a series of post-processing "blits", it's best for performance to get and release a temporary render texture for each blit, instead of getting one or two render textures upfront and reusing them. This is mostly beneficial for mobile (tile-based) and multi-GPU systems: GetTemporary will internally do a [RenderTexture.DiscardContents](/engine/6000.7/script-reference/unityengine/rendertexture/discardcontents.md) call which helps to avoid costly restore operations on the previous render texture contents.

You can not depend on any particular contents of the RenderTexture you get from GetTemporary function. It might be garbage, or it might be cleared to some color, depending on the platform.

Additional Resources: [RenderTexture.ReleaseTemporary](/engine/6000.7/script-reference/unityengine/rendertexture/releasetemporary.md).
