如何在RGB空间中复制HSV值的添加/混合

时间:2013-04-25 10:37:44

标签: math image-processing graphics opengl-es opengl-es-2.0

目前,我正在使用HSV空间中的添加剂混合进行着色效果。在HSV空间中具有diff值,该值被添加到图像纹理的各个像素以获得所需的颜色效果。但由于片段着色器必须进行两次昂贵的转换才能进行添加,因此结果很昂贵

  1. RGB - > HSV
  2. HSV添加
  3. HSV - > RGB
  4. 有更好的方法吗? diff值仅以HSV提供。最终的颜色表示采用RGB绘制。

    非常感谢,

    葡激酶

1 个答案:

答案 0 :(得分:1)

通过使用RGB中的颜色矩阵,您可以获得与HSV操作类似的效果。例如,围绕r = g = b轴的旋转类似于色调添加。 (在色调通道中添加x度类似于RGB中围绕r = g = b的x度旋转。)沿r = g = b轴的平移类似于值相加。 (我认为在值通道中添加x应该类似于向所有r,g和b添加x。)并且垂直于r = g = b轴的均匀刻度类似于饱和度相加。我不知道在脑中添加x到饱和度和RGB缩放之间的确切平移,但它不应该太难以解决。您应该能够将这些矩阵组合成单个矩阵,并将其作为单个矩阵与RGB值相乘。