CompressedFormat
Доступно с 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
- Вариант RGBA формата ETC2, где пиксели либо полностью прозрачны, либо полностью непрозрачны. Данные 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 битами на пиксель.
- ASTC5x4 Доступно с 0.10.0
- Вариант формата ASTC с 5x4 пикселями на блок. Данные RGBA с 6.4 битами на пиксель.
- ASTC5x5 Доступно с 0.10.0
- Вариант формата ASTC с 5x5 пикселями на блок. Данные RGBA с 5.12 битами на пиксель.
- ASTC6x5 Доступно с 0.10.0
- Вариант формата ASTC с 6x5 пикселями на блок. Данные RGBA с 4.27 битами на пиксель.
- ASTC6x6 Доступно с 0.10.0
- Вариант формата ASTC с 6x6 пикселями на блок. Данные RGBA с 3.56 битами на пиксель.
- ASTC8x5 Доступно с 0.10.0
- Вариант формата ASTC с 8x5 пикселями на блок. Данные RGBA с 3.2 битами на пиксель.
- ASTC8x6 Доступно с 0.10.0
- Вариант формата ASTC с 8x6 пикселями на блок. Данные RGBA с 2.67 битами на пиксель.
- ASTC8x8 Доступно с 0.10.0
- Вариант формата ASTC с 8x8 пикселями на блок. Данные RGBA с 2 битами на пиксель.
- ASTC10x5 Доступно с 0.10.0
- Вариант формата ASTC с 10x5 пикселями на блок. Данные RGBA с 2.56 битами на пиксель.
- ASTC10x6 Доступно с 0.10.0
- Вариант формата ASTC с 10x6 пикселями на блок. Данные RGBA с 2.13 битами на пиксель.
- ASTC10x8 Доступно с 0.10.0
- Вариант формата ASTC с 10x8 пикселями на блок. Данные RGBA с 1.6 битами на пиксель.
- ASTC10x10 Доступно с 0.10.0
- Вариант формата ASTC с 10x10 пикселями на блок. Данные RGBA с 1.28 битами на пиксель.
- ASTC12x10 Доступно с 0.10.0
- Вариант формата ASTC с 12x10 пикселями на блок. Данные RGBA с 1.07 битами на пиксель.
- ASTC12x12 Доступно с 0.10.0
- Вариант формата ASTC с 12x12 пикселями на блок. Данные RGBA с 0.89 битами на пиксель.
Примечания
Не все форматы поддерживаются в love.graphics Images на всех системах, хотя форматы 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/CompressedFormat