0

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

  1. RGB -> HSV
  2. HSV添加
  3. HSV -> RGB

有一个更好的方法吗?diff 值将仅在 HSV 中提供。并且最终的颜色表示是在 RGB 中绘制。

非常感谢,

萨克

4

1 回答 1

1

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

于 2013-04-26T04:25:59.287 回答