static float3 rgb2yuv(float3 rgb) {
float3x3 kRGBtoYUVMatrix = float3x3(
0.29900, 0.58700, 0.11400,
-0.14713, -0.28886, 0.43600,
0.61500, -0.51499, -0.10001
);
return transpose(kRGBtoYUVMatrix) * rgb;
}
static float3 yuv2rgb(float3 yuv) {
float3x3 kYUVtoRGBMatrix = float3x3(
1.00000, 0.00000, 1.13983,
1.00000, -0.39465, -0.58060,
1.00000, 2.03211, 0.00000
);
return transpose(kYUVtoRGBMatrix) * yuv;
}
Post #156
118
И перевод для самых ленивых (не забывайте транспонировать матрицы по необходимости, ибо в метале и гл-е они лежат по столбцам)
- 👍 3