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

Math 如何在RGB空间中复制HSV值的添加/混合,math,image-processing,graphics,opengl-es,opengl-es-2.0,Math,Image Processing,Graphics,Opengl Es,Opengl Es 2.0,目前,我正在做一个着色效果使用添加剂混合在HSV空间。在HSV空间中具有一个diff值,该值被添加到图像纹理的各个像素中,以获得所需的颜色效果。但这是昂贵的,因为片段着色器必须进行两次昂贵的转换才能进行加法 RGB->HSV HSV添加 HSV->RGB 有更好的方法吗?仅在HSV中提供差异值。最终的颜色表示是用RGB绘制的 非常感谢, Sak通过在RGB中使用颜色矩阵,可以获得与HSV操作类似的效果。例如,围绕r=g=b轴的旋转类似于色调添加。(在色调通道中添加x度类似于围绕RGB中的r=g=

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

  • RGB->HSV
  • HSV添加
  • HSV->RGB
  • 有更好的方法吗?仅在HSV中提供差异值。最终的颜色表示是用RGB绘制的

    非常感谢,


    Sak

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

    那么,您是如何进行这些转换的呢?internet上提供的标准转换算法,有许多方法可以实现这些公式,例如,根据大小写区分的数量。因此,可能有一些方法可以提高性能。不过,我很不确定添加色调可能有什么意义。我可以理解,如果你以后要除法,计算平均值,但除法色调没有太大意义,因为色调仅定义为360度模。谢谢@user1118321的建议,这个概念有参考吗?有一个很好的例子,它甚至包括如何在进行色调旋转时保持亮度。