-
Cydonia, aggiornamento per il gusto di...Scritto daaltgutente che non utieneil 2014-03-04 04:08:11.0 alle 2014-03-04 04:08:11.0Trollate totali: 11540...rompere i coglioni agli altri e per la cortesia di tenere informato GS.
Al momento c'e` niente di nuovo da vedere, perche` sto "cambiando paradigma".
Ho deciso che le shadow maps avrebbero in gran parte fatto cacare sempre & comunque.
Sicche` ho deciso di passare agli shadow volumes (tanto ho tutti gli stencil buffers che voglio, in software), ma devo trovare un modo per ottimizzarli e fare il rendering doppio del minor numero di oggetti possibile, e oltretutto ho intenzione di cancellare solo le parti dello stencil buffer che si sovrappongono alla forma dell'oggetto, per mezzo di un altro stencil buffer che avevo gia` e che chiamo "ID stencil". Al suo fianco ci sono il consueto depth buffer e poi ci sara` il tipico stencil delle ombre, su cui renderizzare gli shadow volumes (probabilmente in Carmack's reverse).
Prima di tutto pero` serve un cambio di paradigma piu` a monte: Cydonia usava il depth buffer senza interpolare le profondita` pixel per pixel (in assenza di UVmap, richiede una divisione per pixel e pensavo potesse gravare sui tempi, invece e` risultato che non grave una sega: meglio) e disegnava facce a Z costante. Questo non e` accettabile per gli shadow volumes perche` li renderebbe tassellati nonostante siano potenzialmente precisi nell'ordine del singolo pixel. Sicche` oggi mi sono dedicato a riscrivere i vari stadi di clipping e rendering in modo che comunicassero la profondita` dei vertici al rasterizzatore finale (che e` un Bresenham che riempie un paio di arrays di minimi e massimi con gli estremi di una scanline).
Alla fine della fiera per provare se le profondita` erano corrette ho fatto il solito rendering scambiando i colori con grigi piu` o meno chiari a seconda della profondita`, e ho inclinato follemente la casina per farla penetrare nel terreno e vedere se il depth fail la clippava bene. L'immagine di prova e` venuta suggestiva:

Nebbiolina bianca attorno a una casa affondata...
A parte questo, ok, funziona. Stasera me la sono vista con l'identificazione delle facce adiacenti e dei loro lati condivisi, costruendone una tabellina che mi servira` per estrudere i volumi d'ombra. Se tutto va bene, le ombre portate stavolta saranno perfette. Nel complesso, la rifattorizzazione del depth buffering portandolo a essere preciso pixel per pixel ha comunque ridotto le necessita` di tassellare troppo la scena, sicche` e` gia` un vantaggio.
Ecco, e` tutto.
-
Re: Cydonia, aggiornamento per il gusto di...Scritto daNon Autenticatoil 2014-03-04 16:15:21.0 alle 2014-03-04 16:15:21.0> ...rompere i coglioni agli altri e per la cortesia di tenere informato GS.
Più che giusto, tanto di quel che è scritto lì sotto ho capito tutto...
> Al momento c'e` niente di nuovo da vedere, perche` sto "cambiando paradigma".
> Ho deciso che le shadow maps avrebbero in gran parte fatto cacare sempre & comunque.
>
> Sicche` ho deciso di passare agli shadow volumes (tanto ho tutti gli stencil buffers che voglio, in software), ma devo trovare un modo per ottimizzarli e fare il rendering doppio del minor numero di oggetti possibile, e oltretutto ho intenzione di cancellare solo le parti dello stencil buffer che si sovrappongono alla forma dell'oggetto, per mezzo di un altro stencil buffer che avevo gia` e che chiamo "ID stencil". Al suo fianco ci sono il consueto depth buffer e poi ci sara` il tipico stencil delle ombre, su cui renderizzare gli shadow volumes (probabilmente in Carmack's reverse).
>
> Prima di tutto pero` serve un cambio di paradigma piu` a monte: Cydonia usava il depth buffer senza interpolare le profondita` pixel per pixel (in assenza di UVmap, richiede una divisione per pixel e pensavo potesse gravare sui tempi, invece e` risultato che non grave una sega: meglio) e disegnava facce a Z costante. Questo non e` accettabile per gli shadow volumes perche` li renderebbe tassellati nonostante siano potenzialmente precisi nell'ordine del singolo pixel. Sicche` oggi mi sono dedicato a riscrivere i vari stadi di clipping e rendering in modo che comunicassero la profondita` dei vertici al rasterizzatore finale (che e` un Bresenham che riempie un paio di arrays di minimi e massimi con gli estremi di una scanline).
>
> Alla fine della fiera per provare se le profondita` erano corrette ho fatto il solito rendering scambiando i colori con grigi piu` o meno chiari a seconda della profondita`, e ho inclinato follemente la casina per farla penetrare nel terreno e vedere se il depth fail la clippava bene. L'immagine di prova e` venuta suggestiva:
>
>
>
> Nebbiolina bianca attorno a una casa affondata...
>
> A parte questo, ok, funziona. Stasera me la sono vista con l'identificazione delle facce adiacenti e dei loro lati condivisi, costruendone una tabellina che mi servira` per estrudere i volumi d'ombra. Se tutto va bene, le ombre portate stavolta saranno perfette. Nel complesso, la rifattorizzazione del depth buffering portandolo a essere preciso pixel per pixel ha comunque ridotto le necessita` di tassellare troppo la scena, sicche` e` gia` un vantaggio.
>
> Ecco, e` tutto.
... ma tanto a me basta guardare le figure.
-
Re: Cydonia, aggiornamento per il gusto di...Scritto daaltgutente che non utieneil 2014-03-04 18:16:15.0 alle 2014-03-04 18:16:15.0Trollate totali: 11540> > ...rompere i coglioni agli altri e per la cortesia di tenere informato GS.
>
> Più che giusto, tanto di quel che è scritto lì sotto ho capito tutto...
Be', parto dall'assunto che se uno e` curioso cerca i termini su wikipedia, dove c'e` spiegato tutto (si fa per dire).
> ... ma tanto a me basta guardare le figure.
La figura e` artisticamente suggestiva per puro caso. Comunque ci vorra` un po' per implementare gli shadow volumes: di per se` non e` difficile, ma ci sono tanti modi per gestirli e devo trovare il piu` efficiente per Cydonia. E poi prima di partire sto dando una pulita e una riordinata al resto... incidentalmente trovando altre ottimizzazioni e avendolo intanto portato a un po' piu` di mezzo secondo al fotogramma. Ma non punto al real-time sugli ambienti finali, perche` non voglio dover animare credibilmente e per la motion sickness e insomma non mi piace, sicche` se alla fine va abbastanza veloce mi limito a complicare gli ambienti infoltendo erba, alberi, siepi...-
Re: Cydonia, aggiornamento per il gusto di...Scritto daNon Autenticatoil 2014-03-04 18:43:48.0 alle 2014-03-04 18:43:48.0> > > ...rompere i coglioni agli altri e per la cortesia di tenere informato GS.
> >
> > Più che giusto, tanto di quel che è scritto lì sotto ho capito tutto...
>
> Be', parto dall'assunto che se uno e` curioso cerca i termini su wikipedia, dove c'e` spiegato tutto (si fa per dire).
>
> > ... ma tanto a me basta guardare le figure.
>
> La figura e` artisticamente suggestiva per puro caso.
Sembra una Near Death Experience.
> Comunque ci vorra` un po' per implementare gli shadow volumes: di per se` non e` difficile, ma ci sono tanti modi per gestirli e devo trovare il piu` efficiente per Cydonia. E poi prima di partire sto dando una pulita e una riordinata al resto... incidentalmente trovando altre ottimizzazioni e avendolo intanto portato a un po' piu` di mezzo secondo al fotogramma. Ma non punto al real-time sugli ambienti finali, perche` non voglio dover animare credibilmente e per la motion sickness e insomma non mi piace, sicche` se alla fine va abbastanza veloce mi limito a complicare gli ambienti infoltendo erba, alberi, siepi...
Sì infatti, l'ottimizzazione è rivolta soprattutto a questo, non s'era capito?
-
-
-