CompressedImageFormat (Українська)

Доступне починаючи з LÖVE 0.9.0
Це перелічене значення недоступне в попередніх версіях.

Формати даних для стиснених зображень. Огляд багатьох форматів можна знайти тут (англ.) і тут (англ.).

На відміну від традиційних форматів, таких як PNG чи JPEG, ці формати залишаються стисненими в операційній пам'яті комп'ютера (RAM) та в пам'яті відеокарти (VRAM). Це дозволяє економити місце і прискорює роботу, бо графічна карта може тримати більше пікселів в кеші швидкого доступа.

O.png В версіях LÖVE до 0.10.0 всі ці константи називаються малими літерами.  


Constants

DXT1
Формат DXT1. Дані RGB (червоний—зелений—синій), по 4 біта на піксель (порівняйте з 32 бітами в ImageData і зачайних об'єктах Image (англ.).) Цей формат не підходить для зображень з прозорістю та мобільних систем.
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 зі знаком.
Доступне починаючи з LÖVE 0.9.2
BC6h
Формат BC6H format. Зберігає дані RGB як числа з плавучою комою половинної точності в діапазоні [0, 65504] по 8 біт на піксель. Підходить для зображень з високим динамічним діапазоном на настільних комп'ютерах.
BC6hs
Варіант формату BC6H зі знаком. Зберігає дані RBG в діапазоні [-65504, +65504].
BC7
Формат BC7 (також відомий як BPTC). Зберігає дані RGB або RGBA по 8 біт на піксель.


Доступне починаючи з LÖVE 0.10.0
ETC1
Формат ETC1. Дані RGB по 4 біта на піксель. Підходить для даних без аніякої прозорості на старих пристроях Android.
ETC2rgb
Варіант формату ETC2 для RGB. Дані RGB по 4 біта на піксель. Підходить для зображень без аніякої прозорості на нових мобільних пристроях.
ETC2rgba
Варіант формату ETC2 для RGBA. Дані RGBA по 8 біт на піксель. Рекомендується для зображень з різними рівнями прозорості на новіших мобільних пристроях.
ETC2rgba1
Варіант формату ETC2 для RGBA, де всі пікселі або цілком прозорі, або цілком непрозорі. Дані RGBA по 4 біти на піксель.
EACr
Варіант формату EAC для одного каналу. Зберігає тільки червоний канал, по 4 біта на піксель.
EACrs
Варіант формату EAC для одного каналу зі знаком. Те саме, що вище, але пікселі в текстурі можуть бути в діапазоні [-1, 1], а не [0, 1], в шейдерах.
EACrg
Двоканальний варіант формату EAC. Зберігає червоний та зелений канали по 8 біт на піксель.
EACrgs
Двоканальний варіант формату EAC зі знаком.
PVR1rgb2
Варіант формату PVRTC1 для RGB з 2 бітами на піксель. Текстури, стиснені в форматах PVRTC1, мусять бути квадратними, і їх розмір має бути ступенем двійки.
PVR1rgb4
Варіант формату PVRTC1 для RGB з 4 бітами на піксель.
PVR1rgba2
Варіант формату PVRTC1 для RGBA з 2 бітами на піксель.
PVR1rgba4
Варіант формату PVRTC1 для RGBA з 4 бітами на піксель.
ASTC4x4
Варіант формату ASTC з блоками розміром 4x4 пікселів. Дані RGBA по 8 біт на піксель.
ASTC5x4
Варіант формату ASTC з блоками розміром 5x4 пікселів. Дані RGBA по 6.4 біт на піксель.
ASTC5x5
Варіант формату ASTC з блоками розміром 5x5 пікселів. Дані RGBA по 5.12 біт на піксель.
ASTC6x5
Варіант формату ASTC з блоками розміром 6x5 пікселів. Дані RGBA по 4.27 біт на піксель.
ASTC6x6
Варіант формату ASTC з блоками розміром 6x6 пікселів. Дані RGBA по 3.56 біт на піксель.
ASTC8x5
Варіант формату ASTC з блоками розміром 8x5 пікселів. Дані RGBA по 3.2 біт на піксель.
ASTC8x6
Варіант формату ASTC з блоками розміром 8x6 пікселів. Дані RGBA по 2.67 біт на піксель.
ASTC8x8
Варіант формату ASTC з блоками розміром 8x8 пікселів. Дані RGBA по 2 біт на піксель.
ASTC10x5
Варіант формату ASTC з блоками розміром 10x5 пікселів. Дані RGBA по 2.56 біт на піксель.
ASTC10x6
Варіант формату ASTC з блоками розміром 10x6 пікселів. Дані RGBA по 2.13 біт на піксель.
ASTC10x8
Варіант формату ASTC з блоками розміром 10x8 пікселів. Дані RGBA по 1.6 біт на піксель.
ASTC10x10
Варіант формату ASTC з блоками розміром 10x10 пікселів. Дані RGBA по 1.28 біт на піксель.
ASTC12x10
Варіант формату ASTC з блоками розміром 12x10 пікселів. Дані RGBA по 1.07 біт на піксель.
ASTC12x12
Варіант формату ASTC з блоками розміром 12x12 пікселів. Дані RGBA по 0.89 біт на піксель.


Примітки

Підтримка форматів в класі Image модуля love.graphcis залежить від системи, але формат DXT має майже 100% підтримку на всіх настільних (немобільних) операційних системах

Формати BC4 та BC5 підтримуються на настільних пристроях з підтримкою DirectX 10 / OpenGL 3. Формати BC6H та BC7 підтримуються тільки на настільних системах з підтримкою DirectX 11 / OpenGL 4 і найновішими драйверами. macOS наразі взагалі не підтримує BC6H та BC7.

ETC1 підтримується пристроями з Android, а також новими пристроями на iOS (які підтримують OpenGL ES 3).

Формати PVR1 підтримуються пристроями на iOS, а також пристроями на Android з відеокартами PowerVR.

Формати ETC2 та EAC підтримуються тільки на нових пристроях на iOS та Adnrdoid (на яких є підтримка OpenGL ES 3).

ASTC підтримується тільки на малій кількості нових мобільних пристроїв (напр. iPhone 6), і тільки на найновіших інтегрованих графічних картах Intel Skylake (та більш нових). У цього формату є багато варіантів, що дозволяє вибрати для кожної текстури варіант, на якому стиснення найбільш ефективне, а графічні артефакти найменш помітні.

Щоб перевірити підтримку, використовуйте функцію love.graphics.getCompressedImageFormats (англ.):

local supportedformats = love.graphics.getCompressedImageFormats()

if not supportedformats["DXT5"] then
    -- Не можна завантажити CompressedImageData з форматом DXT5 в зображення!
    -- На деяких системах з Linux та драйверами Mesa, користувачу
      -- треба встановити пакет "libtxc-dxtn", бо формати DXT (вони ж S3TC)
      -- запатентовані.
    -- Підтримка форматів DXT на більшості інших настільних систем майже гарантована.
end

if not supportedformats["BC5"] then
    -- Не можна завантажити CompressedImageData з форматом BC5 в зображення!
    -- Найбільш імовірно, відеокарта користувача цей формат не підтримує.
end

Див. також


Іншими мовами