2013-04-25 77 views
0

目前,我正在使用HSV空間中的添加混合來進行着色效果。在HSV空間中添加diff值,將其添加到圖像紋理的各個像素以獲得所需的顏色效果。但是,這是談到了昂貴的片段着色器必須做兩個昂貴的轉換做加法如何在RGB空間中複製HSV值的添加/混合

  1. RGB - > HSV
  2. HSV此外
  3. HSV - > RGB

有一個更好的方法嗎?差異值將僅在HSV中提供。最後的顏色表示用RGB來繪製。

非常感謝,

薩克

+0

那麼,你是如何做這些轉換? – 2013-04-25 11:25:51

+0

互聯網上的標準轉換算法,http://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV http://www.cs.rit.edu/~ncs/color/t_convert.html – Sak 2013-04-25 12:42:01

+0

有很多方法實施這些公式,例如在案件區分的數量方面。所以可能有辦法提高那裏的表現。儘管如此,我很不確定色調可能具有的意義。我可以理解,如果你稍後分裂,計算平均值,但分割色調沒有太大意義,因爲色調只是定義爲模360°。 – MvG 2013-04-25 14:59:14

回答

1

您可以通過使用RGB彩色矩陣得到HSV操作類似的效果。例如,圍繞r = g = b軸的旋轉類似於色調添加。 (在色調通道中添加x度類似於在r = g = b的RGB範圍內旋轉x度。)沿着r = g = b軸的平移類似於值相加。 (我相信將x添加到值通道​​應該類似於將r添加到所有r,g和b)。垂直於r = g = b軸的均勻比例類似於飽和度加法。我不知道在我的頭頂上添加了x到RGB飽和度和縮放比例之間的確切轉換,但是解決這個問題不應該太困難。您應該能夠將這些矩陣組合爲一個矩陣,並將其作爲單個矩陣乘以RGB值。

+0

感謝@ user1118321的建議,有沒有這個概念的參考?一個工作代碼將會非常有用。 – Sak 2013-04-26 10:31:37

+0

[本網站上有一個很好的例子](http://www.graficaobscura.com/matrix/),它甚至包括如何在做色調旋轉時保持亮度。 – user1118321 2013-04-27 01:04:37