Top > エフェクト-色調補正 エフェクト-色調補正 †画面の色味を補正するもの。 モノクロ †RGB色空間をYCbCr色空間に変換。 const float3 RGBtoY = {0.299, 0.587, 0.114}; // RGBから輝度Yに変換 float y = dot(hrgb, RGBtoY); // 輝度YをRGBカラーに適用し、モノクロ化 return float4((float3)y, hrgb.a); サンプル: セピア †モノクロ化した後に、Cb, Cr に適当な数値をいれて、再度RGBに戻す。 const float3 RGBtoY = {0.299, 0.587, 0.114}; float3x3 YCbCrtoRGB = { {1.0, 0.00000, 1.40200}, {1.0, -0.34414, -0.71414}, {1.0, 1.77200, 0.00000}, }; // RGBから輝度Yに変換 // Cb Crには適当な値を入れる float3 YCbCr; YCbCr.x = dot(hrgb, RGBtoY); YCbCr.y = -0.091; YCbCr.z = 0.056; // YCbCrからRGBへ復元 return float4(mul(YCbCrtoRGB, YCbCr), hrgb.a); サンプル: ネガポジ反転 †色を反転。 float4 ret; ret.r = 1.0 - hrgb.r; ret.g = 1.0 - hrgb.g; ret.b = 1.0 - hrgb.b; ret.a = hrgb.a; return ret; サンプル: ガンマ補正 †ガンマ補正の式:out = color ^ (1.0f / gamma) return float4(pow(abs(hrgb.rgb), (float3)(1.0 / gamma)), hrgb.a); サンプル: コントラスト調整 †明るい所は明るく、暗い所は暗く強調する。 return float4(hrgb.rgb * (1.0 + contrast) / 1.0 - contrast * 0.5, hrgb.a); サンプル: |