Odtwórz kolor HSV za pomocą trybów mieszania

Pracuję nad aplikacją, która tworzy obrazy, których barwa, nasycenie i wartość zmieniają się zgodnie z różnymi parametrami. Ze względu na wydajność sensowne byłoby osobne renderowanie odcienia, nasycenia i wartości składników, a następnie łączenie ich w tryb mieszania w stylu Photoshop (mnożenie, nakładanie, ekran, odcień itp.).

Wiem już, jak to zrobić dla obrazów RGB: podziel każdy kanał na własny czerwony, zielony lub niebieski obraz z wartościami od przezroczystego do koloru tego kanału. Ułóż je razem na czarnym tle i ustaw ich tryb mieszania na ekran, a hej presto, masz swój kolorowy obraz:

Jak mam to zrobić z obrazem zdefiniowanym przez wartości HSV? Moja aplikacja często zmienia jeden z tych kanałów bez zmiany pozostałych dwóch, co przyspieszyłoby renderowanie, gdybym mógł skomponować istniejące obrazy na GPU zamiast renderować zupełnie nowy obraz za każdym razem, gdy coś się zmienia.

Oto przykład:

W tym przykładzie odcień waha się od 0º do 360º wokół obwodu, nasycenie waha się od 0% do 100% od środka do krawędzi, a jasność (V) waha się od 0% do 100% na całym obwodzie. Jest to typowy rodzaj obrazu tworzonego przez moją aplikację. Czy istnieje kombinacja typowych trybów mieszania, których można użyć do stworzenia tych kanałów osobno i łączenia ich w matematycznie doskonały sposób?

questionAnswers(1)

yourAnswerToTheQuestion