View Full Version : X fek: water renderer
Vergognoso che nessuno (almeno che non mi sia perso qualche messaggio da qualche parte) abbia fatto i complimenti a fek per il water renderer in black & white 2!! :mad:
L'effetto è magistrale, complimenti davvero! Sembra di stare in sardegna :)
E' possibile avere qualche informazione sulle tecniche usate? A parte il classico perlin noise e via di seguito...
E' l'acqua migliore che abbia mai visto in real-time! Sono rimasto un pò di merda...eheheh!
DanieleC88
03-11-2005, 15:12
Lo dici tu! Io i complimenti gliel'ho fatti (o almeno mi pare :D), è davvero qualcosa di fantastico. Un tale livello di dettaglio per l'acqua l'ho visto soltanto in "Gli incredibili", che non è per niente in real time... ma non c'è da stupirsi di tutto ciò. Se lavora alla Lionhead ci sarà pure un motivo, no? :)
E comunque non mi sembra che ci sia una così grande necessità di aprire un thread apposito, al massimo gli mandavi un pvt con i tuoi complimenti. :D
Vergognoso che nessuno (almeno che non mi sia perso qualche messaggio da qualche parte) abbia fatto i complimenti a fek per il water renderer in black & white 2!! :mad:
Ma ma ma ma che gentile... :vicini:
L'effetto è magistrale, complimenti davvero! Sembra di stare in sardegna :)
E' possibile avere qualche informazione sulle tecniche usate? A parte il classico perlin noise e via di seguito...
L'idea alla base dello shader e' la stessa di Far Cry e Half Life 2: una doppia bumpmap che scrolla in due direzioni diverse di modo da evitare pattern ripetitivi, soprattutto in distanza (ad esempio guarda HL2 Loast Coast verso l'orizzonte). Niente perlin noise perche' volevo che gli artisti fossero in grado di cambiare agevolmente il look dell'acqua solo agendo su una texture, piuttosto che su qualche astruso parametro.
Vista la scala dell'acqua che doveva andare dall'orizzonte fino ad essere piacevole anche da molto vicino, ho aggiunto altre due bumpmap che scrollano ad una scala molto inferiore e le "blendate" in base alla distanza dalla telecamera: a tutti gli effetti sono delle detail bumpmap che forniscono i dettagli ad alta frequenza della superficie (le ondine).
Da queste quattro bumpmap ricavo un vettore normale alla superficie dell'acqua che uso per perturbare la scena riflessa (cielo, oggetti e terreno) e la scena rifratta (terreno sott'acqua). Blendo i due colori in base ad un fresnel term che mi dice quanto sto guardando l'acqua di traverso o parallelamente: se noti l'acqua riflette molto di piu' se la guardi parallelamente, lo stesso principio dei vetri. Uso piu' o meno lo stesso termine per ricavare un colore che e' dato dalla combinazione del colore dell'acqua e del colore del "fondo". Questa e' una grossolana approssimazione delle proprieta' ottiche dell'acqua oceanica.
La maggior parte del colore dell'acqua e' comunque dato dal colore del cielo che viene dall componente riflessa e dal colore del fondo oceanico che viene dal terreno: assieme i due colori danno la variazione per non rendere il colore omogeneo.
Infine uso la normale trovata sopra per la luce speculare (sun glittering) e la "gioco" un po' per ottenere quel tipico effetto di luce che si ha quando il sole viene riflesso dalle onde. L'idea mi e' venuta guardando un giorno l'idroscalo a Milano ed ho provato a implementarlo :)
Poi ho scattato qualche foto al mare di Imperia ed ho tentato di avvicinarmi il piu' possibile a quelle foto.
Infine aggiungo un effetto di blooming in fase di post processing per risaltare le zone illuminate sulla cresta delle onde.
Il tutto e' esposto in un tool in cui gli artisti possono modificare una decina di parametri per dare all'acqua un look diverso da isola a isola.
Lo shader finale e' circa 60 istruzioni e gira in SM2.0 con alcune ottimizzazione se la GPU supporta l'SM3.0.
Se non me la faccio sotto prima, dovrei tenere una presentazione a S. Francisco su questa roba a Marzo dell'anno prossimo.
DanieleC88
03-11-2005, 15:49
[...] fresnel term [...] blooming [...] SM2.0 [...] SM3.0.
Mi fa piacere che io riesca a seguire a malapena il 50% del discorso e che non conosca per niente alcuni termini. Sto sulla buona strada. :D
x DanieleC88:
Non gli ho mandato un messaggio privato perchè non è solo una questione di complimenti, ma mi interessava conoscere le tecniche implementate, e penso che possa/debba interessare chiunque si occupi un pò, anche a livello hobbistico come me, di grafica in real-time.
x fek:
Grazie della spiegazione! E' stata piuttosto esaustiva, anche se sono conscio del fatto che non si possa sintetizzate tutto in un breve messaggio su un forum. Tutto molto interessante ad ogni modo, grazie! :) Alcune cose sono piuttosto avanzate per me, sono ancora al perlin noise.
Aspetto con ansia le slide della presentazione al GDC!
MSciglio
03-11-2005, 19:08
...
In pratica e' l'approccio dell'articolo si ShaderX2, no?
Fenomeno85
03-11-2005, 19:24
complimenti ;)
~§~ Sempre E Solo Lei ~§~
Che cosa interessantissima :eek: :sbav:
Grandissimo Fek! :)
Ciau!
In pratica e' l'approccio dell'articolo si ShaderX2, no?
Preciso preciso lui. Tanto che avrei dovuto citare l'autore nei credit :D
Secondo me la vera differenza qualitativa e' stata fatta dall'editor, dai parametri esposti e dall'abilita' dei grafici che ci hanno lavorato. A livello tecnico non c'e' nulla di particolarmente esotico.
mea culpa, non ti avevo ancora fatto i complimenti, ma tanto fekkino lo sa che è il mio idolo vero?
a questo punto vorrei aggiungere anche i miei: ho visto l'immagine che hai messo nel tuo blog (veramente STU-PEN-DA!!! :eek: ) e qualche altro screenshot sul vostro sito: ancora complimenti :)
Le foto non rendono. Procurati il gioco che è una figata!
DarkRevenge
04-11-2005, 23:34
Le foto non rendono. Procurati il gioco che è una figata!
Beh... forse non rendono come il gioco reale, ma rendono già abbastanza:
>> immagine (http://media.insidegamer.nl/screenshots/public/761/47114.jpg) << :eek: :eek: :eek:
Complimenti vivissimi fek!!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.