CanvasFormat (日本語)
LÖVE 0.9.0 から使用可能 |
この列挙型は以前のバージョンでは非対応です。 |
LÖVE 11.0 で廃止予定 |
PixelFormat へ変更されました。 |
Canvas の形式。
定数
- normal
- 標準 Canvas 形式 ― 通常は
rgba8
形式、または LÖVE 0.10.0 以降でガンマ補正表示が有効ならばsrgb
の別名です。 - hdr
- 高解像度の内容に適している形式です。 - 通常は、
rgba16f
形式に対する別名です。
- rgba8
- RGBA チャンネル (32 bpp) 当たり 8 bit です。色チャンネルの値は 0 から 255 (シェーダーは 0 から 1 まで) までの範囲です。
- rgba4
- RGBA チャンネル (16 bpp) 当たり 4 bit です。
- rgb5a1
- RGB チャンネル当たり 5 bit であり、 1 bit の透過チャンネルです (16bpp)。
- rgb565
- それぞれ、赤色 (R) は 5 bit、緑色 (G) は 6 bit、および青色 (B) は 5 bit から構成されている RGB です (16 bpp)。この形式には透過色 (A) チャンネルはありません。
- rgb10a2
- RGB チャンネル当たり 10 bit であり、 2 bit の透過チャンネルです (32bpp)。
- rgba16f
- チャンネルあたり 16 bit の浮動小数点を使用した RGBA です(64 bpp)。色の範囲値は [-65504, +65504] まで選択することができます。
- rgba32f
- チャンネルあたり 32 bit の浮動小数点を使用した RGBA です(128 bpp)。
- rg11b10f
- 浮動小数点を使用した RGB であり赤色および緑色チャンネルは 11 bit であり、青色チャンネルは 10 bit (32bpp) です。透過チャンネルはありません。色の値の範囲は [0, +65024] までを選択することができます。
- srgb
rgba8
と同じですが、 Canvas は sRGB 色空間として解釈されます。 Canvas へ描画されたものは全て線形 RGB から sRGB へ変換されます。 Canvas 描画(またはシェーダーにて使用される)時に、 sRGB から 線形 RGB へ復号化されます。これは sRGB による符号化において、さらに深い暗色に対しては線形 RGB よりもっと多くの精度があるため、ガンマ補正表示を行う場合に、色の帯域を削減します。
- r8
- 単一チャンネル (赤色の成分) 形式です (8 bpp)。
- rg8
- チャンネル (16 bpp) 当たり 8 bit の 2 チャンネル (赤色と青色の成分) 形式です。
- r16f
- 浮動小数点による単一チャンネル形式 (16 bpp)。色の値は [-65504, +65504] の範囲までです。
- rg16f
- チャンネル (32 bpp) 当たり 16 bit の浮動小数点による 2 チャンネル形式です。色の値は [-65504, +65504] の範囲までです。
- r32f
- 浮動小数点による単一チャンネル形式 (32 bpp)。
- rg32f
- チャンネル (64 bpp) 当たり 32 bit の浮動小数点による 2 チャンネル形式です。
注釈
16 bpp RGB および RGBA 形式は 32 bpp RGBA 形式と比較すると VRAM 消費量は約半分になりますが、通常よりも著しく低品質です。
ピクセルシェーダーとの組み合わせ時、 HDR / 浮動小数点形式は非常に有用です。ブルームによる配色マップ化された HDR といったエフェクトは遂行することができ、またはキャンバスへ正常なものを描画する限りカスタムシェーダーにて使用される位置といったもので Canvas へ任意の配色ではないデータを格納するために使用することができます。
上級者向けの話題ですが、色空間は混同しやすいので、ガンマ補正表示を行う場合は sRGB 形式のみ使用すべきです。これが必要かどうかわからない場合は、避けたいと思うかもしれません。ガンマ補正レンダリングに関する詳しい情報は ここ、ここ、あと ここをお読み下さい。
全てのシステムで各形式に対応しているとは限りません。 Canvas の作成前に love.graphics.getCanvasFormats を使用して確認してください。
一般に、 rgba8
, rgba4
および rgb5a1
は全てのシステムで対応しています。同じく rgb10a2
は全てのデスクトップ・プラットフォームで対応しています。
通常の単一または 2 チャンネル形式 (r8
および rg8
) は、 srgb
形式と同じく、 OpenGL 3 以降 / DirectX 10 以降を扱えるデスクトップシステムのグラフィックス・カード (nvidia GeForce 8000 series シリーズ以降、 ATI/AMD HD 2000 シリーズ以降、および Intel HD 2000 シリーズ以降) および OpenGL ES 3 を扱えるモバイル機器に搭載されている GPU で対応しています。
浮動小数点形式 (rgba16f
, rgba32f
, rg11b10f
, r16f
, rg16f
, r32f
, and rg32f
) は OpenGL 3 を扱えるデスクトップシステムのグラフィックス・カード、および OpenGL ES 3 を扱えるモバイル機器で対応しています。チャンネル当たり 32bit の浮動小数点形式はモバイル機器において滅多に対応していません。
rgb565
は多くの場合において OpenGL ES に対応したモバイル機器、または非常に新しいデスクトップ OpenGL ドライバでのみ対応しています。
関連
- love.graphics (日本語)
- love.graphics.getCanvasFormats (日本語)
- love.graphics.newCanvas (日本語)
- Canvas:getFormat (日本語)