Orario: 19-06-2013, 14:47 Benvenuto ospite! (Log inRegistrati)


Rispondi 
[OpenGL3] Antialiasing
Autore Messaggio
Corralx
Graph Lover

Messaggi: 811
Registrato: Jul 2010
Offline Offline
#16 RE: [OpenGL3] Antialiasing
0
(13-08-2012 10:39)TheCrib ha scritto:  Per favore non bestemmiamo.. i vari MLAA, FXAA e pippiripi' parapa' non sono anti-aliasing, sono degli smoothatori che non fanno altro che blurrare dli edges a posteriori.

Vanno in voga e magari in molti casi migliorano anche l'aspetto, ma rimangono fondamentalmente una porcata 8)

Sicuramente non sono l'AA classico per definizione, ne danno gli stessi risultati.
Ma personalmente li trovo una ottima alternativa, i cui risultati spesso sono paragonabili a quelli dell'MSAA, a fronte di un notevole incremento delle performance (che sopratutto su console è importante, chiaro che su pc magari voglio il meglio del meglio e do la possibilità a chi ha un computer potente, di sfruttarlo).

Poi io preferisco sempre avere il controllo su tutto ciò che la mia applicazione sta facendo, quindi avere uno shader completamente programmabile e modificabile piuttosto che usare l'implementazione hardware è preferibile Linguaccia

Matteo "Corralx" Bertello
13-08-2012 13:52
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TextureMind
Senior Member

Messaggi: 356
Registrato: Apr 2012
Offline Offline
#17 RE: [OpenGL3] Antialiasing
0
Citazione:Chiunque dica che un metodo per smussare un'immagine non è un "vero antialiasing" probabilmente non ha capito di cosa parla.

Mi spiace ma sei tu che non hai capito di cosa si parla, e lo hai dimostrato più avanti smentendoti da solo. Se si dice che l'FXAA non è vero antialiasing corrisponde alla verità. Credo che anche tu abbia dato comunicazioni elettriche all'università, prova ad applicare un filtro simile ad un fxaa ad un segnale sonoro per ridurre il difetto di aliasing o peggio ancora a voler migliorare un rapporto segnale/rumore con un filtro a valle sul ricevitore, proprio non si può. Credo che ti sia chiara la differenza tra pre e post processing.

Citazione:Per fare un antialiasing "vero" bisognerebbe adottare l'approccio di disegnare le primitive già considerando la percentuale di riempimento del singolo pixel, un po' come fa l'algoritmo di Xiaolin Wu per le linee e non tentare di riparare dopo.

Niente, proprio ti sfugge il motivo, a livello concettuale. Ma tu lo sai per cosa sta la X di FXAA?
13-08-2012 13:55
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,606
Registrato: Oct 2010
Offline Offline
#18 RE: [OpenGL3] Antialiasing
0
Esatto come TextureMind, le AA in elettronica si intende qualcosa che "toglie" rumore, non che ne aggiunge, come fa FXAA Asd

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
13-08-2012 14:04
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,295
Registrato: Sep 2010
Offline Offline
#19 RE: [OpenGL3] Antialiasing
0
Belli i video..

Il primo mette in evidenza il caso estremo di geometria sub-pixel, che era a quello a cui mi riferivo.

Sul secondo si nota molto meno.. perche' non ci sono casi estremi.

Il tutto poi andrebbe visto a 60 Hz, senza compressione video.
L'animazione e' importante perche e' una questione anche temporale, come dicevo. E' una questione simile alla rasterizzazione sub-pixel, che inizialmente sul real-time non si faceva e che mostra artifacts solo quando la scena e' animata.

Sicuramente se uno vuole fare hair rendering come si deve, non solo i vari FXAA non sono adeguati, ma con l'MSAA stesso serve minimo un 8x ..almeno dalle prove che feci al tempo.

Un'altra cosa interessante dell'MSAA e' la possibilita' di usare l'alpha-to-coverage.
Ma anche in quel caso, serve un bel 16x, altrimenti gli artifacts sono troppo brutti.

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
13-08-2012 14:22
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
GeneralMao
Senior Member

Messaggi: 481
Registrato: Jan 2012
Offline Offline
#20 RE: [OpenGL3] Antialiasing
0
(13-08-2012 14:22)TheCrib ha scritto:  Sicuramente se uno vuole fare hair rendering come si deve, non solo i vari FXAA non sono adeguati, ma con l'MSAA stesso serve minimo un 8x ..almeno dalle prove che feci al tempo.


Davide! Si vede che sei in Giappone eh! Sempre con sta fissa del rendering dei capelli!!

Hai anche tecniche per renderizzare correttamente le mutandine bianche delle studentesse?

AHAHAHHA

Maurizio Benedetti
-----------------------------------------------------------------------------------------------------------
[Immagine: this_is_mao_logo.png]

[Immagine: teamnovasoft_logo_80_80.png]

https://twitter.com/#!/TeamNovasoft
13-08-2012 14:27
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
MannyB
Posting Freak

Messaggi: 1,550
Registrato: Mar 2011
Offline Offline
#21 RE: [OpenGL3] Antialiasing
0
FXAA e compagnia bella hanno senso in contesti tipo deferred rendering dove non puoi applicare MSAA. Ma se puoi usare l'HW, usalo Asd

(13-08-2012 14:27)GeneralMao ha scritto:  renderizzare correttamente le mutandine bianche delle studentesse

Inchino

Manuele Bonanno Fermofumo
13-08-2012 14:32
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,295
Registrato: Sep 2010
Offline Offline
#22 RE: [OpenGL3] Antialiasing
0
(13-08-2012 13:55)TextureMind ha scritto:  
Citazione:Chiunque dica che un metodo per smussare un'immagine non è un "vero antialiasing" probabilmente non ha capito di cosa parla.

Mi spiace ma sei tu che non hai capito di cosa si parla, e lo hai dimostrato più avanti smentendoti da solo. Se si dice che l'FXAA non è vero antialiasing corrisponde alla verità.

Hai ragione al livello di signal processing, ma se devo fare l'avvocato del diavolo, c'e' da dire che in image processing c'e' il concetto di qualita' percepita ( esempio http://en.wikipedia.org/wiki/PEVQ )

Ed in certi casi un SNR peggiore sull'effetto della compressione puo' risultare migliore al livello di percezione.

Quindi se il goal finale e' quello di produrre una immagine piacevole per chi la vede.. allora tutto diventa lecito 8)
..con questo non voglio dire che FXAA sia migliore, ma che la cosa piu' importante e' la percezione dell'utente.

(13-08-2012 14:27)GeneralMao ha scritto:  
(13-08-2012 14:22)TheCrib ha scritto:  Sicuramente se uno vuole fare hair rendering come si deve, non solo i vari FXAA non sono adeguati, ma con l'MSAA stesso serve minimo un 8x ..almeno dalle prove che feci al tempo.


Davide! Si vede che sei in Giappone eh! Sempre con sta fissa del rendering dei capelli!!

Sono stato traviato (^^;)

Citazione:Hai anche tecniche per renderizzare correttamente le mutandine bianche delle studentesse?

Non credo ci riusciro' mai.. manca la reference 8(

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
(Questo messaggio è stato modificato l'ultima volta il: 13-08-2012 14:38 da TheCrib.)
13-08-2012 14:33
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gian
Strange Tech Owner

Messaggi: 1,111
Registrato: Jul 2012
Offline Offline
#23 RE: [OpenGL3] Antialiasing
0
(13-08-2012 13:55)TextureMind ha scritto:  
Citazione:Chiunque dica che un metodo per smussare un'immagine non è un "vero antialiasing" probabilmente non ha capito di cosa parla.

Mi spiace ma sei tu che non hai capito di cosa si parla, e lo hai dimostrato più avanti smentendoti da solo. Se si dice che l'FXAA non è vero antialiasing corrisponde alla verità. Credo che anche tu abbia dato comunicazioni elettriche all'università, prova ad applicare un filtro simile ad un fxaa ad un segnale sonoro per ridurre il difetto di aliasing o peggio ancora a voler migliorare un rapporto segnale/rumore con un filtro a valle sul ricevitore, proprio non si può. Credo che ti sia chiara la differenza tra pre e post processing.

Citazione:Per fare un antialiasing "vero" bisognerebbe adottare l'approccio di disegnare le primitive già considerando la percentuale di riempimento del singolo pixel, un po' come fa l'algoritmo di Xiaolin Wu per le linee e non tentare di riparare dopo.

Niente, proprio ti sfugge il motivo, a livello concettuale. Ma tu lo sai per cosa sta la X di FXAA?
Menomale che ci sei te a spiegarmelo, sennò chissà come facevo... Ahsisi
Sta per approximate, e allora? Certo che quegli esami li ho dati, e allora? Se ti dico bravo, ti senti meglio e la finiamo?
Non ho mai tentato di dire che FXAA è un AA secondo le definizioni del signal processing, che è identico a un MSAA, o che crea informazione dal nulla o che non introduce artefatti... se tu avessi letto e compreso cosa ho scritto prima, avresti intuito che il mio punto è "sono comunque immagini di sintesi: basta che sia bello da vedere" e non "chi è il più fico a citare esami universitari".
L'oggetto del disquisire è se un algoritmo "merita" la definizione di AA oppure no... vallo a dire tu ai ricercatori di nVidia che non lo possono chiamare così: di fronte alla tua competenza non potranno fare altro che cambiare il nome.
Una volta dissi ad un mio studente di chiudere la finestra e lui si alzò per andare a chiudere la finestra vera, quella nel muro e non quella del programma che stava usando come invece intendevo io: i nomi che diamo alle cose hanno spesso un contesto che ovviamente non si può ignorare. L'anti-aliasing che applichi alla grafica non deve per forza essere quello che studi a teoria dei segnali o a comunicazioni elettriche (anche se ne è ovvia la provenienza) perchè è ovvio che il nostro fine NON è fare una cosa accurata (almeno in campo videoludico).
Il trucco che citavo di renderizzare molte volte una scena variando leggermente il POV per poi fare il blend, ad esempio, NON è antialiasing secondo i canoni accademici per il signal processing (perquanto comunque introduca meno schifezze di FXAA)... ed è stato tranquillamente chiamato AA per lunghissimo tempo da tutto il mondo. Basta capirsi. O volersi capire.

PS:
TheCrib ha scritto:Hai ragione al livello di signal processing, ma se devo fare l'avvocato del diavolo, c'e' da dire che in image processing c'e' il concetto di qualita' percepita ( esempio http://en.wikipedia.org/wiki/PEVQ )

Ed in certi casi un SNR peggiore sull'effetto della compressione puo' risultare migliore al livello di percezione.

Quindi se il goal finale e' quello di produrre una immagine piacevole per chi la vede.. allora tutto diventa lecito 8)
..con questo non voglio dire che FXAA sia migliore, ma che la cosa piu' importante e' la percezione dell'utente.
menomale che c'è qualcuno che mi capisce... Inchino

Giancarlo Todone
[Immagine: smallStar.png] www.stareat.it
Google+ / Twitter / LinkedIn
(Questo messaggio è stato modificato l'ultima volta il: 13-08-2012 15:03 da Gian.)
13-08-2012 14:58
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Jak
Vaporizator

Messaggi: 482
Registrato: Jul 2011
Offline Offline
#24 RE: [OpenGL3] Antialiasing
0
Io da bravo nabbo vi dirò. A me l'FXAA piace un casino, forse non è vero antialiasing ma blurring fatto sta che migliora la qualità percepita dell'immagine quindi è tecnicamente un antialiasing, che poi ci sia di meglio è un'altro conto.
E' un po come dire che se la automobile A è migliore dell'automobile B allora la B non è un'automobile.
Certo, in casi di alta densità di poligoni si notano strani artefatti ma nel peggiore dei casi l'immagine torna aliasata quindi è comunque un bel guadagno sul totale.
Personalmente in un videogioco, dove è necessario avere grafica 3d realtime difficilmente si nota la differenza tra FXAA ed MSAA primo perchè il giocatore è concentrato a giocare e secondo perchè nel movimento ci aggiungono quasi sicuramente altri effetti come motion blur bloom ecc che effettuano un'ulteriore blurring dell'immagine eliminando ogni differenza tra i due tipi di AA. Certo, se poi uno vuole fermarsi a guardare il panorama o godersi filmati prerenderizzati consupereffettoni particellari allora la differenza si nota ma è chiaro che se hai un pc dell'anteguerra non potresti permettertelo comunque.

Io su skyrim la differenza non la noto ad eccezione durante i caricamenti dove vedi questi modelli "quasi" fermi ma per il resto è tutto un godimento. Sarà anche che ho un computer così catorcio che a grafica minima mi va a 10 fps quindi tecnicamente sto guardando degli screenshot ma questi sono dettagli Asd

L'FXAA non darà mai qualità di altri algoritmi di antialiasing ma è comunque un AA e ne vale veramente la pena.
TextureMind ha scritto:sull'introduzione di un MSAA esplicito per la deferred
Che non esiste per definizione visto che il deferred è un post processing mentre l'MSAA è un preprocessing. L'antialiasing va necessariamente applicato prima.
L'unica VERA soluzione senza usare trucchetti(che essendo trucchetti ritorniamo alla questione che l'FXAA è un trucchetto e quindi questi trucchetti non sono permessi) è quella di memorizzare varie volte uno stage antialiasato(per farla semplice, usiamo l'alfa to coverage) ma chiaramente si perderebbero tutte le prestazioni guadagnate nel deferred e ciò lo renderebbe insensato.

Infine l'FXAA è utilizzabile dove l'MSAA non è in grado di agire ad esempio usando il cone step mapping o dove si usa l'alfa test quindi recinzioni e simili.

L'unico VERO antialiasing che risolve tutto è il supersampling che secondo me tra breve tempo sarà supportato appieno, diciamo da quando andranno di moda le gpu multichip, se avessimo una gpu da 4 chip basterebbe far disegnare ad ognuna di esse contemporaneamente la stessa scena leggermente spostata. Che ci vuole, basta avere una cella frigorifera adibita a gpu e pagare bollette della luce astronomiche Asd


Tutto ciò che non è supersampling è quindi una tecnica di ripiego per migliorare le prestazioni ma che non offre la stessa qualità anche se ci si avvicina quindi se l'MSAA è antialiasing in quanto riduce gli artefatti allora anche l'FXAA è antialiasing(perchè blurrerà ma toglie l'effetto antialiasing, blurrate a più non posso un'immagine con photoshop, è blurrata vero ma è anche antialiasata indipendentemente dal fatto che è così blurrata che non si capisce niente di quello che dovrebbe rappresentare l'immagine) al contrario se l'FXAA non è antialiasing perchè usa n'algoritmo diverso da quello ufficiale allora anche l'MSAA non è antialiasing.

Non dimentichiamoci comunque di tecniche di supersampling più leggere come il quincunx http://it.wikipedia.org/wiki/Antialiasing
18-08-2012 15:06
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 6,040
Registrato: Nov 2008
Online Online
#25 RE: [OpenGL3] Antialiasing
0
Inoltre con le risoluzioni pazzesche dei nuovi display l'AA lo faranno direttamente gli occhi, e il problema si risolve alla base Asd

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
18-08-2012 16:25
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Jak
Vaporizator

Messaggi: 482
Registrato: Jul 2011
Offline Offline
#26 RE: [OpenGL3] Antialiasing
0
Anche se è un po OT visto che il problema vero e proprio è stato risolto(eventualmente moderatori fare un nuovo topic se volete) ho notato questo articolo della nvidia che sembra alquanto interessante.
http://www.geforce.com/whats-new/article...orld-txaa/
Che sia la classica sabbia sugli occhi come l'FXAA ancora non lo so. Sto cercando qualche dettaglio più rilevante riguardo l'implementazione. Ma se è vero che si ottiene un 8x con il peso di un 2x allora si ha risolto ogni problema(visto che considerando le attuali risoluzione un MSAA 8x è la perfezione più totale, anche con un 1024x768 come il mio)
A quanto ho capito è un'ibrido che sfrutta l'MSAA per dare più spazio di lavoro all'FXAA e lavorare meglio quindi tecnicamente non è un vero AA (anche perchè il VERO AA è il supersampling, non ci sono soluzioni reali) però se riesce ad evitare i problemi dell'elevata densità di poligoni dell'FXAA direi che è una buona soluzione.
Non riesco a trovare degli screenshot decenti per fare il confronto però. Gli unici che trovo sono cavolate come questa:
Che non ci crederò mai che quello è MSAA 8x, al massimo è 2x Asd

Mi piacerebbe dare qualche sguardo extra riguardo l'implementazione per vedere quante cagate hanno fatto o se tutto sommato è ben studiato. Voi avete trovato qualcosa?
30-08-2012 11:59
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
kunos
Gatto Incavolato

Messaggi: 2,418
Registrato: Jul 2010
Online Online
#27 RE: [OpenGL3] Antialiasing
0
(13-08-2012 14:32)MannyB ha scritto:  FXAA e compagnia bella hanno senso in contesti tipo deferred rendering dove non puoi applicare MSAA. Ma se puoi usare l'HW, usalo Asd

stavo per postare la stessa cosa.. quando si lavora con un renderer piu' o meno deferred il normale MSAA puo' essere d'intralcio. FXAA e' una manna perche' lo butti dentro alla fine ed e' praticamente plug and play.

Gia' solo ricostruire il world space con uno shader che e' costretto a girarre una volta per sample e' botta incredibile sulle performance.. nel mio motore sono riuscito a far funzionare il motion blur con MSAA ma accenderlo significa dimezzare il framerate, con FXAA il blur on/off a stento si sente.

Stefano Casillo

www.assettocorsa.net
www.netkar-pro.com
Twitter
[Immagine: acsign.jpg]
30-08-2012 12:29
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,295
Registrato: Sep 2010
Offline Offline
#28 RE: [OpenGL3] Antialiasing
0
(30-08-2012 11:59)Jak ha scritto:  Anche se è un po OT visto che il problema vero e proprio è stato risolto(eventualmente moderatori fare un nuovo topic se volete) ho notato questo articolo della nvidia che sembra alquanto interessante.

Dice "temporal" quindi in pratica vuol dire che usa il/i frame precedenti.
Probabilmente perde utilita' con scene dove ci sono rapidi movimenti.. anche se in quei casi magari c'e' del motion blur.

Citazione:Che non ci crederò mai che quello è MSAA 8x, al massimo è 2x Asd

Neanche a me sembra 8x.. forse c'e' dell'HDR opportunamente messo per scassare le cose ?

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
30-08-2012 13:17
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: