PixelFormat
Доступно начиная с LÖVE 11.0
Этот перечисление заменяет CanvasFormat и CompressedImageFormat.
Форматы пикселей для Текстур, ImageData и CompressedImageData.
Обычные цветовые форматы
Константы
| Название | Компоненты | Биты на пиксель | Диапазон | Используется с Canvases | Используется с ImageData | Примечание(я) |
|---|---|---|---|---|---|---|
| normal | 4 | 32 | [0, 1] | Да | Псевдоним для rgba8, или srgba8 если включен гамма-корректный рендеринг. |
|
| r8 | 1 | 8 | [0, 1] | Да | 11.3 | |
| rg8 | 2 | 16 | [0, 1] | Да | 11.3 | |
| rgba8 | 4 | 32 | [0, 1] | Да | Да | |
| srgba8 | 4 | 32 | [0, 1] | Да | гамма-корректная версия rgba8. | |
| r16 | 1 | 16 | [0, 1] | 11.3 | ||
| rg16 | 2 | 32 | [0, 1] | 11.3 | ||
| rgba16 | 4 | 64 | [0, 1] | Да | ||
| r16f | 1 | 16 | [-65504, +65504]* | Да | 11.3 | |
| rg16f | 2 | 32 | [-65504, +65504]* | Да | 11.3 | |
| rgba16f | 4 | 64 | [-65504, +65504]* | Да | Да | |
| r32f | 1 | 32 | [-3.4028235e38, 3.4028235e38]* | Да | 11.3 | |
| rg32f | 2 | 64 | [-3.4028235e38, 3.4028235e38]* | Да | 11.3 | |
| rgba32f | 4 | 128 | [-3.4028235e38, 3.4028235e38]* | Да | Да | |
| rgba4 | 4 | 16 | [0, 1] | Да | 11.3 | |
| rgb5a1 | 4 | 16 | [0, 1] | Да | 11.3 | |
| rgb565 | 3 | 16 | [0, 1] | Да | 11.3 | |
| rgb10a2 | 4 | 32 | [0, 1] | Да | 11.3 | |
| rg11b10f | 3 | 32 | [0, 65024]** | Да | 11.3 |
* -бесконечность и +бесконечность также являются допустимыми значениями.
** +бесконечность также является допустимым значением.
Форматы глубины/схемы
Все форматы пикселей глубины и схемы доступны только в Canvases.
Они по умолчанию нечитаемы, и Canvas с форматом глубины/схемы, созданным с флагом читаемости, может получить доступ только к значениям глубины своих пикселей в шейдерах (значения схемы недоступны независимо от настроек).
Константы
| Название | Биты на пиксель | Имеет глубину | Имеет схему | Примечание(я) |
|---|---|---|---|---|
| stencil8 | 8 | Да | ||
| depth16 | 16 | Да | ||
| depth24 | 24 | Да | ||
| depth32f | 32 | Да | ||
| depth24stencil8 | 32 | Да | Да | |
| depth32fstencil8 | 40 | Да | Да |
Сжатые форматы
Все сжатые форматы пикселей доступны только в Изображениях через CompressedImageData (сжатые текстуры).
В отличие от обычных цветовых форматов, они остаются сжатыми в ОЗУ и ВЗУ. Это хорошо для экономии памяти и повышения производительности, так как графическая карта сможет хранить больше пикселей изображения в кэше с быстрым доступом при его отображении.
Константы (графические процессоры настольных компьютеров)
| Название | Компоненты | Биты на пиксель | Диапазон | Примечание(я) |
|---|---|---|---|---|
| DXT1 | 3 | 4 | [0, 1] | Подходит для полностью непрозрачных изображений на настольных системах. |
| DXT3 | 4 | 8 | [0, 1] | Гладкие изменения непрозрачности не сочетаются с этим форматом. DXT1 или DXT5 обычно лучше в любой ситуации. |
| DXT5 | 4 | 8 | [0, 1] | Рекомендуется для изображений с изменяющейся непрозрачностью на настольных системах. |
| BC4 | 1 | 4 | [0, 1] | Также известен как 3Dc+ или ATI1. Хранит только красный канал. |
| BC4s | 1 | 4 | [-1, 1] | Меньшая точность, чем BC4, но позволяет отрицательные числа. |
| BC5 | 2 | 8 | [0, 1] | Также известен как 3Dc или ATI2. Часто используется для нормальных карт на настольных системах. |
| BC5s | 2 | 8 | [-1, 1] | Меньшая точность, чем BC5, но позволяет отрицательные числа. Часто используется для нормальных карт на настольных системах. |
| BC6h | 3 | 8 | [0, +бесконечность] | Хранит данные с плавающей точкой RGB с половинной точностью. Подходит для изображений HDR на настольных системах. |
| BC6hs | 3 | 8 | [-бесконечность, +бесконечность] | Меньшая точность, чем BC6h, но позволяет отрицательные числа. |
| BC7 | 4 | 8 | [0, 1] | Очень хорошо отображает непрозрачные или прозрачные изображения, но требует графического процессора DX11/OpenGL 4. |
Константы (мобильные графические процессоры)
| Название | Компоненты | Биты на пиксель | Диапазон | Примечание(я) |
|---|---|---|---|---|
| ETC1 | 3 | 4 | [0, 1] | Подходит для полностью непрозрачных изображений на старых устройствах Android. |
| ETC2rgb | 3 | 4 | [0, 1] | Подходит для полностью непрозрачных изображений на более новых мобильных устройствах |
| ETC2rgba | 4 | 8 | [0, 1] | Рекомендуется для изображений с изменяющейся непрозрачностью на более новых мобильных устройствах. |
| ETC2rgba1 | 4 | 4 | [0, 1] | RGBA-вариант формата ETC2, где пиксели либо полностью прозрачны, либо полностью непрозрачны. |
| EACr | 1 | 4 | [0, 1] | Хранит только красный канал. |
| EACrs | 1 | 4 | [-1, 1] | Меньшая точность, чем EACr, но позволяет отрицательные числа. |
| EACrg | 2 | 8 | [0, 1] | Хранит красный и зеленый каналы. |
| EACrgs | 2 | 8 | [-1, 1] | Меньшая точность, чем EACrg, но позволяет отрицательные числа. |
| PVR1rgb2 | 3 | 2 | [0, 1] | Изображения с этим форматом должны быть квадратными и иметь размер, являющийся степенью двойки. |
| PVR1rgb4 | 3 | 4 | [0, 1] | Изображения с этим форматом должны быть квадратными и иметь размер, являющийся степенью двойки. |
| PVR1rgba2 | 4 | 2 | [0, 1] | Изображения с этим форматом должны быть квадратными и иметь размер, являющийся степенью двойки. |
| PVR1rgba4 | 4 | 4 | [0, 1] | Изображения с этим форматом должны быть квадратными и иметь размер, являющийся степенью двойки. |
| ASTC4x4 | 4 | 8 | [0, 1] | |
| ASTC5x4 | 4 | 6.4 | [0, 1] | |
| ASTC5x5 | 4 | 5.12 | [0, 1] | |
| ASTC6x5 | 4 | 4.27 | [0, 1] | |
| ASTC6x6 | 4 | 3.56 | [0, 1] | |
| ASTC8x5 | 4 | 3.2 | [0, 1] | |
| ASTC8x6 | 4 | 2.67 | [0, 1] | |
| ASTC8x8 | 4 | 2 | [0, 1] | |
| ASTC10x5 | 4 | 2.56 | [0, 1] | |
| ASTC10x6 | 4 | 2.13 | [0, 1] | |
| ASTC10x8 | 4 | 1.6 | [0, 1] | |
| ASTC10x10 | 4 | 1.28 | [0, 1] | |
| ASTC12x10 | 4 | 1.07 | [0, 1] | |
| ASTC12x12 | 4 | 0.89 | [0, 1] |
Примечания
Не все форматы поддерживаются в love.graphics Изображениях и Canvases на всех системах, хотя сжатые изображения DXT поддерживаются почти на 100% на настольных операционных системах.
Форматы BC4 и BC5 поддерживаются системами с DirectX 10/OpenGL 3-совместимым аппаратным и драйверным обеспечением настольных компьютеров. Форматы BC6H и BC7 поддерживаются только на настольных системах с DirectX 11/OpenGL 4-совместимым оборудованием и очень новыми драйверами. В настоящее время macOS не поддерживает BC6H или BC7.
ETC1 поддерживается большинством устройств Android, а также iPhone 5s и новее.
Форматы ETC2 и EAC поддерживаются iPhone 5s и новее, всеми устройствами Android с OpenGL ES 3 и настольными графическими процессорами с OpenGL 4.3.
Форматы PVR1 поддерживаются всеми устройствами iOS, а также небольшим количеством устройств Android с графическими процессорами PowerVR.
ASTC поддерживается новыми мобильными устройствами (например, iPhone 6 и новее), устройствами Android с графическими процессорами Adreno 4xx (и новее) и интегрированными графическими процессорами Intel Skylake (и новее). Он имеет множество вариантов, позволяющих выбрать наиболее сжатый вариант без заметных артефактов сжатия для заданной текстуры.
Используйте love.graphics.getCanvasFormats и love.graphics.getImageFormats для проверки поддержки Canvas и Image, соответственно:
local supportedformats = love.graphics.getImageFormats()
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
- love.graphics
- love.font
- love.image.newImageData
- love.graphics.getImageФорматы
- love.graphics.getФорматыПолотен
- love.graphics.newCanvas
- Текстура:getФормат
- ImageData:getФормат
- CompressedImageData:getФормат
- GlyphData:getФормат
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/PixelFormat