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

CommandBuffer.CopyTexture

Declaration

public void CopyTexture(Rendering.RenderTargetIdentifier src, Rendering.RenderTargetIdentifier dst);
public void CopyTexture(Rendering.RenderTargetIdentifier src, int srcElement, Rendering.RenderTargetIdentifier dst, int dstElement);
public void CopyTexture(Rendering.RenderTargetIdentifier src, int srcElement, int srcMip, Rendering.RenderTargetIdentifier dst, int dstElement, int dstMip);
public void CopyTexture(Rendering.RenderTargetIdentifier src, int srcElement, int srcMip, int srcX, int srcY, int srcWidth, int srcHeight, Rendering.RenderTargetIdentifier dst, int dstElement, int dstMip, int dstX, int dstY);

Параметры

Параметр Описание
сердце Исходная текстура или RenderTargetIdentifier.
дст Текстура назначения или RenderTargetIdentifier.
srcElement Элемент в исходной текстуре, из которого будет копироваться текстура. Например, CubemapFace в кубическом отображении или слой в массиве текстур. Установите значение 0, если src является текстурой 2D.
srcMip Уровень mipmap для копирования. Диапазон 0 через текстуру Texture.mipmapCount. Значение по умолчанию 0.
dstElement Элемент в исходной текстуре для копирования. Например, CubemapFace в кубическом отображении или слой в массиве текстур. Установите значение 0, если `dst` является текстурой 2D.
dstMip Уровень mipmap для записи. Диапазон 0 через текстуру Texture.mipmapCount. Значение по умолчанию 0.
srcX Начальная координата x src для копирования. 0 находится слева от текстуры.
srcY Начальная координата y src для копирования. 0 — нижняя часть текстуры.
srcWidth Ширина src для копирования.
srcHeight Высота src для копирования.
dstX Координаты x dst для копирования.
dstY Координаты y к dst для копирования.

Описание

Добавлена команда для копирования пиксельных данных из одной текстуры в другую.

Этот метод добавляет команду для копирования пиксельных данных из одной текстуры в другую на GPU. Если вы установите Texture.isReadable на true для текстур src и dst, метод также копирует пиксельные данные на CPU.

Если вы установите Texture.isReadable на false, CopyTexture является одним из самых быстрых способов копирования текстуры. Но для использования CopyTexture, следующее должно быть одинаковым как в исходной, так и в целевой области текстуры:

Вы можете копировать между несовместимыми форматами в зависимости от ваших графиков API. Например, на некоторых APIs вы можете копировать между форматами с одинаковой битовой шириной.

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

Если src текстура рендеринга только глубины, вы должны скопировать всю текстуру, а не ее часть. Текстура рендеринга только глубины имеет свой цветовой буфер, установленный на цветовой формат от None и ее глубинный буфер установлен на действительную величину RenderTexture.depthStencilFormat.

Форматы сжатых текстур добавляют некоторые ограничения к CopyTexture с региональным вариантом. Например, PVRTC форматы не поддерживаются, так как они не блоковые (для этих форматов можно копировать только всю текстуру или весь уровень mipmap). PVRTC формат устарел, используйте ASTC или ETC Для блоковых форматов (например, для файлов, содержащих DXT, ETC), размер области и координаты должны быть кратными размеру блока сжатия (4 пикселя для DXT).

Даже если вы установите Texture.isReadable true, этот метод не копирует данные пикселей на CPU если вы копируете только часть сжатой текстуры.

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