[lnkForumImage]
Download FREE Software.

Confronta i prezzi di migliaia di prodotti.
News Forum Italiano
 Home | Login | Registrati | Ricerca 


 

Forums >

it.comp.giochi.sviluppo

Deferred Lighting + MSAA, ci sono riuscito!

Gianpaolo Ingegneri

06/01/2012 02:11:19

Con una tecnica ibrida inventata da me sono riuscito ad usare il MSAA con il
deferred lighting, senza usare il multisample esplicito, che è molto più
lento ed oneroso. Il mio engine adesso non necessita di FXAA, che comunque
può essere usato per migliorare alcuni artefatti dovuti alla bump mapping.
Con la mia tecnica è possibile usare un comunissimo deferred rendering con
MSAA anche a 16x (nella mia GeForce 9600GT va velocissimo fino a 8x). Di
seguito vi riporto uno screen di una scena con 3 luci ed un oggetto
complesso con bump mapping:

http://www.texturemind.com/images/Deferred...

Tengo a precisare che la mia è una tecnica ibrida per cui i risultati in
alcuni casi sono più imprecisi rispetto ad un multisample esplicito, ma è
comunque di gran lunga migliore di un FXAA, in quanto è un algoritmo di
antialiasing vero e proprio (non un sofisticato blur degli edge) e per
questo motivo non ha artefatti in movimento e non blurra.


4 Risposte

Davide Pasca

07/01/2012 14:07:50

0

Complimenti, bel risultato.

Percaso usi qualcosa come descritto qui' ? -> http://bps10.idav.ucdavis.edu/talks/12-lauritzen_DeferredShading_BPS_SIGGRAPH2010... (da pagina 19) ..ovvero edge detection e MSAA con stencil buffer solo su questi edges.

Gianpaolo Ingegneri

07/01/2012 17:30:46

0

> Complimenti, bel risultato.
>
> Percaso usi qualcosa come descritto qui' ? ->
> http://bps10.idav.ucdavis.edu/talks/12-lauritzen_DeferredShading_BPS_SIGGRAPH2010...
> (da pagina 19) ..ovvero edge detection e MSAA con stencil buffer solo su
> questi edges.

Ciao. Ho letto le pagine in questione e direi che non uso il loro approccio
perché si basa sul multisample esplicito. In passato avevo deciso di usare
il multisample esplicito però poi l'ho cestinato dopo aver visto quanto è
limitato, soprattutto perché è difficile andare oltre una 4x ed un buon
risultato visivo lo ottieni da una 8x in su.

In effetti l'edge detection potrebbe sembrare un ottimo stratagemma per
frenare la perdita di framerate, però bisogna fare attenzione. Durante le
mie prove, un multisample esplicito eseguito per ogni poligono rallentava di
circa 3 volte con una modesta 4x, proprio come mostrato nel siggraph. Con la
tecnica degli edges, gli autori del paper hanno ottenuto una 2x di
rallentamento su ATI una 1.4x su NVIDIA, però se avessero usato una 8x
secondo me avrebbero ottenuto qualcosa come 4x su ATI e 2.4x su NVIDIA, che
è un rallentamento davvero troppo pesante per poter essere considerato. C'è
da dire inoltre che queste cifre dipendono dalla quantità degli edges nella
scena, che aumentano con il crescere del dettaglio poligonale e la
discontinuità delle superfici. Il caso mostrato nel paper è bello
conveniente perchè non contiene mesh con molte discontinuità, che avrebbero
aumentato di certo il numero degli edges e quindi prodotto dei risultati
peggiori in termini di prestazioni.

Con la mia tecnica invece non faccio uso di multisample esplicito, non
aumento le dimensioni del GBuffer e non ho bisogno degli edges, posso usare
una 8x o una 16x senza registrare un peggioramento sostanziale delle
performance.

Tuttavia ti ringrazio per il paper perchè avevo bisogno di alcune dritte per
migliorare il light culling. Al più presto dovrò fare degli screen e dei
video per mostrare le performance con 256-512-1024 luci, inoltre c'è anche
un altro modo per testare la bontà di un algoritmo di antialiasing, cioè con
oggetti piccoli, dettagliati ed in movimento, cosa che di solito produce dei
risultati discutibili, ma non nel mio caso ;-)


Davide Pasca

10/01/2012 13:17:16

0

On Sunday, January 8, 2012 2:30:46 AM UTC+9, Gianpaolo Ingegneri wrote:

> Tuttavia ti ringrazio per il paper perchè avevo bisogno di alcune dritte per
> migliorare il light culling. Al più presto dovrò fare degli screen e dei
> video per mostrare le performance con 256-512-1024 luci, inoltre c'è anche
> un altro modo per testare la bontà di un algoritmo di antialiasing, cioè con
> oggetti piccoli, dettagliati ed in movimento, cosa che di solito produce dei
> risultati discutibili, ma non nel mio caso ;-)

A proposito.. questo paper sembra interessante "Decoupled Deferred Shading for Hardware Rasterization" -> http://cg.ibds.kit.edu/Shadin...

maoooo
Davide

Gianpaolo Ingegneri

10/01/2012 13:39:38

0


> A proposito.. questo paper sembra interessante "Decoupled Deferred Shading
> for Hardware Rasterization" -> http://cg.ibds.kit.edu/Shadin...

Grazie per il link :-)