love.graphics.isGammaCorrect (日本語)
LÖVE 0.10.0 から使用可能 |
この関数は以前のバージョンでは非対応です。 |
ガンマ補正表示の対応状況および有効かどうかを取得します。これは love.conf で t.gammacorrect = true
を設定することで有効化できます。
すべてのデバイスがガンマ補正表示に対応しているわけではありません。非対応の場合は自動的に無効化を行い本関数では false を返します。この機能はデスクトップ・システムでは OpenGL 3 / DirectX 10 に対応したグラフィックスカード、および OpenGL ES 3 を利用できる iOS デバイスで対応しています。
関数
概要
gammacorrect = love.graphics.isGammaCorrect( )
引数
なし。
返値
注釈
ガンマ補正表示の有効時は、多くの関数とオブジェクトで混合色とシェーダー演算に対する数学上は正しい sRGB および 線形 RGB 間での自動色変換を行います (有効ではない場合)。
- 色は love.graphics.setColor, love.graphics.clear, および Shader:sendColor に渡されると自動的に sRGB から 線形 RGB へ変換されます。
- 色の設定において SpriteBatch, テキストにおける文字ごとの色, ParticleSystem, 複数点における点ごとの色, 標準的な Mesh, および カスタム Mesh で属性名 "VertexColor" を使用するとオブジェクト描画時にsRGB から 線形 RGB へ自動変換されます。
linear = true
フラグを設定せずに Image を作成する場合は、 Image の描画時 (および Shader にあるピクセルを取得する場合) に sRGB から線形 RGB へ色を自動変換します。
- 画面に描画されものすべては線形 RGB で混交が行われるため、その結果として画面で表示する場合は sRGB へ変換されます。
- "normal" または"srgb" CanvasFormat を使用する Canvas では線形 RGB 混合された内容を有するため、その結果は描画時に sRGB で Canvas を記録します。 Canvas 自体を描画する時はピクセルの色は Image と同じ方法で sRGB から線形 RGB へ変換されます。Canvas のピクセルデータは sRGB は "rgba8"との深い暗色による比較に対して記録されるようにするためにより高い精度を考慮をしてください。
ガンマ補正表示有効時は二つの例外を除いて、ほとんどの変換は自動処理されるため、自分で書いたコードでは sRGB および 線形 RGB の色返還に関して心配する必要はありません:
- uniform / extern 変数またはその他の変数を有している Shader が色に対して使用されることが示されているものの、 Shader:sendColor で使用されない場合。
両方の場合において、 love.math.gammaToLinear は Lua コードで色値を線形 RGB へ変換するために使用できます。または、シェーダー関数 gammaCorrectColor
(または必要であれば unGammaCorrectColor
) をシェーダーのコード内で使用できます。これらのシェーダー関数はガンマ補正表示が実際に有効な場合"のみ"変換を行います。その場合はシェーダープリプロセッサ定義として LOVE_GAMMA_CORRECT
が設定されます。
ガンマ補正表示に関する詳細は ここ, ここ, さらに ここをお読みください。
関連
- love.graphics (日本語)
- Config Files (日本語)
- love.math.gammaToLinear (日本語)
- love.math.linearToGamma (日本語)
- Shader:sendColor (日本語)
そのほかの言語
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