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 выполняет следующие действия:
- Создает временную текстуру RenderTexture, которая соответствует размеру и формату текстуры
dst. - Использует Graphics.Blit для копирования текстуры
srcво временную текстуру рендеринга и преобразует ее в форматdst. - Использует 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.