Obliczenie koloru

0

Witam Bracia i Siostry w kodzie (@kate87 nie czytaj :P)
Pomóżcie mi, jak ugryźć następujące zagadnienie:

  • mam sobie jakieś szare tło - ot takie jak tutaj (to te drabinki z białymi ramkami):
    title
  • chcę na tym tle wyświetlić częściowo przezroczysty prostokąt tak, żeby jego wynikowy kolor wyniósł R=69, G=76, B=83. Co mam ustawić jako Rr, Gr, Br, Ar (r-rectangle)?
0

Ale wynikowy kolor zależy oczywiście od tego co nakładasz, na co i jakie dasz Alfa, nie?

0

Najłatwiej oczywiście Rr=69, Gr=76, Br=83, Ar=max :) -- ale nie będzie "częściowo przezroczysty". :)

2

I wzór chyba będzie taki (dla każdego kanału RGB osobno):
W = A*D + (1-A)*T,
gdzie wszystko jest w procentach, a W, D, A i T to odpowiednio wynikowy kolor, kolor dokładany, alfa dokładana i kolor tła.

No i z tego może sobie wyprowadzić co zechcesz -- w szczególności D (o co chyba pytasz), o ile przyjmiesz z góry A, i jeśli masz już W i T.

1

No to cały układ: :)

Wr = A*Dr + (1-A)*Tr
Wg = A*Dg + (1-A)*Tg
Wb = A*Db + (1-A)*Tb

gdzie Wr to wynikowy kanał R (analogicznie Wb i Wg), A to alfa nakładanego piksela, Dr to nakładany kanał R (analogicznie Dg i Db) oraz Tr to kanał R tła( analogicznie Tb i Td).

Jasne teraz? :)

0

Hmmmm...efekt jednak nie jest zgodny z oczekiwanym.
Kolorystyka wynikowa.PNGAS7-D-HT 2xPPC + 2xAC5 + 2xSRM6 + 3xML + 2xSmall Laser + ETTS3.png

Pytanie, czy to ja się nie kopsnąłem. Ale po kolei:

  • z przeształcenia wzoru W = A * D + (1 - A) * T => D = (W - (1 - A) * T) / A
  • tło to Qt::Darkgrey zdefiniowane jako 128, 128, 128 czyli T = 128
  • alpha przyjąłem 80%, zatem A = 255*0,8 = 204
  • wyliczony powyższym wzorem kolor to QColor color = QColor(54, 63, 72, 204); 72 zaokrągliłem bo wyszło 71,75
1

A możesz w programie graficznym (jakimś GIMPie czy czymś) pokazać o jaki efekt Ci chodzi dokładnie? Bo może nie do końca rozumiem...

0

Chodzi mi o efekt, żeby końcowy kolor części oznaczonych na szaro, czyli te wszystkie heatsinks, gyro, cockpit mod itd był taki sam w moim programie jaki jest w załączonym zrzucie ekranu z gry. Tyczy się to też części kolorowych, ale jak się rozkmini poprawny wzór dla elementów szarych to i te kolorowe też się wyliczy.

0

W zrzucie z gry: 69/76/83, w Twoim: 69/76/84 -- nie pasuje? :)

0

No właśnie to mnie wprowadza w osłupienie - matematycznie się zgadza, ale wizualnie ni kija - więc w czym tkwi haczyk??

3
MasterBLB napisał(a):

No właśnie to mnie wprowadza w osłupienie - matematycznie się zgadza, ale wizualnie ni kija - więc w czym tkwi haczyk??

A, bo otoczenie! :)

Na ciemnym tle wydaje się jaśniej, na jasnym -- ciemniej. Znany efekt. :)

1
koszalek-opalek napisał(a):
MasterBLB napisał(a):

No właśnie to mnie wprowadza w osłupienie - matematycznie się zgadza, ale wizualnie ni kija - więc w czym tkwi haczyk??

A, bo otoczenie! :)

Na ciemnym tle wydaje się jaśniej, na jasnym -- ciemniej. Znany efekt. :)

1

W istocie, macie rację Bacia:
Kolorystyka wynikowa 2.png
Mmkey, to będą plusy i ptaszek dla Brata koszalka-opalka, a ja sam pogógluję za wzorami matematycznymi do rozjaśniania danego odcienia koloru aby zniwelować efekt iluzji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1