2013-04-25 2 views
0

현재 HSV 공간에서 첨가제 혼합을 사용하여 착색 효과를 수행하고 있습니다. 이미지 텍스처의 개별 픽셀에 추가되는 HSV 공간의 diff 값을 사용하여 원하는 색상 효과를 얻으십시오. 그러나이 조각 셰이더가 추가에게RGB 공간에서 HSV 값의 추가/혼합을 복제하는 방법

  1. RGB 할 두 가지 비용이 많이 드는 변환을 할 수있다로 비싼 밖으로 돌고 -> HSV
  2. HSV 추가
  3. HSV -> RGB

이 작업을 수행하는 더 좋은 방법이 있습니까? diff 값은 HSV에서만 제공됩니다. 그리고 최종 색 표현은 RGB로 그립니다.

많은 감사,

Sak 적절

+0

글쎄, 어떻게 그 전환을하고 있습니까? –

+0

표준 변환 알고리즘은 인터넷에서 찾을 수 있습니다. http://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV http://www.cs.rit.edu/~ncs/color/t_convert.html – Sak

+0

이 수식을 구현하십시오. 대소 문자 구분의 관점에서 따라서 성능을 향상시킬 수있는 방법이있을 수 있습니다. 그래도 색상의 의미 추가가 가능할 지 확신 할 수 없습니다. 나중에 나눌 수 있다면 평균을 계산할 수 있지만 색상을 분할하면 360 °로만 정의되기 때문에 너무 분별력이 없다는 것을 이해할 수 있습니다. – MvG

답변

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 값에 의해 단일 행렬 곱셈으로 구현할 수 있어야합니다.

+0

제안에 대해 감사합니다. @ user1118321,이 개념에 대한 참조가 있습니까? 작업 코드가 실제로 도움이 될 것입니다. – Sak

+0

[이 웹 사이트] (http://www.graficaobscura.com/matrix/)의 좋은 예가 있으며 색상을 바꾸면서 휘도를 유지하는 방법도 포함됩니다. – user1118321

관련 문제