Spec-Zone.ru › LÖVE

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API