Формат сжатых изображений
Доступно начиная с LÖVE 0.9.0
Этот перечисление не поддерживается в более ранних версиях.
| Устарело в LÖVE 11.0 |
| Заменено на PixelFormat… |
Форматы сжатых данных изображений. Здесь и здесь представлены несколько обзоров многих форматов.
В отличие от традиционных PNG или JPEG, эти форматы остаются сжатыми в ОЗУ и видеопамяти графического процессора. Это хорошо для экономии памяти и повышения производительности, так как графический процессор сможет хранить больше пикселей изображения в кэше с быстрым доступом при его отрисовке.
В версиях LÖVE до 0.10.0 эти константы были в нижнем регистре.
Константы
- DXT1
- Формат DXT1. Данные RGB при 4 битах на пиксел (по сравнению с 32 битами для ImageData и обычных изображений). Подходит для полностью непрозрачных изображений на настольных системах.
- DXT3
- Формат DXT3. Данные RGBA при 8 битах на пиксел. Плавные изменения непрозрачности не сочетаются с этим форматом.
- DXT5
- Формат DXT5. Данные RGBA при 8 битах на пиксел. Рекомендуется для изображений с различной непрозрачностью на настольных системах.
- BC4
- Формат BC4 (также известный как 3Dc+ или ATI1). Хранит только красный канал при 4 битах на пиксел.
- BC4s
- Подписанная разновидность формата BC4. Аналогично вышесказанному, но значения пикселей в текстуре находятся в диапазоне [-1, 1] вместо [0, 1] в шейдерах.
- BC5
- Формат BC5 (также известный как 3Dc или ATI2). Хранит красные и зеленые каналы при 8 битах на пиксел.
- BC5s
- Подписанная разновидность формата BC5.
- BC6h Доступно начиная с 0.9.2
- Формат BC6H. Хранит данные RGB с половинной точностью с плавающей запятой в диапазоне [0, 65504] при 8 битах на пиксел. Подходит для изображений HDR на настольных системах.
- BC6hs Доступно начиная с 0.9.2
- Подписанная разновидность формата BC6H. Хранит данные RGB в диапазоне [-65504, +65504].
- BC7 Доступно начиная с 0.9.2
- Формат BC7 (также известный как BPTC). Хранит данные RGB или RGBA при 8 битах на пиксел.
- ETC1 Доступно начиная с 0.10.0
- Формат ETC1. Данные RGB при 4 битах на пиксел. Подходит для полностью непрозрачных изображений на старых устройствах Android.
- ETC2rgb Доступно начиная с 0.10.0
- Формат ETC2 (RGB). Данные RGB при 4 битах на пиксел. Подходит для полностью непрозрачных изображений на новых мобильных устройствах.
- ETC2rgba Доступно начиная с 0.10.0
- Формат ETC2 (RGBA). Данные RGBA при 8 битах на пиксел. Рекомендуется для изображений с различной непрозрачностью на новых мобильных устройствах.
- ETC2rgba1 Доступно начиная с 0.10.0
- Формат ETC2 (RGBA), где пиксели либо полностью прозрачные, либо полностью непрозрачные. Данные RGBA при 4 битах на пиксел.
- EACr Доступно начиная с 0.10.0
- Одноканальная разновидность формата EAC. Хранит только красный канал при 4 битах на пиксел.
- EACrs Доступно начиная с 0.10.0
- Подписанная одноканальная разновидность формата EAC. Аналогично вышесказанному, но значения пикселей в текстуре находятся в диапазоне [-1, 1] вместо [0, 1] в шейдерах.
- EACrg Доступно начиная с 0.10.0
- Двухканальная разновидность формата EAC. Хранит красные и зеленые каналы при 8 битах на пиксел.
- EACrgs Доступно начиная с 0.10.0
- Подписанная двухканальная разновидность формата EAC.
- PVR1rgb2 Доступно начиная с 0.10.0
- Формат PVRTC1 (2 бита на пиксел, RGB). Хранит данные RGB при 2 битах на пиксел. Текстуры, сжатые с использованием форматов PVRTC1, должны быть квадратными и размерами, являющимися степенью двойки.
- PVR1rgb4 Доступно начиная с 0.10.0
- Формат PVRTC1 (4 бита на пиксел, RGB). Хранит данные RGB при 4 битах на пиксел.
- PVR1rgba2 Доступно начиная с 0.10.0
- Формат PVRTC1 (2 бита на пиксел, RGBA).
- PVR1rgba4 Доступно начиная с 0.10.0
- Формат PVRTC1 (4 бита на пиксел, RGBA).
- ASTC4x4 Доступно начиная с 0.10.0
- Формат ASTC (4x4 пикселей на блок). Данные RGBA при 8 битах на пиксел.
Примечания
Не все форматы поддерживаются в love.graphics Изображения на всех системах, хотя форматы DXT имеют почти 100% поддержку на настольных операционных системах.
Форматы BC4 и BC5 поддерживаются на системах с DirectX 10/OpenGL 3-совместимым настольным оборудованием и драйверами. Форматы BC6H и BC7 поддерживаются только на настольных системах с DirectX 11/OpenGL 4-совместимым оборудованием и очень последними драйверами. macOS в настоящее время не поддерживает BC6H или BC7.
ETC1 поддерживается устройствами Android, а также более новыми (совместимыми с OpenGL ES 3) устройствами iOS.
Форматы PVR1 поддерживаются устройствами iOS, а также устройствами Android с графическими процессорами PowerVR.
Форматы ETC2 и EAC поддерживаются более новыми (совместимыми с OpenGL ES 3) устройствами iOS и Android.
ASTC поддерживается только очень новыми мобильными устройствами (например, iPhone 6) и последними интегрированными графическими процессорами Intel Skylake (и новее). Он имеет различные варианты, чтобы можно было выбрать наиболее сжатый вариант, не имеющий заметных артефактов сжатия для данной текстуры.
Используйте love.graphics.getCompressedImageFormats для проверки поддержки:
local supportedformats = love.graphics.getCompressedImageFormats()
if not supportedformats["DXT5"] then
-- Can't load CompressedImageData with the DXT5 format into images!
-- On some Linux systems with Mesa drivers, the user will need to install a "libtxc-dxtn" package because the DXT (aka S3TC) formats used to be patented.
-- Support for DXT formats on all other desktop drivers is pretty much guaranteed.
end
if not supportedformats["BC5"] then
-- Can't load CompressedImageData with the BC5 format into images!
-- The user likely doesn't have a video card capable of using that format.
end
См. также
- love.image
- CompressedImageData
- CompressedImageData:getFormat
- love.graphics.getCompressedImageFormats
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/CompressedImageFormat