Texture2DArray
Описание
Класс для обработки массивов текстур 2D.
Современные графики APIs (e.g. D3D10 и более поздние, OpenGL ES 3.0 и более поздние, Metal и т.д.) поддерживают "матрицы текстур", которые представляют собой массив текстур одного размера и формата. Со стороны шейдера они рассматриваются как единый ресурс, и для их выборки требуется дополнительная координата, указывающая, из какого элемента массива взять выборку.
Как правило, массивы текстур полезны в качестве альтернативы для атласов текстур, или в других случаях, когда объекты используют набор текстур одного размера (e.g. terrains).
В настоящее время в Unity массивы текстур не имеют импортного конвейера для них, и должны создаваться из кода, либо во время выполнения, либо в скриптах редактора. Graphics.CopyTexture полезно для быстрого копирования пиксельных данных из обычных 2D текстуры в элементы массива текстур. Из скриптов редактора, обычный способ создания сериализованного массива текстуры — это создать его, заполнить данные (либо через Graphics.CopyTexture из обычных текстур 2D, или через SetPixels или
SetPixels32) и сохранить его в качестве ассета через AssetDatabase.CreateAsset.
Обратите внимание, что не все платформы и GPUs поддерживают массивы текстур; например, Direct3D9 не поддерживает. SystemInfo.supports2DArrayTextures для проверки. Кроме того, этот класс не поддерживает создание Texture2DArray со сжатием Crunch TextureFormat.
Статические свойства
| Свойство | Описание |
|---|---|
| allSlices | Для чтения. Это свойство используется в качестве параметра в некоторых перегрузках методов CommandBuffer.Blit, Graphics.Blit, CommandBuffer.SetRenderTarget и Graphics.SetRenderTarget для указания того, что все слои массива текстур связаны. Значение этого свойства -1. |
Свойства
| Свойство | Описание |
|---|---|
| activeMipmapLimit | Количество уровней mipmap высокого разрешения из текстуры, которые Unity не загружает в GPU. (только для чтения) |
| depth | Количество элементов в массиве текстуры (только для чтения). |
| format | Формат текстуры (только для чтения). |
| ignoreMipmapLimit | Это свойство заставляет текстуру игнорировать все настройки ограничений mipmap текстуры. |
| mipmapLimitGroup | Имя группы ограничений mipmap текстуры, с которой связана данная текстура. (только для чтения) |
Конструкторы
| Конструктор | Описание |
|---|---|
| Texture2DArray | Создать новый массив текстуры. |
Открытые методы
| Метод | Описание |
|---|---|
| Apply | Копирует изменения, сделанные в текстуре CPU в текстуру GPU. |
| CopyPixels | Копирует пиксельные данные из другой текстуры на CPU. |
| GetPixelData | Получает необработанные данные из текстуры. |
| GetPixels | Получает данные цвета пикселей для уровня mipmap сегмента в качестве структуры Color. |
| GetPixels32 | Получает данные цвета пикселей для уровня mipmap слоя в качестве структуры Color32. |
| SetPixelData | Устанавливает необработанные данные всего уровня mipmap непосредственно в память CPU. |
| SetPixels | Задает цвета пикселей для всего уровня mipmap слоя. |
| SetPixels32 | Задает цвета пикселей для всего уровня mipmap слоя. |
Унаследованные члены 5
Статические свойства
| Свойство | Описание |
|---|---|
| allowThreadedTextureCreation | Разрешить Unity internals выполнять создание текстуры на любом потоке (вместо выделенного потока рендеринга). |
| currentTextureMemory | Количество памяти, которое используют все текстуры в сцене. |
| desiredTextureMemory | Общее количество памяти текстуры в байтах, которое Unity использовало бы при отсутствии ограничений. |
| GenerateAllMips | Может быть использовано с конструкторами Текстуры, которые принимают число mip для указания, что все mip должны быть созданы. Значение этого поля -1. |
| nonStreamingTextureCount | Количество текстур в сцене, которые не являются потоковыми. Это включает экземпляры текстур Texture2D и CubeMap. Это не включает другие типы текстур или текстуры 2D и CubeMap, которые Unity создает внутри сцены. |
| nonStreamingTextureMemory | Количество памяти, которое Unity выделяет для не потоковых Текстур в сцене. Это включает только экземпляры Текстур Texture2D и CubeMap. Это не включает никакие другие типы Текстур, или Тексты 2D и CubeMap, которые Unity создает внутренне. |
| streamingMipmapUploadCount | Сколько раз текстура была загружена из-за потока Texture mipmap. |
| streamingRendererCount | Число рендереров, зарегистрированных в системе потокового передачи текстур. |
| streamingTextureCount | Количество потоковых текстур. |
| streamingTextureDiscardUnusedMips | Это свойство заставляет потоковую систему Текстур отбрасывать все неиспользуемые mipmaps вместо их кэширования до тех пор, пока бюджет памяти Текстуры не будет превышен. Это полезно при профилировании или написании тестов для сохранения предсказуемого набора Текстур в памяти. |
| streamingTextureForceLoadAll | Принудительная загрузка потоковых текстур на все уровни. |
| streamingTextureLoadingCount | Число потоковых Текстур с загружаемыми в настоящее время mipmaps. |
| streamingTexturePendingLoadCount | Число потоковых текстур с выходящими mipmaps для загрузки. |
| targetTextureMemory | Общее использование памяти текстур в байтах после применения бюджета памяти и загрузки всех текстур. |
| totalTextureMemory | Общая память текстур, в байтах, которую Unity использовала бы, если бы все текстуры были загружены в полном разрешении. |
Свойства
| Свойство | Описание |
|---|---|
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
| anisoLevel | Определяет уровень анизотропной фильтрации текстуры. |
| dimension | Размерность (тип) Текстуры. |
| filterMode | Режим фильтрации текстуры. |
| graphicsFormat | Возвращает формат GraphicsFormat или цветовой формат объекта Текстура. |
| graphicsTexture | GraphicsTexture, который представляет ресурс текстуры, загруженный на графическое устройство. |
| height | Высота текстуры в пикселях. |
| imageContentsHash | Хеш текстуры. |
| isDataSRGB | Возвращает true, если данные текстуры пикселя находятся в цветовом пространстве sRGB. |
| isReadable | Сохраняет ли Unity дополнительную копию пиксельных данных текстуры в адресуемой памяти CPU. |
| mipMapBias | Отклонение текстуры от mipmap. |
| mipmapCount | Сколько уровней mipmap есть в текстуре. |
| updateCount | Этот счетчик увеличивается при обновлении Текстуры. |
| width | Ширина текстуры в пикселях. |
| wrapMode | Варианты выборки текстуры, если координата текстуры находится вне диапазона [0, 1]. |
| wrapModeU | Варианты выборки текстуры, если координата U текстуры находится вне диапазона [0, 1]. |
| wrapModeV | Варианты выборки текстуры, если координата текстуры V находится вне диапазона [0, 1]. |
| wrapModeW | Варианты выборки текстуры, если координата W находится вне диапазона [0, 1]. |
Открытые методы
| Метод | Описание |
|---|---|
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
| GetNativeTexturePtr | Получить собственный (базовый график API) указатель на ресурс Текстура. |
| IncrementUpdateCount | Увеличение счетчика обновлений. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
| SetGlobalAnisotropicFilteringLimits | Задает пределы анизотропии. |
| SetStreamingTextureMaterialDebugProperties | Эта функция устанавливает свойства отладки потока mipmap для всех материалов, известных системе потока mipmap. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |