CompressedImageFormat (日本語)
LÖVE 0.9.0 から使用可能 |
この列挙型は以前のバージョンでは非対応です。 |
圧縮された画像データの形式。 ここ と ここ には各種形式に関する概要があります。
これらの形式は従来の PNG または jpeg とは異なり、 RAM およびグラフィックス・カードの VRAM へ圧縮したまま存在できます。描画時にグラフィックスカードは高速アクセス用のキャッシュへ画像のピクセルを大量に保存できるので、これはメモリの空き領域を節約するだけではなく性能の改善にも有効です。
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 形式の符号付きによる異形です。
- BC6h
BC6H 形式。ピクセルごとに 8 bit にて [0, 65504] の範囲により 半精度浮動小数点数 RGB データを格納します。デスクトップシステムにおいて HDR 画像に適しています。
- BC6hs
- BC6H 形式の符号付きによる異形です。 RGB データの格納範囲は [-65504, +65504] です。
- BC7
- BC7 形式 (BPTC としても知られています)。ピクセルごとに 8 bit の RGB または RGBA データを格納します。
- 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
関数
- love.image (日本語)
- CompressedImageData (日本語)
- CompressedImageData:getFormat (日本語)
- love.graphics.getCompressedImageFormats (日本語)
そのほかの言語
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info