Нужно создать CTL с цветовым преобразованием, которое обесцвечивает пару противоположных цветов.
Мой пример ниже работает: но не так, как ожидалось:
__DEVICE__ float3 squeeze_GM(float percentage, float R, float G, float B) {
float rOut = R - (((percentage/2) / 100) * R);
float gOut = G - ((percentage / 100) * G);
float bOut = B - (((percentage/2) / 100) * B);
return make_float3(rOut, gOut, bOut);
}
__DEVICE__ float3 transform(int p_Width, int p_Height, int p_X, int p_Y, float p_R, float p_G, float p_B){
float3 result = squeeze_GM(15, p_R, p_G, p_B);
return result;
}
Я хотел бы сжать зеленый и пурпурный, чтобы обесцветить эти цвета на определенный процент, переданный функции squeeze_GM
.
Есть ли у кого-нибудь подробности, как я могу получить это преобразование? На данный момент я думаю, что просто делаю значения RGB темнее на определенный процент. Нужно ли мне усреднять результаты R и B?