Antialiasing per le draw functions (senza surface scalata)

Tutorial, videotutorials ed esempi creati da noi
Rispondi
Avatar utente
ScemEnzo
Membro
Messaggi: 130
Iscritto il: 27/05/2014, 15:05
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: Napoli
Contatta:

Antialiasing per le draw functions (senza surface scalata)

Messaggio da ScemEnzo »

Premessa: so che questo tutorial è molto basilare ed aggiunge veramente poco alla cultura generale sul GML.
Ho intenzione di usare questo piccolo spazio più come un promemoria per me, con in più il buon proposito di poter aiutare qualcuno che, come me, ha perso giornate intere a cercare la soluzione a questo problema.
P.S.: su internet spopola una soluzione alternativa fatta scalando le surface, ma io ho voluto cercare qualcosa di intrinseco al GML.

Se si desidera ottenere delle figure perfettamente smussate, bisogna giocare con la funzione display_reset(aa,vsync) e la variabile nativa display_aa.
In sostanza, basta specificare in "aa" nella funzione display_reset il valore di antialiasing che noi preferiamo, eseguendo tale istruzione all'avvio dell'applicazione.
Per un valore di aa = 8 le curve cominciano ad essere ottimamente soffici.

Il framerate medio della mia basilare applicazione con un solo draw_circle è passato da circa 170 a circa 130 frame al secondo ponendo aa = 8, dunque è bene fare attenzione alla stabilità del programma.
Contatti Giochi Immagine

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da doom13 »

ScemEnzo ha scritto:è passato da circa 170 a circa 130 frame al secondo ponendo aa = 8.
Azz è tanto
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
ScemEnzo
Membro
Messaggi: 130
Iscritto il: 27/05/2014, 15:05
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: Napoli
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da ScemEnzo »

Assolutamente si, infatti è una mossa disperata per rendere le draw function perfette nella loro forma "pixelosa".
Purtroppo è noto che le draw function di moltissimi software sono troppo pesanti per ottenere immagini dettagliate ed elaborate, quindi in questo periodo ho cambiato direzione ed ho cominciato ad interessarmi agli shaders, visto che con le draw functions c'è poco da fare
Contatti Giochi Immagine

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da doom13 »

ScemEnzo ha scritto:Assolutamente si, infatti è una mossa disperata per rendere le draw function perfette nella loro forma "pixelosa".
Purtroppo è noto che le draw function di moltissimi software sono troppo pesanti per ottenere immagini dettagliate ed elaborate, quindi in questo periodo ho cambiato direzione ed ho cominciato ad interessarmi agli shaders, visto che con le draw functions c'è poco da fare
Fai bene, gli shaders vorrei impararli anche io ma non ho ancora trovato un buon tutorial :cry:
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
ScemEnzo
Membro
Messaggi: 130
Iscritto il: 27/05/2014, 15:05
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: Napoli
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da ScemEnzo »

doom13 ha scritto: gli shaders vorrei impararli anche io ma non ho ancora trovato un buon tutorial :cry:
Allora sappi che avevi la soluzione sotto al naso e non te ne sei accorto: io ho chiesto consiglio al sommo Tizzio (che Dio lo benedica), dal momento che ho scoperto che il suo Glare engine usava gli shaders.
Lui è stato a sua volta istruito da Jak, ma la cosa importante è che mi ha passato un documento che sto leggendo: è semplice, simpatico e molto molto piacevole.
È perfetto per chi vuole introdursi al codice GLSL senza troppe pretese

Tiè: http://patriciogonzalezvivo.com/2015/thebookofshaders/
Contatti Giochi Immagine

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da Tizzio »

Avevo ideato un metodo per le linee con antialiasing sfruttando l'interpolazione lineare
ecco un gmk: draw_line_aa

I poligoni non sono "pieni", però si può ottenere un effetto antialiasing, tracciando varie linee intorno alla figura
quindi bisogna combinare il disegno del bordo col disegno della figura interna

Immagine

Ci sono dei piccoli artefatti (soprattutto nel cerchIo), ma è un buon compromesso.
Non ho testato la differenza di prestazioni rispetto all'MSAA standard fatto dalla scheda video, ma credo che sui vecchi PC e telefoni sia molto meglio la tecnica dell'interpolazione

Avatar utente
ScemEnzo
Membro
Messaggi: 130
Iscritto il: 27/05/2014, 15:05
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: Napoli
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da ScemEnzo »

Tizzio ha scritto:Avevo ideato un metodo per le linee con antialiasing sfruttando l'interpolazione lineare
Ho visto il progetto ed è molto interessante, anche se la forma pixellosa rimane molto.
Anche io ho provato a creare qualche script quando ho sviluppato "When We Talk" basandomi su alcuni documenti sull'antialiasing, ma non sono mai stato soddisfatto delle soluzioni.
Sapevo di poter trovare qualcosa di nativo a GM e alla fine l'ho trovato dopo tantissimo tempo.

La cosa positiva di questa funzione nativa è che qualunque figura appartenente alle draw functions di Game Maker viene elaborata con un antialiasing come Dio comanda, anche le figure geometriche create con vertici.
Contatti Giochi Immagine

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da doom13 »

ScemEnzo ha scritto:
doom13 ha scritto: gli shaders vorrei impararli anche io ma non ho ancora trovato un buon tutorial :cry:
Allora sappi che avevi la soluzione sotto al naso e non te ne sei accorto: io ho chiesto consiglio al sommo Tizzio (che Dio lo benedica), dal momento che ho scoperto che il suo Glare engine usava gli shaders.
Lui è stato a sua volta istruito da Jak, ma la cosa importante è che mi ha passato un documento che sto leggendo: è semplice, simpatico e molto molto piacevole.
È perfetto per chi vuole introdursi al codice GLSL senza troppe pretese

Tiè: http://patriciogonzalezvivo.com/2015/thebookofshaders/
Bello bello, converto tutto in un bel pdf.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da Tizzio »

doom13 ha scritto: Bello bello, converto tutto in un bel pdf.
Ma il bello di quel sito è l'interattività :asd:
Puoi modificare il codice e vedere i cambiamenti in realtime

Avatar utente
ScemEnzo
Membro
Messaggi: 130
Iscritto il: 27/05/2014, 15:05
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: Napoli
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da ScemEnzo »

Aspetta un attimo!!! Ho appena visto la tua immagine nel post aggiornato e a me non si vede in quel modo!
A me il disegno è molto più pixeloso.
Ho controllato e l'interpolazione è attiva.
Avvio da Windows 7 a 64 bit
Contatti Giochi Immagine

Avatar utente
ScemEnzo
Membro
Messaggi: 130
Iscritto il: 27/05/2014, 15:05
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: Napoli
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da ScemEnzo »

Tizzio ha scritto: Ma il bello di quel sito è l'interattività :asd:
Concordo assolutamente. io stavo per stamparmi tutto, poi però mi sono accorto dei fichissimi codici in real time @ç@
Contatti Giochi Immagine

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Antialiasing per le draw functions (senza surface scalat

Messaggio da doom13 »

Tizzio ha scritto:
doom13 ha scritto: Bello bello, converto tutto in un bel pdf.
Ma il bello di quel sito è l'interattività :asd:
Puoi modificare il codice e vedere i cambiamenti in realtime
O.o eh vabbé quando sto in giro però preferisco avere un pdf sul cellulare.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti