ガンマ補正

参考:

ガンマ補正 – Wikipedia

概要

参考:

ガンマ補正のうんちく – Qiita

ガンマについて | コンポジゴク

ガンマ補正 | T. Fujiwara

リニアとガンマとグラデーション | CGcompo

ガンマが分かりにくいから調べてまとめてみた | Hiroki Kamada

ディスプレイの調整

参考:

曲線美が色再現性の決め手になる?液晶ディスプレイのガンマを知ろう | EIZO株式会社

ディスプレイの色校正について | 鯉田孝和

sRGB

参考:

「sRGB のガンマは 2.2」ってのは本当? | イメージスキャナ開発室

ワークフロー

参考:

分かる!リニアワークフローのコンポジット | コンポジゴク

リニアワークフローとガンマ補正について | Blender Cycles memo

カラーマネージメント/シーンリニアワークフローを Blender で学ぶ | CGcompo

計算

近似

最も簡単な近似は、べき乗を使うことである。但し、輝度が小さく、画像が暗い場合には誤差が生じるので注意する。

近似的にガンマ補正を適用する。

rgb_value = pow(linear_value, 1.0 / 2.2)

近似的にリニア値を求める

linear_value = pow(rgb_value, 2.2)

コード:

Gamma Correction.hlsl – VoidXH/Cinema-Shader-Pack – GitHub

参考:

ガンマとは ? | Shade3D Knowledge Base

ガンマ 2.2 と sRGB の違い | Shade3D Knowledge Base

線形 RGB 値へのガンマ補正の適用 | MathWorks

sRGB Approximations for HLSL | Chilliant

HDR

参考:

よくわかる、HDR 徹底解説!ガンマカーブの違い | EIZO 株式会社

HDR テクスチャから SDR テクスチャへのトーンマップ | 下町のナポレオン

OpenGL

float Convert_sRGB_FromLinear (float linear_value)
{
    return linear_value <= 0.0031308f ?
        linear_value * 12.92f :
        powf (linear_value, 1.0f / 2.4f) * 1.055f - 0.055f;
}

float Convert_sRGB_ToLinear (float rgb_value)
{
    return rgb_value <= 0.04045f ?
        rgb_value / 12.92f :
        powf ((rgb_value + 0.055f) / 1.055f, 2.4f);
}Code language: Arduino (arduino)

(出典Stack Overflow

参考:

Gamma Correction | LearnOpenGL

What is the correct gamma correction function? – Stack Overflow

HLSL

vec3 LinearToSRGB(vec3 c)
{
    vec3 low  = c * 12.92;
    vec3 high = (pow(c, 1.0 / 2.4) * 1.055) - 0.055;
    return (c <= 0.0031308) ? low : high;
}

vec3 SRGBToLinear(vec3 c)
{
    vec3 low  = c / 12.92;
    vec3 high = pow((c + 0.055) / 1.055, 2.4);
    return (c <= 0.04045) ? low : high;
}Code language: Arduino (arduino)

(出典LIGHT11

コード:

SRGBToLinear – Colors.hlsl at 32c3155 · Unity-Technologies/PostProcessing – GitHub

LinearToSRGB – Colors.hlsl at 32c3155 · Unity-Technologies/PostProcessing – GitHub

参考:

色空間設定がガンマでもリニアでも同じ計算結果を示すシェーダを書く方法 | LIGHT11

記事をシェアする:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA