Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 25

Thema: [DynRPG Plugin]Blending Mode

  1. #1

    [DynRPG Plugin]Blending Mode

    Und schon wieder gibt es einem neuen Plugin!
    Diesmal gibts Additives und Subtraktives Blending für euer Bilder.
    Dies wird gemacht indem ihr .add, .sub, .mul oder .ml2 vor das .png in euer bilder dateinamen hintun.

    Hier ein paar beispiele:

    Kein Blending und 50% Transparenz (zum vergleichen)


    Additive Blend Mode


    Subtraktives Blend Mode (+ ein kleines Additives Gespenst )


    Multiplicative Blend mode


    2x Multiplicative Blend mode


    Wichtig zu beachten ist das wenn ihr ein Blend Mode zum Bild tun, wird es nicht mehr möglich sein für diese bilder das zooming, rotation, wavern oder die farben zu manipulieren wie bei normalen Bilder. Gilt allerdings auch nur für die Bilder die ein .add , .sub, .mul oder .ml2 vor das .png haben.
    Und hier noch dem Download mit einem kleines beispiel's Projekt:
    Download

    Danke noch an Kyuu fürs hilfe dabei.
    Hab ich bestimmt auch zu wenig gesagt, aber auch viel Dank an Cherry für das SDK.

    Geändert von Kazesui (02.11.2015 um 15:26 Uhr)

  2. #2
    Ich bin entzückt!

    Wenns doch nur RPG2000-kompatibulös wäre. =/

    Nundenn, ein Schritt ist es schonmal. ^-^

    Zitat Zitat
    Wichtig zu beachten ist das wenn ihr ein Bild zum Additives oder Subtraktives Bild tun, wird es nicht mehr möglich sein für diese bilder das Transparenz, das zooming, rotation, wavern oder die farben zu manipulieren wie bei normalen Bilder. Gilt allerdings auch nur für die Bilder die ein .add oder .sub vor das .png haben.
    Ändert sich das noch irgendwann oder wird das so bleiben?

  3. #3
    Transparenz wird eventuell noch dazu kommen, der rest wird wahrscheinlich so bleiben

  4. #4
    Zitat Zitat von Kazesui Beitrag anzeigen
    [...] der rest wird wahrscheinlich so bleiben
    Aus welchem Grund?

  5. #5
    ~Bug??~
    Das Blending zeigt keine Wirkung mehr, sobald erneut ein Bild auf der gleichen ID wie zuvor geladen wurde.

    Dazwischen zu löschen ist eine Möglichkeit, es wieder zu aktivieren. Das würde allerdings zu Flackern führen.
    Wie es scheint, darf vorher gar nichts da sein. °-°'

  6. #6
    Wow, das ist einfach nur affemmegasuperduperkalifragilistigexpialigetisch im Quadrat

    Schade, dass ich mein AVoR nicht weiter patchen kann (ich kann die 1,08 da net verwenden :/), sonst würde ich heute das gesamte Spiel dafür überarbeiten.
    Naja, man kann nicht alles haben... aber eines schwöre ich heute, jetzt und hier... sollte ich wirklich micht irgendwann einmal an "Tantorlan" setzen (und nein,
    das ist nicht einmal ein geheimes Tech-Projekt... dafür existiert eigentlich nur die Ideen... seit Jahrzehnten schon bald XD), dann ist dieses PLUGIN mit
    Sicherheit das, was ich als erstes aufspielen werde.

    Super Arbeit, meine Wenigkeit zieht seinen imaginären Hut vor dir und ist gespannt, was Cherrys DynRPG noch so ermöglichen wird

  7. #7
    @MM Hatte kurz vergessen daß es möglich war so das Bild zu überschreiben. Sollte jetzt kein Problem mehr sein
    Dank Kyuu, ist jetzt auch Multiplikatives und 2x Multiplikatives Blending auch noch drin

    @Wieso nicht
    Das zoomen wusste ich nicht wie ich hinbekommen sollte, und ich fürchte auch dass das wavern und rotieren schnell schwierig werden kann effizient genug zu machen.
    Bei die farben müsste ich einiges rumprobieren wenn ich es ähnlich machen wurde wie beim maker, wäre aber evt. noch möglich. Müsste da noch schauen wie leicht/schwierig es wird.

  8. #8
    Wenn du Lust hast, kannst du dich hier ja nach weiteren umsehen:
    http://en.wikipedia.org/wiki/Blend_modes

    Ich benutze für meine vorbeleuchteten Map-Panoramen in Photoshop beispielsweise:
    - [Soft Light] mit Dunkelblau für nächtliches Aussehen
    - [Color Dodge] für farbige Lichtbilder
    - [Linear Light] für Schatten

    Wobei ich letztere wahrscheinlich nie als Extrabild einbinden würde.


  9. #9
    Kann es sein, dass Bilder, die zu groß sind, nach kurzer Zeit Fehler verursachen?
    Code:
    ---------------------------
    Kaze Blending
    ---------------------------
    Access violation in module 'DynBlending.dll' in with address 6630167E and offset 01206000 of type Read occured.
    ---------------------------
    OK   
    ---------------------------
    (3200x1200)
    Ich wollte mir einen Test einer Ganzbildschirmanimation etwas vereinfachen und hab
    alle Frames in das gleiche Pic getan, um sie dann per Variablen und MovePic an die
    richtige Position zu schieben, beim zweiten passiert allerdings das im Codeblock. ^-^

  10. #10
    "Sollte" nicht, kann aber sein. Habe nicht wirklich solch grossen Bilder ausprobiert.
    Ich werde mal daran schauen

  11. #11
    Jupp, gab ein Bug dabei @große Bilder.
    Sollte jetzt behoben sein

  12. #12
    Hrm, leider kein Quellcode dabei :-(

  13. #13
    Zitat Zitat von Corti Beitrag anzeigen
    Hrm, leider kein Quellcode dabei :-(
    Source
    Hoffentlich jetzt auch noch bugfrei

  14. #14
    Mir ist beim Überfliegen aufgefallen, dass du die Arrays im Destruktor nicht korrekt deallozierst:

    Code:
        ~ImageData()
        {
            delete r;
            delete g;
            delete b;
        }
    Korrekt wäre:

    Code:
        ~ImageData()
        {
            delete[] r;
            delete[] g;
            delete[] b;
        }

  15. #15
    Code:
    RPG::variables[7] = scriptLine->parameter(0);
    Wohl noch Debug-Code. Gehört dringend raus.

    Außerdem würd ich auch noch ein onInitTitleScreen machen und da die Blends löschen. Pictures können ja auch durch das Starten/Laden eines Spiels gelöscht werden!

    Und der von Kyuu angesprochene Bug gehört auch dringend gefixt da der ein Memory Leak verursacht, soweit ich weiß.

    Ach, Kazesui, Anregung: Ein Plugin um direkt 16-Bit-Bilder anzuzeigen! (Müsstest du dann halt selber laden, mit einer PNG-Lade-Bibliothek)

    Geändert von Cherry (20.08.2012 um 22:34 Uhr)

  16. #16
    Danke, gehört raus ja, und stimmt auch noch @Starten/Laden. Habe diesmal schon einiges vergessen, mist.
    Sollte natürlich auch
    Code:
    delete[]
    sein. Ist glaub ich compiler bedingt in genau diesem Fall (Habe kein leak entdeckt als ein paar tausend mal pictures erstellen und löschen lies), sollte aber trotzdem natürlich drin sein, weil man sich auf sowas nicht verlassen soll. Danke.

    Werde ich wohl zu meiner Liste hinfügen müssen @16-Bit-Bilder.

  17. #17
    Zitat Zitat von Kazesui Beitrag anzeigen
    Ist glaub ich compiler bedingt in genau diesem Fall (Habe kein leak entdeckt als ein paar tausend mal pictures erstellen und löschen lies), sollte aber trotzdem natürlich drin sein, weil man sich auf sowas nicht verlassen soll.
    Bei primitiven Datentypen wird der Speicher zwar offenbar auch mit delete freigegeben, aber - wie du selbst bemerkt hast - ist das alles andere als verlässlich und um genau zu sein sogar undefiniertes Verhalten.

    Spätestens sobald du Klassen mit RAII hast, d.h. allozierter Speicher wird in den Destruktoren wieder freigegeben, bekommst du einen Memory Leak, weil die Destruktoren nur mit delete[] aufgerufen werden.

    Problematisch kann es auch bei Operatorüberladung werden: http://www.parashift.com/c%2B%2B-faq...built-ins.html

    Geändert von Kyuu (21.08.2012 um 00:36 Uhr)

  18. #18
    Moin.

    Einfrieren bei Erase Picture. Doch kein Phänomen des Picture Pointer Patches.



    Haha, Quiz: Wie hab ich das hier gemacht? ^^

    Klicke auf die Grafik für eine größere Ansicht 

Name:	Bild4.jpg 
Hits:	106 
Größe:	209,4 KB 
ID:	17016

    Lösung:
    • Normales Bild ( 0% Transparenz ) auf id 14
    • fyr.add.png auf id 15


    Tipps:
    • Wichtig sind nicht die ids, sondern das add-Bild im Script nach dem anderen anzuzeigen

    Geändert von Corti (28.02.2013 um 19:06 Uhr)

  19. #19
    News update:
    Das Phänomen komischer Bildanzeigen hab ich in meiner Adaption des Scriptes gelöst.

    Code (Aus dem Sourcecode, den du mal veröffentlicht hast: ):
     
    bool onDrawPicture(RPG::Picture* picture)
    {
     ( ... ) 
     
            char* filename = picture->filename;
            std::string type;
            int i = -1;
            while(filename[++i] != '.'); // <--- Knackpunkt hier 
            int n = ++i + 3;
            for(; i < n; ++i)
                type += filename[i];
            if(!type.compare("add"))
            {
                active[id] = 1;
                blends[id] = new ImageData(picture);
                drawAdditive(id);
                return true;
            }
    ( ... )
     

    Dateinamen enden zumindest bei mir nicht mit ".png" sondern enthalten gar keinen Punkt wenn kein ".add" oder Ähnliches vorhanden ist. Der Screenshot oben kommt zustande wenn bei einem "non-blend"-Picture, ausserhalb des Bereiches des Dateinamens irgendwo ein Punkt gefolgt von gültigen drei Zeichen gefunden wird zB auf Index 15466 bei mir ;-)

  20. #20
    Danke! Ich hab tatsächlich nicht gemerkt daß der .png bei RPG::Picture::filename nicht dabei ist.
    Dieser Bug sollte nun behoben sein + es ist jetzt auch möglich mit der Transparenz rumzuspielen bei dem Blend Bilder.

    neuer source code

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •