# RenderTexture

> Creates a new RenderTexture object.

## Definition

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

## RenderTexture()

Creates a new RenderTexture object.

```csharp
protected RenderTexture()
```

### Remarks

The render texture is created with width by height size, with a depth buffer of depth bits (depth can be 0, 16, 24 or 32), and in format format and with sRGB read / write on or off.

Note that constructing a RenderTexture object does not create the hardware representation immediately. The actual render texture is created upon first use or when [RenderTexture.Create](/engine/6000.0/script-reference/unityengine/rendertexture/create.md) is called manually. So after constructing the render texture, it is possible to set additional variables, like [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.dimension](/engine/6000.0/script-reference/unityengine/rendertexture/dimension.md) and so on.

Also note that your graphics device capabilities determine the maximum size of a RenderTexture. To determine the maximum size, use [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) for 2D and cubemap RenderTextures, [SystemInfo.maxTexture3DSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexture3dsize.md) for 3D RenderTextures, and [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) and [SystemInfo.maxTextureArraySlices](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturearrayslices.md) for 2D array RenderTextures.

When the requested size exceeds the maximum size, Unity's behavior varies. If the RenderTexture is not a 3D texture, and the requested size is a power of two, Unity automatically scales down the requested size by a factor of 2 until it is below the maximum, and then creates the RenderTexture at that size. Otherwise, Unity fails to create the RenderTexture, and throws an error.

Additional Resources: [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.GetTemporary](/engine/6000.0/script-reference/unityengine/rendertexture/gettemporary.md).

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    public RenderTexture rt;

    void  Start()
    {
        rt = new RenderTexture(256, 256, 16, RenderTextureFormat.ARGB32);
    }
}
```

## RenderTexture(RenderTextureDescriptor)

Creates a new RenderTexture object.

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

### Parameters

**** (\[RenderTextureDescriptor]\(/engine/6000.0/script-reference/unityengine/rendertexturedescriptor)): Create the RenderTexture with the settings in the RenderTextureDescriptor.

### Remarks

The render texture is created with width by height size, with a depth buffer of depth bits (depth can be 0, 16, 24 or 32), and in format format and with sRGB read / write on or off.

Note that constructing a RenderTexture object does not create the hardware representation immediately. The actual render texture is created upon first use or when [RenderTexture.Create](/engine/6000.0/script-reference/unityengine/rendertexture/create.md) is called manually. So after constructing the render texture, it is possible to set additional variables, like [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.dimension](/engine/6000.0/script-reference/unityengine/rendertexture/dimension.md) and so on.

Also note that your graphics device capabilities determine the maximum size of a RenderTexture. To determine the maximum size, use [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) for 2D and cubemap RenderTextures, [SystemInfo.maxTexture3DSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexture3dsize.md) for 3D RenderTextures, and [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) and [SystemInfo.maxTextureArraySlices](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturearrayslices.md) for 2D array RenderTextures.

When the requested size exceeds the maximum size, Unity's behavior varies. If the RenderTexture is not a 3D texture, and the requested size is a power of two, Unity automatically scales down the requested size by a factor of 2 until it is below the maximum, and then creates the RenderTexture at that size. Otherwise, Unity fails to create the RenderTexture, and throws an error.

Additional Resources: [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.GetTemporary](/engine/6000.0/script-reference/unityengine/rendertexture/gettemporary.md).

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    public RenderTexture rt;

    void  Start()
    {
        rt = new RenderTexture(256, 256, 16, RenderTextureFormat.ARGB32);
    }
}
```

## RenderTexture(RenderTexture)

Creates a new RenderTexture object.

```csharp
public RenderTexture(RenderTexture textureToCopy)
```

### Parameters

**** (\[RenderTexture]\(/engine/6000.0/script-reference/unityengine/rendertexture)): Copy the settings from another RenderTexture.

### Remarks

The render texture is created with width by height size, with a depth buffer of depth bits (depth can be 0, 16, 24 or 32), and in format format and with sRGB read / write on or off.

Note that constructing a RenderTexture object does not create the hardware representation immediately. The actual render texture is created upon first use or when [RenderTexture.Create](/engine/6000.0/script-reference/unityengine/rendertexture/create.md) is called manually. So after constructing the render texture, it is possible to set additional variables, like [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.dimension](/engine/6000.0/script-reference/unityengine/rendertexture/dimension.md) and so on.

Also note that your graphics device capabilities determine the maximum size of a RenderTexture. To determine the maximum size, use [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) for 2D and cubemap RenderTextures, [SystemInfo.maxTexture3DSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexture3dsize.md) for 3D RenderTextures, and [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) and [SystemInfo.maxTextureArraySlices](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturearrayslices.md) for 2D array RenderTextures.

When the requested size exceeds the maximum size, Unity's behavior varies. If the RenderTexture is not a 3D texture, and the requested size is a power of two, Unity automatically scales down the requested size by a factor of 2 until it is below the maximum, and then creates the RenderTexture at that size. Otherwise, Unity fails to create the RenderTexture, and throws an error.

Additional Resources: [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.GetTemporary](/engine/6000.0/script-reference/unityengine/rendertexture/gettemporary.md).

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    public RenderTexture rt;

    void  Start()
    {
        rt = new RenderTexture(256, 256, 16, RenderTextureFormat.ARGB32);
    }
}
```

## RenderTexture(int, int, int, RenderTextureFormat, RenderTextureReadWrite)

Creates a new RenderTexture object.

```csharp
public RenderTexture(int width, int height, int depth, RenderTextureFormat format, RenderTextureReadWrite readWrite)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Texture width in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Texture height in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of bits in depth buffer (0, 16, 24 or 32). Note that only 24 and 32 bit depth have stencil buffer support.**** (\[RenderTextureFormat]\(/engine/6000.0/script-reference/unityengine/rendertextureformat)): Texture color format.**** (\[RenderTextureReadWrite]\(/engine/6000.0/script-reference/unityengine/rendertexturereadwrite)): How color space conversions are applied on texture read/write.

### Remarks

The render texture is created with width by height size, with a depth buffer of depth bits (depth can be 0, 16, 24 or 32), and in format format and with sRGB read / write on or off.

Note that constructing a RenderTexture object does not create the hardware representation immediately. The actual render texture is created upon first use or when [RenderTexture.Create](/engine/6000.0/script-reference/unityengine/rendertexture/create.md) is called manually. So after constructing the render texture, it is possible to set additional variables, like [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.dimension](/engine/6000.0/script-reference/unityengine/rendertexture/dimension.md) and so on.

Also note that your graphics device capabilities determine the maximum size of a RenderTexture. To determine the maximum size, use [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) for 2D and cubemap RenderTextures, [SystemInfo.maxTexture3DSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexture3dsize.md) for 3D RenderTextures, and [SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturesize.md) and [SystemInfo.maxTextureArraySlices](/engine/6000.0/script-reference/unityengine/systeminfo/maxtexturearrayslices.md) for 2D array RenderTextures.

When the requested size exceeds the maximum size, Unity's behavior varies. If the RenderTexture is not a 3D texture, and the requested size is a power of two, Unity automatically scales down the requested size by a factor of 2 until it is below the maximum, and then creates the RenderTexture at that size. Otherwise, Unity fails to create the RenderTexture, and throws an error.

Additional Resources: [format](/engine/6000.0/script-reference/unityengine/rendertexture/graphicsformat.md), [RenderTexture.GetTemporary](/engine/6000.0/script-reference/unityengine/rendertexture/gettemporary.md).

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    public RenderTexture rt;

    void  Start()
    {
        rt = new RenderTexture(256, 256, 16, RenderTextureFormat.ARGB32);
    }
}
```
