IHVImageFormatImporter
класс в UnityEditor
Наследуется от:AssetImporter
Описание
Используйте IHVImageFormatImporter для изменения Texture2D импорт настроек для Текстур в форматах IHV (Independent Hardware Vendor) из скриптов Редактора. Эти форматы позволяют импортировать необработанные текстурные данные и обходить импортер текстур Unity, позволяя преобразовывать пиксельные данные, которые могут быть сжаты внешним инструментом, в Текстуры. IHVImageFormatImporter поддерживает следующие форматы файлов:
- .pvr
- .astc
- .ktx
- .dds
Поддержка форматов файлов Примечания:
Поддержка Unity для этих форматов ограничивается функциями, которые обеспечивают основную функциональность, с акцентом на импорте необработанных сжатых текстур и пиксельных данных в Unity. Некоторые из расширенной информации и метаданных, хранящихся в этих форматах, могут быть проигнорированы Unity. Если вы столкнетесь с проблемами импорта, может быть полезно использовать другой инструмент экспорта, потому что форматы обычно выводятся сторонними инструментами экспорта, которые интерпретируют данные по-разному.
Некоторые ограничения графического стека Unity также относятся ко всем этим форматам:
- Размер блока: Размеры сжатых текстур должны быть кратными размера блока. Unity не поддерживает заполнение до ближайшего кратного в блоках.
- sRGB RG форматы: Unity эмулирует некоторые форматы, такие как 2-канальные RG текстуры с sRGB функцией передачи на каждом канале, внутренне возвращаясь к формату RGBA. Неиспользуемые каналы могут содержать значение 0xFF вместо 0x00, что приводит к неожиданной раскраске, когда отображается как RGB на экране. Чтобы избежать любых проблем, используйте только rg каналы в шейдерах для sRGB RG форматов.
- Формат Luma: Одноканальная Luma может быть эмулирована с использованием формата равного размера, как R8. В результате, значения семплирования шейдера могут быть в формате float4(X,0,0,1) вместо float4(X,X,X,1).
- sRGB настройки: Unity игнорирует настройки sRGB в импортированных файлах. Используйте IHVImageFormatImporter и Inspector, чтобы определить, является ли файл sRGB или нет.
Ниже приведен список ограничений, специфических для формата. Для понимания этих ограничений необходимо знакомство с каждым форматом.
PVR
Поддержка формата версии 2 и 3.
Поддерживает только Texture2D (с дополнительными mipmaps), не поддерживает массив томов или кубические отображения.
Цветовое пространство, предварительное умножение альфы и тип канала игнорируются и устанавливаются по умолчанию Unity.
Поддерживаемые форматы для v2: перечисление форматов PVR v2 и соответствующий формат Unity. * MGLPT_PVRTC2,OGL_PVRTC2: при наличии альфа-канала TextureFormat.PVRTC_RGBA2, иначе TextureFormat.PVRTC_RGB2 * MGLPT_PVRTC4,OGL_PVRTC4: при наличии альфа-канала TextureFormat.PVRTC_RGBA4, иначе TextureFormat.PVRTC_RGB4 * MGLPT_RGB_888,OGL_RGB_888: TextureFormat.RGB24 * MGLPT_RGB_565,OGL_RGB_565: TextureFormat.RGB565 * D3D_DXT1: TextureFormat.DXT1 * D3D_DXT5: TextureFormat.DXT5 * ETC_RGB_4BPP: TextureFormat.ETC_RGB4 * OGL_RGBA_8888: TextureFormat.RGBA32 * MGLPT_ARGB_4444: TextureFormat.ARGB4444 * OGL_RGBA_4444: TextureFormat.RGBA4444
Поддерживаемые форматы для v3: формат PVR, v3, ID и отображаемый формат Unity. * Идент. код 0: TextureFormat.PVRTC_RGB2 * Идент. код 1: TextureFormat.PVRTC_RGBA2 * Идент. код 2: TextureFormat.PVRTC_RGB4 * Идент. код 3: TextureFormat.PVRTC_RGBA4 * Идент. код 6: TextureFormat.ETC_RGB4 * Идент. код 7: TextureFormat.DXT1 * Идент. код 11: TextureFormat.DXT5 * Идент. код 22: TextureFormat.ETC2_RGB * Идент. код 23: TextureFormat.ETC2_RGBA8 * Идент. код 24: TextureFormat.ETC2_RGBA1 * Идент. код 25: TextureFormat.EAC_R * Идент. код 26: TextureFormat.EAC_RG * Идент. код 27: TextureFormat.ASTC_4x4 * Идент. код 29: TextureFormat.ASTC_5x5 * Идент. код 31: TextureFormat.ASTC_6x6 * Идент. код 34: TextureFormat.ASTC_8x8 * Идент. код 38: TextureFormat.ASTC_10x10 * Идент. код 40: TextureFormat.ASTC_12x12
Также поддерживаются следующие форматы, указанные в файле PVR с помощью порядка каналов и битрейта:
- TextureFormat.BGRA32
- TextureFormat.RGBA32
- TextureFormat.RGBA4444
- TextureFormat.RGB565
- TextureFormat.RGB24
- TextureFormat.Alpha8
ASTC
Поддерживает только Texture2D (без mipmaps), не поддерживает тома.
Поддерживает только 4x4 5x5 6x6 8x8 10x10 12x12 astc блоки.
KTX
Поддерживает только Texture2D (с дополнительными mipmaps), не поддерживает массив томов или кубические карты.
Поддерживается только более старый формат KTX v1.
sRGB параметры форматов текстуры игнорируются.
Поддерживаемые форматы:
- GL_RGBA8 : TextureFormat.RGBA32
- GL_RGB8 : TextureFormat.RGB24
- GL_RGBA4 : TextureFormat.ARGB4444
- GL_RGB565 : TextureFormat.RGB565
- GL_COMPRESSED_RGB_S3TC_DXT1_EXT : TextureFormat.DXT1
- GL_COMPRESSED_SRGB_S3TC_DXT1_NV : TextureFormat.DXT1
- GL_COMPRESSED_RGBA_S3TC_DXT5_EXT : TextureFormat.DXT5
- GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV : TextureFormat.DXT5
- GL_COMPRESSED_RED_RGTC1 : TextureFormat.BC4
- GL_COMPRESSED_RG_RGTC2 : TextureFormat.BC5
- GL_COMPRESSED_RGBA_BPTC_UNORM_ARB : TextureFormat.BC7
- GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB : TextureFormat.BC7
- GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG : TextureFormat.PVRTC_RGB2
- GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG : TextureFormat.PVRTC_RGBA2
- GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG : TextureFormat.PVRTC_RGB4
- GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG : TextureFormat.PVRTC_RGBA4
- GL_ETC1_RGB8_OES : TextureFormat.ETC_RGB4
- GL_COMPRESSED_R11_EAC : TextureFormat.EAC_R
- GL_COMPRESSED_SIGNED_R11_EAC : TextureFormat.EAC_R_SIGNED
- GL_COMPRESSED_RG11_EAC : TextureFormat.EAC_RG
- GL_COMPRESSED_SIGNED_RG11_EAC : TextureFormat.EAC_RG_SIGNED
- GL_COMPRESSED_RGB8_ETC2 : TextureFormat.ETC2_RGB
- GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 : TextureFormat.ETC2_RGBA1
- GL_COMPRESSED_RGBA8_ETC2_EAC : TextureFormat.ETC2_RGBA8
- GL_COMPRESSED_RGBA_ASTC_4x4_KHR : TextureFormat.ASTC_4x4
- GL_COMPRESSED_RGBA_ASTC_5x5_KHR : TextureFormat.ASTC_5x5
- GL_COMPRESSED_RGBA_ASTC_6x6_KHR : TextureFormat.ASTC_6x6
- GL_COMPRESSED_RGBA_ASTC_8x8_KHR : TextureFormat.ASTC_8x8
- GL_COMPRESSED_RGBA_ASTC_10x10_KHR : TextureFormat.ASTC_10x10
- GL_COMPRESSED_RGBA_ASTC_12x12_KHR : TextureFormat.ASTC_12x12
DDS
Поддерживает только Texture2D и CubeMap (с дополнительными mipmaps), не поддерживает массивы томов, массивов и кубических карт.
BC7 данные не могут быть перевернуты при импорте. Из-за формата сжатия Unity импортирует их вверх ногами.
Поддерживаемые форматы:
DX10 Форматы стилей:
- DXGI_FORMAT_BC1_UNORM : TextureFormat.DXT1
- DXGI_FORMAT_BC1_UNORM_SRGB : TextureFormat.DXT1
- DXGI_FORMAT_BC2_UNORM : TextureFormat.DXT3
- DXGI_FORMAT_BC2_UNORM_SRGB : TextureFormat.DXT3
- DXGI_FORMAT_BC3_UNORM : TextureFormat.DXT5
- DXGI_FORMAT_BC3_UNORM_SRGB : TextureFormat.DXT5
- DXGI_FORMAT_BC4_UNORM : TextureFormat.BC4
- DXGI_FORMAT_BC5_UNORM : TextureFormat.BC5
- DXGI_FORMAT_BC6H_UF16 : TextureFormat.BC6H
- DXGI_FORMAT_BC7_UNORM : TextureFormat.BC7
- DXGI_FORMAT_BC7_UNORM_SRGB : TextureFormat.BC7
- DXGI_FORMAT_R16_FLOAT : TextureFormat.RHalf
- DXGI_FORMAT_R16G16_FLOAT : TextureFormat.RGHalf
- DXGI_FORMAT_R16G16B16A16_FLOAT : TextureFormat.RGBAHalf
- DXGI_FORMAT_R32_FLOAT : TextureFormat.RFloat
- DXGI_FORMAT_R32G32_FLOAT : TextureFormat.RGFloat
- DXGI_FORMAT_R32G32B32A32_FLOAT : TextureFormat.RGBAFloat
- DXGI_FORMAT_R11G11B10_FLOAT : TextureFormat.RGBAHalf, снижение->sourceFormat = 26
- DXGI_FORMAT_R8G8B8A8_UNORM : TextureFormat.RGBA32
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB : TextureFormat.RGBA32
- DXGI_FORMAT_R8_UNORM : TextureFormat.R8
- DXGI_FORMAT_R8G8_UNORM : TextureFormat.RG16
- DXGI_FORMAT_B4G4R4A4_UNORM : TextureFormat.ARGB4444
- DXGI_FORMAT_B5G6R5_UNORM : TextureFormat.RGB565
- DXGI_FORMAT_R16_SNORM : TextureFormat.R16_SIGNED
- DXGI_FORMAT_R16G16_SNORM : TextureFormat.RG32_SIGNED
- DXGI_FORMAT_R16G16B16A16_SNORM : TextureFormat.RGBA64_SIGNED
- DXGI_FORMAT_R8G8B8A8_SNORM : TextureFormat.RGBA32_SIGNED
- DXGI_FORMAT_R8G8_SNORM : TextureFormat.RG16_SIGNED
- DXGI_FORMAT_R8_SNORM : TextureFormat.R8_SIGNED
Форматы стилей FOURCC и DX9:
- D3DFMT_R16F: TextureFormat.RHalf
- D3DFMT_G16R16F: TextureFormat.RGHalf
- D3DFMT_A16B16G16R16F: TextureFormat.RGBAHalf
- D3DFMT_R32F: TextureFormat.RFloat
- D3DFMT_G32R32F: TextureFormat.RGFloat
- D3DFMT_A32B32G32R32F: TextureFormat.RGBAFloat
- ‘DXT1’: TextureFormat.DXT1
- ‘DXT3’: TextureFormat.DXT3
- ‘DXT5’: TextureFormat.DXT5
- ‘ATI1N’: TextureFormat.BC4
- ‘ATI2N’: TextureFormat.BC5
- ‘A2XY’: TextureFormat.BC5
Бит-пакированные форматы RGB (биткоды + маска):
- TextureFormat.BGR24
- TextureFormat.ARGB32
- TextureFormat.RGBA32
- TextureFormat.ARGB4444
- TextureFormat.RGB565
Альфа-форматы яркости:
- TextureFormat.R8 (светимость)
- TextureFormat.Alpha8.
Свойства
| Свойство | Описание |
|---|---|
| filterMode | Режим фильтрации текстуры. |
| ignoreMipmapLimit | Включить, если текстура должна игнорировать любые ограничения текстуры mipmap, установленные в Project Настройках. |
| isReadable | Можно ли читать данные текстуры из скриптов. |
| mipmapLimitGroupName | Имя группы ограничений mipmap текстуры, к которой принадлежит эта текстура. |
| streamingMipmaps | Включить поток mipmap для этой текстуры. |
| streamingMipmapsPriority | Относительный приоритет для этой текстуры при уменьшении размера памяти, чтобы не перегружать бюджет памяти. |
| wrapMode | Режим оборачивания координат текстуры. |
| wrapModeU | Режим обрамления текстуры U-координат. |
| wrapModeV | Режим обмотки текстуры V координат. |
| wrapModeW | Режим оборачивания координат текстуры W для Texture3D. |
Унаследованные члены 4
Свойства
| Свойство | Описание |
|---|---|
| assetBundleName | Получить или установить имя AssetBundle. |
| assetBundleVariant | Получить или установить вариант AssetBundle. |
| assetPath | Имя пути ассета для данного импортера. (только для чтения) |
| importSettingsMissing | Значение true, если метафайл не предоставляется с импортированным ассетом. |
| userData | Получить или установить любые данные пользователя. |
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| AddRemap | Сопоставление субактива из импортированного ассета (например, файла FBX) с внешним ассетом того же типа. |
| GetExternalObjectMap | Получает копию сопоставления внешнего объекта, используемого AssetImporter. |
| RemoveRemap | Удаляет элемент из карты внешних объектов. |
| SaveAndReimport | Сохранить настройки импортера ассетов, если импортер ассетов загрязнен. |
| SetAssetBundleNameAndVariant | Установите имя и вариант AssetBundle. |
| SupportsRemappedAssetType | Проверяет, поддерживает ли AssetImporter пересопоставление данного типа ассета. |
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Статические методы
| Метод | Описание |
|---|---|
| GetAtPath | Получает импортер ассета для ассета в пути. |
| GetImportLog | Получает журналы, созданные во время импорта ассета по пути. |
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |