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

SparseTexture

класс в UnityEngine

Наследуется от:Texture

Выполнено в:UnityEngine.CoreModule

Описание

Класс для обработки редких текстур.

Разреженные текстуры — это текстуры, в которых не все данные текстуры могут присутствовать в памяти одновременно. Они также обычно называются "тюльпанными текстурами" или "мега текстурами".

Представьте текстуру 16384x16384 с разрешением 32 бита на пиксель — это займет 1 Гб памяти. Текстура разбивается на прямоугольные "плитки", и каждая плитка может либо присутствовать в памяти, либо нет. Вы можете загружать и выгружать эти плитки по мере необходимости, в зависимости от расстояния от камеры, секторов мира, которые игрок должен увидеть, и т.д.

В противном случае, редкие текстуры ведут себя так же, как и любая другая текстура в шейдерах — они могут иметь mipmaps, могут использовать все режимы фильтрации текстуры и т.д. Если вы случайно читаете из плитки, которая не присутствует, вы можете получить неопределенный результат (на многих GPUs результатом является черный цвет, но это не гарантируется).

Не все аппаратные средства и платформы поддерживают разреженные текстуры, так что вы должны проверить SystemInfo.supportsSparseTextures перед их использованием. Например, на DirectX системы, которые они требуют DX11.2 (Windows 8.1) и довольно недавняя GPU; и на OpenGL они требуют ARB_sparse_texture Поддержка расширений. Разреженные текстуры поддерживают только несжатые форматы текстур.

После создания редкой текстуры, запросите размер плитки с помощью tileWidth & tileHeight. Размеры плитки платформа и GPU зависимые.

Использование UpdateTile или UpdateTileRaw чтобы сделать плитку резидентом памяти и обновить ее цветовые данные. Используйте UnloadTile для разгрузки плитки.

Дополнительные ресурсы: Разреженные текстуры.

Свойства

Свойство Описание
isCreatedСоздана ли на самом деле разреженная текстура? (только для чтения)
tileHeightПолучить высоту плитки редкой текстуры (только для чтения).
tileWidthПолучить разреженные текстуры плитки ширины (только для чтения).

Конструкторы

Конструктор Описание
SparseTextureСоздайте редкую текстуру.

Открытые методы

Метод Описание
UnloadTileРазгрузить плитку редкой текстуры.
UpdateTileОбновление плитки редкой текстуры с цветовыми значениями.
UpdateTileRawОбновление плитки разреженной текстуры с необработанными значениями пикселей.
Унаследованные члены 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 или цветовой формат объекта Текстура.
graphicsTextureGraphicsTexture, который представляет ресурс текстуры, загруженный на графическое устройство.
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Существует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.