Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

Graphics.ConvertTexture

Declaration

public static bool ConvertTexture(Texture src, Texture dst);
public static bool ConvertTexture(Texture src, int srcElement, Texture dst, int dstElement);
public static bool ConvertTexture(Rendering.GraphicsTexture src, Rendering.GraphicsTexture dst);
public static bool ConvertTexture(Rendering.GraphicsTexture src, int srcElement, Rendering.GraphicsTexture dst, int dstElement);

Параметры

Параметр Описание
сердце Исходная текстура. TextureDimension должны быть Tex2D или Cube.
дст Текстура назначения. TextureDimension должны быть Tex2D, Tex2DArray, Cube, или CubeArray. Текстура также должна быть несжатой и соответствовать поддерживаемой RenderTextureFormat.
srcElement Элемент в исходной текстуре для копирования. Используйте CubemapFace, если src является кубическим изображением. Установите значение 0, если src является текстурой 2D.
dstElement Элемент в исходной текстуре для копирования. Например, CubemapFace в кубическом отображении или слой в массиве текстур. Установите значение 0, если `dst` является текстурой 2D.

Возвращаемое значение

логическое true если метод был успешным.

Описание

Копирует данные пикселей из одной текстуры, преобразует данные в другой формат и копирует их в другую текстуру.

Этот метод преобразует и копирует данные пикселей из одной текстуры в другую на GPU.

При использовании ConvertTextureUnity выполняет следующие действия:

  1. Создает временную текстуру RenderTexture, которая соответствует размеру и формату текстуры dst.
  2. Использует Graphics.Blit для копирования текстуры src во временную текстуру рендеринга и преобразует ее в формат dst.
  3. Использует Graphics.CopyTexture для копирования из временной текстуры рендеринга в текстуру dst.

Это означает, что может быть быстрее преобразовать текстуру до загрузки в Unity. В качестве альтернативы, если вы можете создать dst как текстуру рендеринга (или графическую текстуру с включенными GraphicsTextureDescriptorFlags.RenderTarget), вы можете использовать Graphics.Blit вместо этого.

Вы можете использовать текстуры разных размеров для src и dst.

ConvertTexture не поддерживает следующие преобразования:

  • Кубическое отображение на Texture2D.
  • Преобразования, которые используют цели отображения (RenderTextures или GraphicsTextures, которые имеют флажок RenderTarget включенным). Используйте Graphics.Blit вместо этого.

Вы не можете использовать ConvertTexture, если используете OpenGL с MacOS. В зависимости от вашей графики API, вы можете не иметь возможности выполнять некоторые типы преобразований. Для получения дополнительной информации о совместимости, см. SystemInfo.copyTextureSupport, CopyTextureSupport и Graphics.CopyTexture.

Для копирования преобразованной текстуры из GPU в CPU, используйте Texture2D.RequestIntoNativeArray.

Дополнительные ресурсы: CopyTextureSupport.