hex dezimal: abdunkeln?



  • noch ne frage wegen hex:
    realAlpha
    -> wert zwischen 0 und 1, der den alphawert darstellen soll...
    Red/Green/Blue
    -> hintergrundfarben
    RedE/GreenE/BlueE
    -> Überlagernde Farben

    Red = ?
    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...


  • Mod

    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


  • Mod

    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);
    

  • Mod

    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.


  • Mod

    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


  • Mod

    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


  • Mod

    dann denk nach bevor du rotz postest.

    rapso->greets();



  • rapso schrieb:

    dann denk nach bevor du rotz postest.

    rapso->greets();

    Schon klar.

    Bye, TGGC


  • Mod

    TGGC schrieb:

    rapso schrieb:

    dann denk nach bevor du rotz postest.

    rapso->greets();

    Schon klar.

    Bye, TGGC

    späte einsicht, aber ist mehr als man von dir erwarten kann .

    rapso->greets();



  • rapso schrieb:

    [url=http://www.google.com/search?hl=en&lr=&q=operator+overloading+c%2B%2B&btnG=Search]

    a) Du willst dich rausreden, weil du Unsinn geschrieben hast.
    b) Der überladene Operator würde genau das "behind the scenes" rechnen müssen
    c) Wenn 256 wegen der Fixpunktschreibweise für 1.0 steht, dann stände da nur /1 und das Ergebnis wäre gleich

    Achtung Kinder hier könnt ihr noch was Lernen. 😎

    Bye, TGGC


  • Mod

    TGGC schrieb:

    rapso schrieb:

    [url=http://www.google.com/search?hl=en&lr=&q=operator+overloading+c%2B%2B&btnG=Search]

    a) Du willst dich rausreden, weil du Unsinn geschrieben hast.
    b) Der überladene Operator würde genau das "behind the scenes" rechnen müssen
    c) Wenn 256 wegen der Fixpunktschreibweise für 1.0 steht, dann stände da nur /1 und das Ergebnis wäre gleich

    Achtung Kinder hier könnt ihr noch was Lernen. 😎
    Bye, TGGC

    a) wenn ich ohne datentypen angaben pseudocode schreibe, schreibe ich weder mit float noch mit int oder fixpoint und wenn jemand meint daraufhin interner reininterpretieren zu müssen die nicht exisiteren, kann ich ihm sagen wie ich das wirklich bei mir im source gelöst habe.
    b) was der operator behind the scenes macht, dürfte für das verständniss des pseudocodes absolut egal sein, sofern die funktionalität erhalten bleibt.
    c) wenn du ein bisschen veständniss vom OOP hättest, wüstest du dass man von außen nicht RAW-werte reinsätzt, sonst würde meine zZ auf 1:19:12 eingestellte klasse mit deinem wert genau so nen rotz bauen wie du hier postest.

    und falls es TGGC jetzt nicht versteht kinder, erklärt es ihm bitte damit er sich hier nicht mittels weiterer dümmmlicher annahmen total deklassiert.

    rapso->greets();



  • Jaja red dich nur weiter raus. Klar interessiert es, was genau dein Operator macht. Dein Argument war ja Geschwindigkeit, nicht Verständnis.

    Bye, TGGC


Anmelden zum Antworten