D3DXColorAdjustSaturation
カラーの彩度値を調節します。
D3DXCOLOR *
D3DXColorAdjustSaturation(
D3DXCOLOR * pOut,
CONST D3DXCOLOR * pC,
FLOAT s
);
パラメータ
- pOut
演算結果を表す D3DXCOLOR 構造体へのポインターです。 - pC
演算対象の D3DXCOLOR 構造体へのポインターです。 - s
彩度値です。このパラメーターは、グレースケールに変換されたカラーと、元のカラーの pC との間を線形的に補間します。s の値に制限はありません。s が 0 の場合、グレースケール カラーが返されます。s が 1 の場合、元のカラーが返されます。
戻り値
彩度調整の結果を示す D3DXCOLOR 構造体へのポインターを返します。
解説
入力アルファ チャンネルは修正なしで出力アルファ チャンネルにコピーされます。
この関数の戻り値は pOut パラメーターに返される値と 同じです。このため、この関数は他の関数のパラメーターとして使用できます。
次に示す例のように、この関数は非飽和カラーと特定のカラーとの間で、D3DXCOLOR 構造体の赤 (red)、緑 (green)、青 (blue) のカラー成分を補間します。
// Approximate values for each component's contribution to luminance. // Based upon the NTSC standard described in ITU-R Recommendation BT.709. FLOAT grey = pC->r * 0.2125f + pC->g * 0.7154f + pC->b * 0.0721f; pOut->r = grey + s * (pC->r - grey);
s が 0 より大きく 1 より小さい場合、彩度が減少します。s が 1 より大きい場合、彩度が増加します。
グレースケール カラーの計算式は次のとおりです。
r = g = b = 0.2125*r + 0.7154*g + 0.0721*b
要件
ヘッダー: D3dx9math.h 宣言
ライブラリ: D3dx9.lib 内容