CompressedImageFormat (日本語)

LÖVE 0.9.0 から使用可能
この列挙型は以前のバージョンでは非対応です。

圧縮された画像データの形式。 ここここ には各種形式に関する概要があります。

これらの形式は従来の PNG または jpeg とは異なり、 RAM およびグラフィックス・カードの VRAM へ圧縮したまま存在できます。描画時にグラフィックスカードは高速アクセス用のキャッシュへ画像のピクセルを大量に保存できるので、これはメモリの空き領域を節約するだけではなく性能の改善にも有効です。

O.png LÖVE version 0.10.0 以前では、定数名は英数半角小文字です。  


定数

DXT1
DXT1 形式。ピクセルごとに 4 bit のRGB データ (32 bit の ImageData および通常の Image との比較)。デスクトップシステムにおいて完全に不透明な画像に適しています。
DXT3
DXT3 形式。ピクセルごとに 8 bit の RGBA データ。この形式で不透明度を滑らかに変化させる場合は上手く混ざり合いません。
DXT5
DXT5 形式。ピクセルごとに 8 bit の RGBA データ。デスクトップシステムにおいて不透明度が変化する画像において推奨されます。
BC4
BC4 形式 (3Dc+ または ATI1 としても知られています)。ピクセルごとに 4 bit の赤チャンネルのみを格納します。
BC4s
これは BC4 形式の符号付きによる異形です。上記と同じですがテクスチャーにおけるピクセル値はシェーダー側の [ 0, 1] ではなく [-1, 1] 範囲です。
BC5
BC5 形式 (3Dc または ATI2 としても知られています)。ピクセルごとに 8 bit の赤および緑チャンネルを格納します。
BC5s
これは BC5 形式の符号付きによる異形です。
LÖVE 0.9.2 から利用可能
BC6h

BC6H 形式。ピクセルごとに 8 bit にて [0, 65504] の範囲により 半精度浮動小数点数 RGB データを格納します。デスクトップシステムにおいて HDR 画像に適しています。

BC6hs
BC6H 形式の符号付きによる異形です。 RGB データの格納範囲は [-65504, +65504] です。
BC7
BC7 形式 (BPTC としても知られています)。ピクセルごとに 8 bit の RGB または RGBA データを格納します。


LÖVE 0.10.0 から利用可能
ETC1
ETC1 形式。ピクセルごとに 4 bit の RGB です。古い Android デバイスにおいて完全に不透明な画像に適しています。
ETC2rgb
ETC2 形式の異形。ピクセルごとに 4 bit の RGB です。新しい Android デバイスにおいて完全に不透明な画像に適しています。
ETC2rgba
ETC2 形式の異形。ピクセルごとに 8 bit の RGBA データ。新しいモバイル機器において不透明が可変の画像で推奨されます。
ETC2rgba1
ETC2 形式の RGBA による異形でありピクセルが完全に透明または完全に不透明からなります。ピクセルごとに 4 bit の RGBA です。
EACr
単一チャンネルによる EAC 形式の異形です。ピクセルごとに 4 bit の赤チャンネルのみを格納します。
EACrs
符号付き単一チャンネルによる EAC 形式の異形です。上記と同じですがシェーダーにおいてテクスチャのピクセル値は [0, 1] ではなく [-1, 1] の範囲です。
EACrg
2チャンネルによる EAC 形式の異形です。ピクセルごとに 8 bit の赤および緑チャンネルを格納します。
EACrgs
符号付き2チャンネルによる EAC 形式の異形です。
PVR1rgb2
ピクセルごとに 2 bit の RGB からなる PVRTC1 形式の異形です。テクスチャは 2 の累乗または平方の大きさにより PVRTC1 形式で圧縮する必要があります。
PVR1rgb4
ピクセルごとに 4 bit の RGB からなる PVRTC1 形式の異形です。ピクセルごとに 8bit の RGB データを格納します。
PVR1rgba2
ピクセルごとに 2 bit の RGBA からなる PVRTC1 形式の異形です。
PVR1rgba4
ピクセルごとに 4 bit の RGBA からなる PVRTC1 形式の異形です。
ASTC4x4
ASTC 形式のブロックごとに 4x4 ピクセルによる異形。ピクセルあたり 8 bit による RGBA データ。
ASTC5x4
ASTC 形式のブロックごとに 5x4 ピクセルによる異形。ピクセルあたり 6.4 bit による RGBA データ。
ASTC5x5
ASTC 形式のブロックごとに 5x5 ピクセルによる異形。ピクセルあたり 5.12 bit による RGBA データ。
ASTC6x5
ASTC 形式のブロックごとに 6x5 ピクセルによる異形。ピクセルあたり 4.27 bit による RGBA データ。
ASTC6x6
ASTC 形式のブロックごとに 6x6 ピクセルによる異形。ピクセルあたり 3.56 bit による RGBA データ。
ASTC8x5
ASTC 形式のブロックごとに 8x5 ピクセルによる異形。ピクセルあたり 3.2 bit による RGBA データ。
ASTC8x6
ASTC 形式のブロックごとに 8x6 ピクセルによる異形。ピクセルあたり 2.67 bit による RGBA データ。
ASTC8x8
ASTC 形式のブロックごとに 8x8 ピクセルによる異形。ピクセルあたり 2 bit による RGBA データ。
ASTC10x5
ASTC 形式のブロックごとに 10x5 ピクセルによる異形。ピクセルあたり 2.56 bit による RGBA データ。
ASTC10x6
ASTC 形式のブロックごとに 10x6 ピクセルによる異形。ピクセルあたり 2.13 bit による RGBA データ。
ASTC10x8
ASTC 形式のブロックごとに 10x8 ピクセルによる異形。ピクセルあたり 1.6 bit による RGBA データ。
ASTC10x10
ASTC 形式のブロックごとに 10x10 ピクセルによる異形。ピクセルあたり 1.28 bit による RGBA データ。
ASTC12x10
ASTC 形式のブロックごとに 12x10 ピクセルによる異形。ピクセルあたり 1.07 bit による RGBA データ。
ASTC12x12
ASTC 形式のブロックごとに 12x12 ピクセルによる異形。ピクセルあたり 0.89 bit による RGBA データ。


注釈

全てのシステムで love.graphics における全ての画像形式に対応しているとは限りませんが、 DXT 形式であればデスクトップシステムでは、ほぼ 100% 対応しています。

BC4 と BC5 形式はデスクトップシステムで DirectX 10 / OpenGL 3 対応ハードウェアおよびドライバで対応しています。 BC6H と BC7 形式はデスクトップシステムで DirectX 11 / OpenGL 4 対応ハードウェアおよび非常に新しいドライバでのみ対応しています。現在のところ Mac OS X では BC6H または BC7 に対して一切対応していません。

ETC1 は新しい (OpenGL ES 3 対応の) iOS デバイスと同様に、 Android デバイスでも対応しています。

PVR1 形式 は iOS と同様に PowerVR GPU と搭載した Android デバイスでも対応しています。

ETC2 と EAC 形式は新しい (OpenGL ES 3 対応の) iOS と Android デバイスで対応しています。

ASTC は非常に新しいモバイル機器 (例えば iPhone 6) と最新の Skylake (それ以降) CPU に内蔵されている Intel GPU のみ対応しています。 それは顕著な人為構造による圧縮を有していないテクスチャの指定に対して、最も圧縮可能なものの選択を考慮するために色々な異形があります。

対応状況は love.graphics.getCompressedImageFormats を使用してください:

local supportedformats = love.graphics.getCompressedImageFormats()

if not supportedformats["dxt5"] then
    -- DXT5 形式の画像を CompressedImageData へ読み込むことができませんでした!
    -- DXT (別名は S3TC)形式は特許により保護されているため、 Mesa ドライバを使用している一部の Linux システムでは利用者により "libtxc-dxtn" のパッケージを導入する必要があります。
    -- その他のデスクトップ用のドライバにおいて DXT 形式以外の対応は、ほぼ保証されています。
end

if not supportedformats["bc5"] then
    -- BC4 および BC5 形式の画像を CompressedImageData へ読み込むことができませんでした!
    -- 恐らく利用者は動作要件を満たしていないビデオカードを使用しています。
end

関数


そのほかの言語