Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ConvertTexture

Copies the pixel data from one texture, converts the data into a different format, and copies it into another texture.
Read time 7 minutesLast updated 5 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule

ConvertTexture(Texture, Texture)

Copies the pixel data from one texture, converts the data into a different format, and copies it into another texture.
public static bool ConvertTexture(Texture src, Texture dst)

Parameters

The source texture. The TextureDimension must be Tex2D or Cube.

The destination texture. The TextureDimension must be Tex2D, Tex2DArray, Cube, or CubeArray. The texture must also be uncompressed and correspond to a supported RenderTextureFormat.

Returns

Type

Description

bool
true
if the method succeeded.

Remarks

This method converts and copies pixel data from one texture to another on the GPU.
When you use
ConvertTexture
, Unity does the following:
  1. Creates a temporary RenderTexture that matches the size and format of the
    dst
    texture.
  2. Uses Graphics.Blit to copy from the
    src
    texture to the temporary render texture, and converts to the format of
    dst
    .
  3. Uses Graphics.CopyTexture to copy from the temporary render texture to the
    dst
    texture.
This means it might be faster to convert the texture before you load it into Unity. Alternatively, if you can create
dst
as a render texture (or a graphics texture with GraphicsTextureDescriptorFlags.RenderTarget enabled), you can use Graphics.Blit instead.
You can use textures with different sizes for
src
and
dst
.
ConvertTexture
doesn't support the following conversions:
You can't use
ConvertTexture
if you use OpenGL with MacOS. Depending on your graphics API, you might not be able to do some types of conversions. For more information on compatibility, see SystemInfo.copyTextureSupport, CopyTextureSupport and Graphics.CopyTexture.
To copy the converted texture from the GPU to the CPU, use RequestIntoNativeArray.
Additional Resources: CopyTextureSupport.

ConvertTexture(Texture, int, Texture, int)

Copies the pixel data from one texture, converts the data into a different format, and copies it into another texture.
public static bool ConvertTexture(Texture src, int srcElement, Texture dst, int dstElement)

Parameters

The source texture. The TextureDimension must be Tex2D or Cube.

srcElement

The element in the source texture to copy from. Use CubemapFace if
src
is a Cubemap. Set the value to
0
if
src
is a 2D texture.

The destination texture. The TextureDimension must be Tex2D, Tex2DArray, Cube, or CubeArray. The texture must also be uncompressed and correspond to a supported RenderTextureFormat.

dstElement

The element in the source texture to copy to. For example, the CubemapFace in a Cubemap or the slice in a texture array. Set the value to
0
if
dst
is a 2D texture.

Returns

Type

Description

bool
true
if the method succeeded.

Remarks

This method converts and copies pixel data from one texture to another on the GPU.
When you use
ConvertTexture
, Unity does the following:
  1. Creates a temporary RenderTexture that matches the size and format of the
    dst
    texture.
  2. Uses Graphics.Blit to copy from the
    src
    texture to the temporary render texture, and converts to the format of
    dst
    .
  3. Uses Graphics.CopyTexture to copy from the temporary render texture to the
    dst
    texture.
This means it might be faster to convert the texture before you load it into Unity. Alternatively, if you can create
dst
as a render texture (or a graphics texture with GraphicsTextureDescriptorFlags.RenderTarget enabled), you can use Graphics.Blit instead.
You can use textures with different sizes for
src
and
dst
.
ConvertTexture
doesn't support the following conversions:
You can't use
ConvertTexture
if you use OpenGL with MacOS. Depending on your graphics API, you might not be able to do some types of conversions. For more information on compatibility, see SystemInfo.copyTextureSupport, CopyTextureSupport and Graphics.CopyTexture.
To copy the converted texture from the GPU to the CPU, use RequestIntoNativeArray.
Additional Resources: CopyTextureSupport.

ConvertTexture(GraphicsTexture, GraphicsTexture)

Copies the pixel data from one texture, converts the data into a different format, and copies it into another texture.
public static bool ConvertTexture(GraphicsTexture src, GraphicsTexture dst)

Parameters

The source texture. The TextureDimension must be Tex2D or Cube.

The destination texture. The TextureDimension must be Tex2D, Tex2DArray, Cube, or CubeArray. The texture must also be uncompressed and correspond to a supported RenderTextureFormat.

Returns

Type

Description

bool
true
if the method succeeded.

Remarks

This method converts and copies pixel data from one texture to another on the GPU.
When you use
ConvertTexture
, Unity does the following:
  1. Creates a temporary RenderTexture that matches the size and format of the
    dst
    texture.
  2. Uses Graphics.Blit to copy from the
    src
    texture to the temporary render texture, and converts to the format of
    dst
    .
  3. Uses Graphics.CopyTexture to copy from the temporary render texture to the
    dst
    texture.
This means it might be faster to convert the texture before you load it into Unity. Alternatively, if you can create
dst
as a render texture (or a graphics texture with GraphicsTextureDescriptorFlags.RenderTarget enabled), you can use Graphics.Blit instead.
You can use textures with different sizes for
src
and
dst
.
ConvertTexture
doesn't support the following conversions:
You can't use
ConvertTexture
if you use OpenGL with MacOS. Depending on your graphics API, you might not be able to do some types of conversions. For more information on compatibility, see SystemInfo.copyTextureSupport, CopyTextureSupport and Graphics.CopyTexture.
To copy the converted texture from the GPU to the CPU, use RequestIntoNativeArray.
Additional Resources: CopyTextureSupport.

ConvertTexture(GraphicsTexture, int, GraphicsTexture, int)

Copies the pixel data from one texture, converts the data into a different format, and copies it into another texture.
public static bool ConvertTexture(GraphicsTexture src, int srcElement, GraphicsTexture dst, int dstElement)

Parameters

The source texture. The TextureDimension must be Tex2D or Cube.

srcElement

The element in the source texture to copy from. Use CubemapFace if
src
is a Cubemap. Set the value to
0
if
src
is a 2D texture.

The destination texture. The TextureDimension must be Tex2D, Tex2DArray, Cube, or CubeArray. The texture must also be uncompressed and correspond to a supported RenderTextureFormat.

dstElement

The element in the source texture to copy to. For example, the CubemapFace in a Cubemap or the slice in a texture array. Set the value to
0
if
dst
is a 2D texture.

Returns

Type

Description

bool
true
if the method succeeded.

Remarks

This method converts and copies pixel data from one texture to another on the GPU.
When you use
ConvertTexture
, Unity does the following:
  1. Creates a temporary RenderTexture that matches the size and format of the
    dst
    texture.
  2. Uses Graphics.Blit to copy from the
    src
    texture to the temporary render texture, and converts to the format of
    dst
    .
  3. Uses Graphics.CopyTexture to copy from the temporary render texture to the
    dst
    texture.
This means it might be faster to convert the texture before you load it into Unity. Alternatively, if you can create
dst
as a render texture (or a graphics texture with GraphicsTextureDescriptorFlags.RenderTarget enabled), you can use Graphics.Blit instead.
You can use textures with different sizes for
src
and
dst
.
ConvertTexture
doesn't support the following conversions:
You can't use
ConvertTexture
if you use OpenGL with MacOS. Depending on your graphics API, you might not be able to do some types of conversions. For more information on compatibility, see SystemInfo.copyTextureSupport, CopyTextureSupport and Graphics.CopyTexture.
To copy the converted texture from the GPU to the CPU, use RequestIntoNativeArray.
Additional Resources: CopyTextureSupport.