Jump to content
Rpg²S Forum

Thejuster

Utenti
  • Posts

    626
  • Joined

  • Last visited

Posts posted by Thejuster

  1. Riprendo anche questo questo e questo topic.

    Per chi si ricorda di Mire, è un progetto su cui ho veramente lavorato per tantissimi anni.

    Avevo abbandonato il progetto principalmente per due motivi.

    1° community assente.
    Seppure molto scaricato, conosciuto e visualizzato sul web, poche persone effettivamente si interessavano al progetto.
    Magari, proprio perché pieno di bug, crash all'avvio senza motivo.
    o perché era fortemente legato a windows.

    2° Risorse
    Nonostante abbia tentato di chiedere a grafici di contribuire anche per una piccola parte alla realizzazione di risorse per Mire, questo era un punto di blocco forte per il motore stesso.
    Non potendo usare risorse grafiche dal web, non avendo una propria libreria, Un tool senza risorse risulta praticamente inutile.

     

    Con l'avvento del cambio di licenza da parte di degica e co, Che hanno reso le loro risorse utilizzabili su diversi motori e non più legati a rpgmaker, ho finalmente potuto riprendere il progetto.
     

    Rispolverando il sorgente però era stra-pieno di problemi.
    Senza contare le librerie ormai obsolete e non più compatibili sui sistemi moderni.
    Ho dunque riscritto l'editor e l'engine.

    La maggior parte delle funzioni dell'engine le ho recuperate e ri-utilizzate.
    Anche perché riscrivere da 0 tutto quello che c'è dietro al motore è un impresa. Senza contare l'interprete interno (è quello il vero cuore).
    ed ecco le vere e sostanziali modifiche

     

    1) Riscritto completamente L'editor da C# a C++

    L'editor in precedenza era stato pensato in C#.
    Per comodità e facilità di sviluppo, ma meno portatile e meno potente.

    Ora l'editor è multipiattaforma, compreso l'engine stesso.
    Sia L'editor che L'engine funzionano su qualsiasi sistema operativo.
    Entrambi fanno uso delle OpenGL.

    Dal vecchio editor:


    8Eng6y.jpg

     

    Al nuovo Editor:

    VyB6D9.png

     

    Cosa è cambiato rispetto al vecchio Mire?

    Riscritte e riadattate le Luci per compatibilità da HLSL a GLSL
    Il motore si appoggia principalmente su SDL.

    Partiamo dal linguaggio di scripting.

    Javascript ES6:
    Mire supporta javascript standard ES6.
    Migliorato l'interprete ed aggiunto oggetti nativi.
    ad esempio:

    Quote

    let immagine =  Texture("Immagine.png");
    let rettangolo = Rectangle(10,10,100,100);
    let posizione = Vector2(100,100);

    ecc. ecc.


     

     

    Bloom: Aggiunto l'effetto Bloom che in anni passati era in test se non erro avevo postato già qualche screen molti anni fà, in caso contrario
    ecco la combinazione DeferredLight + Bloom

     

    AUupQx.png

     

    Baked ShadowMap: Tramite un algoritmo di raycast, vengono calcolati oggetti che entrano in contatto con la direzione della luce creando relativamente delle zone ombra visibili a runtime.

     

    hpTNXF.png

     

    Eventi Amtosferici:
    g8x+1j.png

     

    Nuova modalità di Eventi:
    In precedenza, era gestito via nodi.
    Ma visualizzando uno script enorme, diventava tutto confusionario.
    Quindi ho deciso di passare ad una modalità diversa utilizzando delle TAB stilizzate 

    0l5hHR.png

     

    Per il resto, spero che questa sia la volta buona per completare definitivamente l'engine.

  2. On 7/19/2025 at 11:10 AM, Lord Sesshoumaru said:

    Io devo essere l'unico fesso che non lo sa usare come si deve.

    Eccomi qui dopo un pò di tempo, finalmente trovo qualche minuto libero per scrivere un pò di aggiornamenti.
    Noi abbiamo risolto su discord.
    Principalmente il problema e proprio quello, bisogna giocare con i parametri al fin di ottenere il risultato sperato.
    Purtroppo il tool non fà miracoli, ma giocando con le palette, ed i vari filtri, si riesce ad ottenere il linea massima quello che si cerca.

     

    Per quando riguarda le novità, ho introdotto lo slice tool.
    Anche se il nome può ingannare, ma il realtà anziché dividere, tagliando porzioni da un'immagine e Copia / Incollando in un riquadro apposta che appare nei Tileset Editor ( Non nel Converter ) si può adattare una qualsiasi immagine alle dimensioni del tileset in uso.
    ad esempio:

    Ricopiamo questa casetta da un'immagine scava su google
    79%2BNPZ.png

     

    Dall'anteprima si nota che è sfasata, non allineata e più grande di quella che ci può servire.

    u0oBtW.png

     

     

    Il tool rimuove lo sfondo ( Con una tolleranza personalizzabile, utile anche quando sono presenti immagini jpg con artefatti ) e riposiziona / scala / ridimensiona l'immagine per adattarla al tileset.

    s0W2ic.png

     

    Quando siamo soddisfatti del risultato ci basta premere su OK e posizionare l'elemento sul tileset.

     

    imUHlg.png


    Ovviamente questo sempre in concomitanza con gli altri strumenti a disposizione per la manipolazione dell'immagine ( Pixelizer, Palette Processor, ecc. )

     

     

  3. Salve ragazzuoli ogni tanto mi faccio vivo hehe.
    Magari per aggiornarvi su qualche mio progetto o se trovo un topic interessante rispondo volentieri.

     

    Portavo un paio di aggiornamenti qua e là partendo sempre 
    dall'ormai completo "Pixelizer".

     

    Parto dalla feature principale introdotta.
    Come avevo accennato nel post precedente, con una manipolazione dei colori, potevano ottenere un effetto visivo stile old nintendo.

    Da qui poi, nasce l'introduzione delle palette.
    Tutti sappiamo cos'è una palette.

    All'interno dello strumento Pixelizer:

    Ar5+fV.png

     

    Si da un'immagine come input e si estraggono i relativi colori presenti
    realizzando una palette grafica.

    AFnxld.png

     

    Se notate 56 Colori, e perché i vecchi sistemi NES l'hardware seppur sopporta 256 colori, sfrutta palette da 56 colori.

    BN6Y1Z.png


    Possiamo inoltre, effettuando un Manual Picking, possiamo ulteriormente selezionare i colori che più ci interessano.
    Questo ad esempio se abbiamo intenzione di realizzare un gioco che rispetta un certo stile grafico, con determinati colori.
    Allora questo strumento sarà come una manna dal cielo.
     

    t2XiG7.png

     

    Come nella screen, ho ulteriormente selezionato dalla palette ricavata solo 8 colori.
    Se accetto solo 8 colori questo sarà il risultato

    crXEtx.png

     

    L'algoritmo assegna dei pesi per ogni colore, ed in base a quello più simile alla screen originale, sostituisce il colore che è più adatto.
    In modo da ottenere un effetto retro pixellato impeccabile.

    Se invece volete il massimo, vi linko un sito web dove poter scaricare migliaia di palette in modo gratuito e da poter usare con RPGAC.

     

    https://lospec.com/palette-list

     

    Basta scegliere la palette che più vi aggrada:

    V8iFLw.png

     

    Scaricare il formato PAL (JASC)
    e caricare la palette direttamente su RpgAC.

    In modo da ottenere esempio questo
     

    oHwlAT.jpg

     

    o magari un effetto più dark stile horror o del tipo Silent Hill

    DBnLSE.png

     

    Insomma c'è veramente da divertirsi.

    Mentre attualmente, è in sviluppo L'editor dei Tileset per XP
     

    qBiSxF.png

     

    Come per gli editor adiacenti, sempre conversione in tempo reale Pick and Place, con la possibilità di aggiungere un upscaling o sempre un pixelizer effect.

     

     

     

  4. Dopo un lungo lavoro, penso di essere riuscito ad accontentarti.

    Ho ulteriormente elaborato l'algoritmo di generazione con ulteriori 5 passaggi.

     

    1° Si dà in pasto al programma una screen di un gioco qualsiasi di snes.

    2° Il programma elabora l'immagine simulando un hardware          snes modalità 256 colori ma con palette a 5 bit 56 colori.

    3° L'algoritmo non si limita a ridurre i colori, ma si limita a ricreare la grafica sfruttando la palette generata dall'immagine come campione.
    Prima di tutto, estrae e campiona i colori eliminando quelli superflui e ripetuti per poi adattarli ancora una volta a 5 bit.

    Ad esempio ho usato questa screen di Chrono trigger

    image.png?ex=67f0e28d&is=67ef910d&hm=f77

     

    Recuperato e generati i colori limitati per l'hardware snes, si può salvare la palette e tenerla per poi applicare sempre la stessa risonanza alle altre screen.

     

    Ma come funziona?
    L'algoritmo genera una sorta di Luminance Key dando dei pesi sui colori, in modo da ricreare uno spettrogramma e dare più rilevanza a dei colori rispetto ad altri.

     

    Non ho fatto molti test anche perché ho avuto poco tempo per testare ma molto lavoro fatto sull'algoritmo.

    Prendendo questa screen da google:

    36009-1822aeec2fc5141537f4792d7e28e8bf.p

     

    Caricando la palette precedentemente generata

     

    image.png?ex=67f0e480&is=67ef9300&hm=8e9

     

    ottengo questo risultato

     

    output.png?ex=67f0e495&is=67ef9315&hm=72

     

    Sembra un vero gioco snes.

    Ovviamente alcuni colori possono sembrare fuori luogo.
    Semplicemente perché ho caricato una palette generata da una screen di una foresta con prevalenza di rosso per le foglie.
    Ma una qualche screen di qualche taverna per snes il risultato è sicuramente diverso.

    Ad esempio puoi notare i bordi delle pareti.
    da sfumature e colori tenui, a pixel evidenti e netti.

    In più oltre a questo, come annunciato su itch,
    Filtri come GameBoy ed altri in arrivo

     

    QZrIb2.png

     

     

  5. Ti descrivo cosa c'è dietro al tool che normalmente non si vede o non si percepisce.

    In sintesi, il mio strumento non si limita a pixellare un'immagine  ad esempio come fa photoshop, ma offre strumenti più avanzati per personalizzare il risultato.

    Ci sono molti fattori che vanno analizzati.
    Prendiamo spunto proprio da photoshop.

    Cluster Strength:
    A differenza di photoshop che applica una pixelizzazione uniforme, il mio algortimo introduce un parametro chiamato Cluster Strenght, che controlla il livello di aggregazione dei pixel.
    Puoi decidere quanto grandi devono essere i blocchi di pixel e quanto devono essere raggruppati i colori ottenendo un effetto più personalizzato e marcato.

    Palette Colori Intelligente:

    A differenza del filtro di phoshop che si limita a pixelizzare l'immagine mantenendo i colori originali, il mio algoritmo genera una palette di colori ridotta e sostituisce i colori dell'immagine con quelli più vicini nella palette generata, creando un effetto più retro e controllato.
    In più giocando con il cluster Strenght, nella riduzione dei colori aiuta a mantenere una transizione più naturale trai i pixel migliorando l'output visivo.

    anche in questo strumento, segretamente viene abilitato un upscaling.

    Photoshop ha strumenti di ridimensionamento, il mio strumento sfrutta un upscaling con interpolazione bilineare, che evita il classico effetto a blocchi, in più si aggiunge anche lo smoothing Factor che controlla quanto l'upscaling deve essere morbido o mantenere l'effetto pixel art.
    Questo è particolarmente utile proprio quando si usano immagini di grandi dimensioni e si decide di pixelizzarle.

     

    Preservazione della Trasparenza:

    I pixel trasparenti vengono preservati, evitando che vengano sostituiti da blocchi opachi. Utile soprattutto per i game designer che necessitano di sprite trasparenti.

    In più altre aggiunte come: Edge Detector ( Canny ) e struttura a Reticolo con l'Algoritmo di Voronoi

     

    Aggiungerò altre feature?
    Sicuramente! 

    Migliorerò maggiormente l'output grafico?
    Ovvio!

     

    Dietro al tool, non c'è un IA che genera immagini o quant'altro.
    Ma il frutto della mia esperienza maturata negli anni nello sviluppo di motori grafici, IDE, Editor Grafici ed Game Engine.
    Tutto ciò realizzato con un approccio ingegneristico basato su C++ ottimizzando ogni passaggio per garantire equilibrio, stabilità e prestazioni.

    Ovviamente, questo tool offre una soluzione su misura, con caratteristiche che possono essere ulteriormente espanse e migliorate proprio per adattarsi alle esigenze degli sviluppatori.

    Spero di essere stato esaustivo almeno per quel che riguarda le informazioni principali del tool.
    Il tool è molto giovane, ha appena qualche anno.
    Sicuramente migliorerà questo grazie anche al supporto di tutti voi.

     

     

  6. On 3/18/2025 at 8:43 AM, Lord Sesshoumaru said:

    Grazie della release! Ma quindi è solo upscaling, non è anche downscaling?

    I link delle immagini non funzionano per niente purtroppo

     

    Scusami non ho capito a quale strumento ti riferisci, Pixelizer o Upscaling?

    PS:
    Le feature di ridimensionamento le sto applicando ora.
    Upscaling come ho allegato sopra nel rar il progetto di esempio, ingrandisce l'immagine aumentando i pixel
    Ovvero ricreando sfumature che mancano per realizzare immagini più dettagliate ovviamente per ottenere questo effetto,
    L'immagine viene ingrandita, ma Ahimè mi sono accorto del bug che l'immagine non viene ridimensionata correttamente.

     

    Immagine-2025-03-21-220057.png

     


    Quando si aumenta il fattore scala ignora le dimensioni impostate sul lato destro.
    Questo perché ho rimasto attivo di default durante l'esportazione il Keep Transform, che cerca di stabilizzare l'immagine senza storcerla (Esempio più larga e più corta) ma rispettando le proporzioni.

    Quindi per ora si, L'Upscaling, ingrandisce solo, ma sto appunto modificando per ridimensionare dopo aver upscalato i pixel.

     

    Riguardo al Pixelizer, ho già completato la parte per ridimensionare e tutto.
    Ora tocca solo all'upscaler per poi rilasciare un nuovo aggiornamento con altre funzionalità.

     

    dP7VR8.png

  7. Lo scrivo anche qui, in modo da essere più chiaro anche con chi legge il topic.

    In anzi tutto spiego esattamente cosa fà.

    Per prima cosa, genera una palette di colori, più simile possibile a quella utilizzata dalla risorsa.
    L'intensità ovviamente è variabile.

    P={(r,g,b)r,g,bL}

    In questo esempio, ho impostato dei valori consigliati per il tipo di risorsa

    Screenshot_2025-03-09_221445.png?ex=67cf

     

    Passaggi Filtro:
    Indica quanti colori (ricreati dalla palette) deve raggruppare.
    Il processo funziona in modo inverso, quindi:
    Maggiore sarà il valore, più colori della risorsa saranno visibili.

    Più il valore e basso, più l'algoritmo tenterà di raggruppare i colori.

    image.png?ex=67d00f86&is=67cebe06&hm=f05

     

    Mentre il Cluster Strenght, non fà altro che amplificare l'area di gruppo dei pixel.
    Maggiore sarà il valore, più elementi saranno pixellati.
    Questa funzione, e consigliabile quando si hanno immagini di grandi dimensioni, in modo prima di pixellarle, in seguito eseguire un downscaling.

    In modo che questa:

    001-Fighter01.png?ex=67cffe26&is=67ceaca

     

    Diventi questa

    001-Fighter01EXP.png?ex=67cffe80&is=67ce


    Ovviamente si può giocare come si vuole con i parametri.
    Dipende dal risultato che si cerca di ottenere.


    L'upscaling ve lo faccio provare in diretta.
    includo anche i sorgenti per i più curiosi.
    E' una prova che avevo fatto prima di completare tutto nel programma definitivo.

    Perché non amo incasinare i progetti.
    Faccio prima delle prove in progetti random per osservarne i risultati e come si comporta. 
    Poi ricompongo tutto nel programma principale.

    Questo è un esempio, quindi non è funzionale al 100%, ma fà quello che deve fare in termini di operazione.
    Manca la parte più importante ovvero la rimozione del background e l'affino dei bordi.

     

     

     

    UpscalingTest.rar

  8.  

    Grazie mille lord soprattutto per il tuo supporto.
    Ne approfitto per annunciare che anche l'upscaling è completato.

    gdJS4e.png

     

    19 hours ago, Lord Sesshoumaru said:

    Giusto qualche parola per apprezzare questo tool :) un ottimo acquisto :) ma la funzione "ridimensiona" in congiunzione con il pixelizer arriverà?


    Si, come già presente (in parte) per l'upscaling che al momento ridimensiona in proporzione ^ 2, ci sarà anche per il pixelizer.

    A questi due strumenti volevo aggiungere una funzione per un autodetect della risorsa utilizzata.
    Un pò come accade per l'editor di chipset per il 2k3.

    Nel senso che si carica una risorsa da mz esempio, il tool capisce che è una charaset, quindi oltre a pixellare l'immagine, la ridimensiona in modo che rispetta l'output ( per 2k3, XP, ACE o ) che si disedera.
     

     

  9. Personalmente stimo molto freank, ma tutto quello che riguarda l'uso delle IA per me è croce nera.

    Posso tollerare l'IA unicamente su una cosa.
    All'epoca ho dovuto affrontare algoritmi o processi che mi hanno bloccato per più mesi su un progetto, e trovare qualcuno che ne capisse qualcosa era estremamente difficile. Se non provare a chiudere su Stack Overflow ed aspettare qualcuno di buona anima che riuscisse a risolverti il problema.

    Allora, posso appoggiare l'ia.

    Ma non accetto IA Generative, del tipo che si chiede pappa pronta e puff.
    Sono sempre stato contro questa filosofia che non è diversa dal vecchio "Copia / Incolla" usato prima che uscissero ste ia.

    Il problema e che le gente sta prendendo troppo sotto gamba sta cosa e sta sfuggendo di mano.
    E spuntano persone dette esperte  come funghi, nascosti dietro ad un IA anche per risponderti nel caso gli poni una domanda di programmazione.
    Eh si, ho incontrato anche persone del genere.

    Che non sanno una virgola di programmazione, gli chiedi una cosa per metterli alla prova, e ti rispondono chiedendola prima l'IA e poi a te.
    Cosa veramente pietosa....

    Dico sempre una cosa ad i miei amici.
    Se vuoi fare una cosa, falla, ma con la tua testa e con le tue mani.
    Sbaglia ed impara da dove hai sbagliato, riscrivila da capo che sarà ancora migliore.
    Solo così sarai fiero di quello che hai fatto ma soprattutto, uno dei principali motivi per cui programmiamo o creiamo giochi,
    e proprio quello di divertirci prima ancora noi, per poi far divertire gli altri.


     

  10. non penso sia un problema, ma cmq parte del codice è questo

    insomma almeno la parte piu importante

     

              BYTE r1 = (currentPixel >> 16) & 0xFF, g1 = (currentPixel >> 8) & 0xFF, b1 = currentPixel & 0xFF;
                BYTE r2 = (rightPixel >> 16) & 0xFF, g2 = (rightPixel >> 8) & 0xFF, b2 = rightPixel & 0xFF;
                BYTE r3 = (bottomPixel >> 16) & 0xFF, g3 = (bottomPixel >> 8) & 0xFF, b3 = bottomPixel & 0xFF;
                BYTE r4 = (bottomRightPixel >> 16) & 0xFF, g4 = (bottomRightPixel >> 8) & 0xFF, b4 = bottomRightPixel & 0xFF;
    
                        int red   = (1 - fx) * (1 - fy) * r1 + fx * (1 - fy) * r2 + (1 - fx) * fy * r3 + fx * fy * r4;
                        int green = (1 - fx) * (1 - fy) * g1 + fx * (1 - fy) * g2 + (1 - fx) * fy * g3 + fx * fy * g4;
                        int blue  = (1 - fx) * (1 - fy) * b1 + fx * (1 - fy) * b2 + (1 - fx) * fy * b3 + fx * fy * b4;
    
                        //uscitga
                        UINT newPixel = (255 << 24) | (red << 16) | (green << 8) | blue;
                        outputPixels[(y * scaleFactor + dy) * outputStride + (x * scaleFactor + dx)] = newPixel;
    			
    			 inputImage->UnlockBits(&inputData);
       			 outputImage->UnlockBits(&outputData);

     

    Almeno per quello che riguarda lo smoothing.

    Magari, dovrei provare ad alleggerire la parte del nero.
    perché sembra troppo netto.

  11. 2 hours ago, Testament said:

    E la sfocatura come si comporta ai bordi? Se il contorno del personaggio sfocandosi si amalgama al verde, poi quando il verde viene tolto considerandolo trasparente, non rimane un alone verdastro intorno ai chara?


    Si ovviamente essendo una sfumatura, se si sovrappone ad un colore esempio verde, avendo le trasparenze logicamente rimane verde.

    Anche se prima di fare ciò, elimino prima il colore di fondo e poi applico le modifiche.

    Ma questo non è problema.
    Magari ho proposto io un esempio sbagliato usando un charaset.
    Perché rpgmaker 2k3 accetta solo charaset piccoli mentre io li ho ingranditi nell'esempio.

    Fatto sta, che durante l'esportazione, il background viene eliminato.
    Di conseguenza lo sfondo rimane trasparente.

    Quindi avremo il charaset del 2k3 ingrandito, ma senza background.
    In modo che gli altri tool della serie li accettano senza problemi.
    evitando per l'appunto di intravedere un colore per un'altro nelle trasparenze.

    Ottenendo alla fine un risultato del genere usando uno scaling * 2

    chara.png.99a90c050eea1b1043ea2e937f96ce6a.png

    Ovviamente questo è solo un esempio.
    Il sistema dovrà essere ulteriormente affinato.

  12. Uhm ho notato ora.
    Eppure ero sicuro di aver seguito i vari template di MZ.

    Mi era sfuggita la parte per quel che riguarda la possibilità di scegliere da MZ i tiles.
    Non sapevo di questa opzione.

    Ma a tal proposito prima di questa discussione stavo lavorando ad un eventuale filtro proprio per l'upscaling.
    Per evitare l'impatto visivo dei pixel

    (Se noti i dettagli, nella screen "DOPO" i vari colori sono sfumati e non netti e precisi)

     

    test2.png.96ff457d58857058995f184312777f5e.png

     


    Ero impegnato proprio per lavorare a questo problema.
    Perché eseguendo un upscaling, si ingrandisce solo l'immagine ma non i dettagli.
    Anzi, alcuni vengono pure persi, quindi questo filtro risolveva il problema dell'upscaling.

    Non è un semplice, "Prendi l'immagine e ingrandiscila". Ma c'è tutto un processo dietro, simile al precedente pixelizer. Ma in questo caso fa l'opposto. Anziché pixellare, ne aumenta i dettagli.

     

     

    Screenshot-2025-01-29-073254.png

     

  13. Buongiorno ragazzi.
    Prima di natale, ho voluto affrettare lo sviluppo per rilasciare almeno l'editor completo di chipset.

     

    Chi non ha seguito gli sviluppi, è stato introdotto un filtro molto particolare.
    Possiamo definirlo unico nel suo genere.

    Cosa fa? 
    Potremmo definirlo un interpolazione lineare invertita.
    Anche se c'è molto di più dietro le quinte.

    Trasforma un'immagine di alta qualità in una pixellata.

    Ad esempio:

    Screenshot-2024-12-15-115039.png

     

    oppure un intero tileset

     

    Screenshot-2024-12-15-115448.png

     

    Il filtro ovviamente ha piu effetto su immagini di alta qualità.
    I passaggi, servono ad indicare quanto preciso deve essere il filtro.
    Meno passaggi farà, più pixel saranno visibili. 
    C'è appunto il preview per capire quale risultato vogliamo ottenere.

    Attualmente ho impostato un limite di 15 passaggi.
    Anche se non sembra è un calcolo enorme.

    Prendiamo come esempio questo tile.
    che mi sura 768 x 576  sono  un totale di 442.368 pixel  * Passaggi 
    Presumiamo 15 ( 442.368 * 15 ) = 6.635.520

    Quindi l'algoritmo eseguirà un controllo di 6.635.520 pixel in meno di 5 secondi. 😅
    Oltre ovviamente a quello che deve fare per renderli pixellosi.
    Quindi c'è un bel lavorone dietro.

    Oltre a questo, la vera chicca e l'editor.
    Un convertitore di risorse in tempo reale da piazzare direttamente sul template.

    Senza fare molte chiacchiere vi mostro direttamente il video di presentazione spero che vi piaccia.

     

     

     

     

  14. sera riprendo il topic per ancora qualche problema di posizionamento.

     

    Ho fatto diversi tentativi anche allungando l'acqua più del dovuto ma ancora ci sono dei strani problemi.
    Magari sono piazziati male.

     

    Immagine-2024-11-15-074119.png

     

     

    posiziono esempio i due elementi di MZ.
    Ma al caricamento del chipset:
     

    Entrambi allungati seguendo il template ma il risultato non è quello che volevo

     

    Immagine-2024-11-15-201632.png

     

     

    il primo lo taglia bene, il secondo ha qualcosa che non và.
    sbaglio a posizionare gli elementi nel template?

  15. 2 hours ago, Lord Sesshoumaru said:

    Basta basta mi hai convinto!

    in che senso? XD
     

    Cmq ho fatto dei tentativi, ampliando l'algoritmo con qualche parametro in più.
    Avevo stabilito dei passaggi fissi da fare invece ho aggiunto un ulteriore processo per livelli di profondità e passaggi sui colori.
    Piu il numero è alto piu tempo impiega per il calcolo ma ovviamente maggiore sarà la qualità.

    Alcuni test
    Mostro i più significanti


    Screenshot-2024-11-05-195749.png

     

    Screenshot-2024-11-05-200210.png

     

     

     

    Questa è quella che preferisco di più.
    8^255 passaggi.
    Anche se è codice nativo, impiega qualche secondo.
    Mentre per gli altri e quasi istantaneo.
    Da notare l'armatura sulla spalla.
    Effetto veramente molto carino e pixelloso.

    Screenshot-2024-11-05-200026.png

     

     

     

  16. 10 hours ago, Lord Sesshoumaru said:

    Grazie - ma deve essere per forza tra risorse maker? Non può convertire che so, una immagine, se non altro per vedere come funziona la conversione palette?

     

    In teoria e nato per quello, ma ovviamente si. Si può adattare anziché esportare solo una semplice risorsa, adattare ad una più grande. Ma più colori ha, più ne perdi giustamente.

    Su quei asset gira bene perché non ci sono sfumature molto elaborate.
    O Meglio, le risorse tendono ad avere una certa affinità ma non molto distanti tra loro.

    Un esempio è:
    Convertire una foto.
    Si avrebbe un output orrendo.
    Non perché l'algoritmo non funzioni. Ma vista la foto che ha un infinità di sfumature e colori.
    La tavolozza è solo di 256 colori, puoi immaginare da solo cosa ne uscirebbe fuori.

    Certo, il mio metodo usa un'attenzione maggiore ai colori, al passaggio tra un colore ed un altro seguendo un preciso schema. Ma ad esempio convertire una foto di una persone in stile retro pixel penso sia molto più complicato di quando sembri.
    Impossibile no. Ma servirebbero ulteriori passaggi ed algoritmi.
    Ad esempio:
    1° Filtro Pop Art
    2° Pixelizer
    3° Conversione

    Giusto un ipotesi.
    Poi sarebbe da vedere il risultato e migliorare le varie parti.
    Perché ogni algoritmo è a sè, andrebbe ritoccato per ciò che serve.

     

  17. On 10/31/2024 at 9:46 AM, Louie said:

    Conversione davvero notevole, avevo visto degli aggiornamenti su itch. Sempre al lavoro su questo bel progetto! 

    Grazie Luoie 😊 ormai sono in tanti che supportano il progetto.
    Sinceramente non immaginavo nemmeno di riuscire ad arrivare ad un risultato del genere.
    Quindi continuerò a scrivere codice ed implementare nuove funzionalità.

     

     

    On 10/31/2024 at 3:41 PM, Lord Sesshoumaru said:

    Per curiosità, quale algoritmo?

    E' più di un algoritmo. ci sono diversi passaggi e diverse funzioni per ottenere quel risultato.
    Per ovvie ragioni non posso scriverlo, visto che comunque è una funzione che alcune persone hanno pagato per poterla usare  in seguito nel programma.
    Posso semplicemente dire che degli algoritmi presenti, sono quelli del Median cut ed il color quantization.
    Usando in seguito funzioni come interpolazioni bilineari ecc. Ma la parte fondamentale e la creazione della tavolozza rgb partendo della caratteristiche dell'immagine
    data come input.
    Senza quella, i colori cmq verrebbero generati un pò come quelli nella screen superiore o a casaccio.
    Ben lontani dallo stile retro nettamente visibile e conforme alla caratteristiche di rpgmaker 2k3 o vecchio stile pixel.
     

  18. 23 hours ago, Lord Sesshoumaru said:

    beh sicuramente è molto più pulito come aspetto!

     

    Questo sicuro, non è una classica conversione da 16 a 8 bit.
    Perché una conversione classica non otterresti quel risultato ma questo.

    Conversione comune:
    prova2.png


    Conversione tramite algoritmo 

    prova.png

     

     

  19. Nel frattempo ho implementato ciò che avevo pensato ed il risultato non è niente male.
    Spero possa piacerti


    Ho scritto esattamente ciò che avevo detto.
    Migliorato un pò l'algoritmo della quantizzazione con un calcolo del valore medio dei colori anziché moltiplicarli ed il risultato è il seguente

     

    Screenshot 2024-10-28 213502.png

  20. In realtà stavo proprio cercando di sviluppare un qualcosa del genere.
    Non so dirti se riscirò nell'impresa o tanto meno se e fattibile, ma ho una mezza idea di come potrei fare.

    Quello che intendi te, e definita anche come la saturazione dei colori.
    Quelli dei moderni Rpgmaker, sono esattamente come dici.
    Più morbidi, più affusolati e con diverse sfumature.

    Per ottenere ciò si dovrebbe quantizzare l'immagine ed applicare una sorta di filtro di saturazione per i colori.
    In una matrice[256] 8 bit di colori esempio, raggruppare quelli più simili ad un colore primario per poi farne la divisione della tavolozza disponibile.
    Prendere ogni singolo pixel, ottenere il colore e moltiplicare i valori R G B per renderli più vivi insomma più retro.
    Almeno questo e quello che avevo pensato.

     

     

  21. 2 hours ago, Guardian of Irael said:

    Maledetti puntatori, il professore di C diceva sempre che erano complessi, ma che in compenso la maggior parte degli errori dipendesse da essi, quindi si sapeva dove andare a cercare. E io pensavo sempre che gli altri tipi di errori rimanessero, semplicemente si aggiungevano pure quelli dei puntantori! XD

     

    haha come dargli torto! XD
    Basta una inizializzazione non corretta di un oggetto per avere un crash.
    Molte delle volte purtroppo non riesco nemmeno a comprendere il perché succeda, ma succede >_-
    E cosa piu strana, 10 volte và, 2 volte no. Sicuramente è un errore della memoria gestita in modo errata. Purtroppo non sono un ingegnere della nasa ma appassionato della programmazione XD

    Un problema che sto affrontando ora e che l'immagine selezionata di un anonimo tile le prende e la mostra correttamente, ma quando la invio dalla finestra al comparto rendering ho un null exception.
    E sta cosa mi sta facendo sbroccare perché se la mostra non è null invece passandola ad un'altra classe, qualcosa si perde per strada.
    "Maledetto GPS" cit.

  22. Giorno amici e da tanto che non ci sentivamo.

    Di tanto in tanto porto nuovità per chi magari non segue il progetto.

    Riguardo al generatore di script, ho deciso di eliminare ogni singolo blocco evento ed aggiungerne solo uno.
    Apparirà come in foto

    gzxxJ0.png

    Basta semplicemente fare un doppio click sul Modulo per avere una schermata simile a quella di Rpgmaker per inserire eventi di manipolazione come Cambia Switch, Cambia Variabile, Modifica Oro, Oggetti, Salute ecc. ecc.

     

    Per quanto riguarda il reparto Tileset.
    Sto iniziando da poco a progettare L'editor avanzato.
    Che sarà disponibile sempre unicamente nella versione completa.

     

    HQ3Hw3.png


    In questo esempio si tratta dell'editor di Rpgmaker 2000/3
    Ci permette in pratica di usare qualsiasi elemento grafico di qualsiasi set aperto ( Autotile, A,B,C,D) ecc.

    La parte sinistra contiene gli elementi caricati nell'editor.
    A destra sono gli elementi Ancorati.
    Facendo un doppio click sull'elemento a sinistra si aprirà una finestra come quella posizionata al centro, in seguito, si può ancorare a destra o dove si vuole.

    Contemporaneamente su tutte le finestre grafiche aperte, e possibile selezionare uno o piu elementi da tenere in memoria per poi andare a posizionare l'elemento sul template che sarà il risultato finale.

    Il programma capirà in automatico di che risorsa si tratta se di XP, VX o MV /MZ.

    per poi adattare il contenuto per il template scelto.

     

    Per ora procede benone, Ho solo un piccolo problemino con il passaggio dei dati tramite puntatori ma, i problemi sono fatti per essere risolti.

    Certo, richiederà un pò di tempo prima di essere funzionale al 100% ma il funzionamento sarà come citato.

    Spero vi piaccia la news e di come procede il progetto.
    Soprattutto ringrazio a chi sta sostenendo il progetto per la cifra irrisoria.

×
×
  • Create New...