hex dezimal: abdunkeln?
-
pixartist schrieb:
TGGC schrieb:
Multiplizieren mit Faktor < 1.
Bye, TGGC
nope geht nicht verfälscht die farben aufs extremste (augenkrebs)
Dann machst du was falsch.
-
Alternative:
RGB->HLSDann kannst Saettigung und Helligkeit ganz bequem getrennt von Farbe bearbeiten.
-
Lieber YUV als HLS, da ist die Transformation etwas weniger rechenintensiv.
-
Und am Ende kommt doch wieder das gleiche wie bei Multiplikation raus...

Bye, TGGC
-
noch ne frage wegen hex:
realAlpha
-> wert zwischen 0 und 1, der den alphawert darstellen soll...
Red/Green/Blue
-> hintergrundfarben
RedE/GreenE/BlueE
-> Überlagernde FarbenRed = ? Green = ? Blue = ?wie kann ich daraus eine transparenz erstellen, sprich...die überlagernde farbe entsprechend des alpha wertes auf der hintergrundfarbe darstellen ( alpha 0 -> nurnoch hintergrund sichtbar)
? danke!
-
Hintergrundfarbe und Alphafarbe linear interpolieren mit dem Alphawert als Gewicht.
Bye, TGGC
-
TGGC schrieb:
Hintergrundfarbe und Alphafarbe linear interpolieren mit dem Alphawert als Gewicht.
Bye, TGGC
linear interpolieren = ?
-
pixartist schrieb:
TGGC schrieb:
Hintergrundfarbe und Alphafarbe linear interpolieren mit dem Alphawert als Gewicht.
Bye, TGGC
linear interpolieren = ?
http://de.wikipedia.org/math/09ec403c6b567d82ef9242b0f5915185.png
sagt mir jetzt nix, ich hab doch nur 2 werte...
-
newRed = Red1+Factor*(Red2-Red1);rapso->greets();
-
rapso schrieb:
newRed = Red1+Factor*(Red2-Red1);rapso->greets();
sooo leicht und auch so logisch...
hätt ich ma drauf kommen können
danke
-
bitte private provokationen und streitereien usw. per mail lösen, das hier ist der falsche forums-unterbereich dafür und damit das nicht ausartet lösch ich das.
rapso->greets();
-
Alpha-Blending über Multiplikation mit einem Gleitkommawert zu lösen, ist äusserst ineffektiv!
Folgendes ist zumindest bei mir 10x schneller im Release-Modus.
Opacity = 128; InvOpacity = 255 - Opacity; newRed = (((Red2 * Opacity) + (Red1 * InvOpacity)) >> 8); newGreen = (((Green2 * Opacity) + (Green1 * InvOpacity)) >> 8); newBlue = (((Blue2 * Opacity) + (Blue1 * InvOpacity)) >> 8);
-
2 multiplikationen pro channel sind sehr ineffektiv, mach es lieber mit der subtraktionsmethode wie es sonst jeder macht, das dürfte fast doppelt so schnell werden.
rapso->greets();
-
rapso schrieb:
2 multiplikationen pro channel sind sehr ineffektiv, mach es lieber mit der subtraktionsmethode wie es sonst jeder macht, das dürfte fast doppelt so schnell werden.
rapso->greets();
du redest jetzt nicht von deine geposteten formel oder? dort rechnest du mit gleitkomma. ich rechne mit ganzzahlen und da fallen 2 multiplikationen nicht ins gewicht.
-
Sunday schrieb:
rapso schrieb:
2 multiplikationen pro channel sind sehr ineffektiv, mach es lieber mit der subtraktionsmethode wie es sonst jeder macht, das dürfte fast doppelt so schnell werden.
rapso->greets();
du redest jetzt nicht von deine geposteten formel oder? dort rechnest du mit gleitkomma. ich rechne mit ganzzahlen und da fallen 2 multiplikationen nicht ins gewicht.
ich rechne mit fixpoint werten.
rapso->greets();
-
Also eher
newRed = Red1+Factor*(Red2-Red1)/256;Bye, TGGC
-
TGGC schrieb:
Also eher
newRed = Red1+Factor*(Red2-Red1)/256;Bye, TGGC
nein, damit käme nur bullshit raus.
rapso->greets();
-
Laber nich.
Bye, TGGC
-
dann denk nach bevor du rotz postest.
rapso->greets();
-