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

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Существует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.