Orario: 18-05-2013, 13:11 Benvenuto ospite! (Log inRegistrati)


Rispondi 
Riflessioni basate sulla distanza dal piano
Autore Messaggio
enigma
Posting Freak

Messaggi: 1,871
Registrato: Nov 2009
Offline Offline
#1 Riflessioni basate sulla distanza dal piano
0
Sto cercando un metodo elegante, veloce e corretto per ottenere questo tipo ti effetto: sostanzialmente vorrei ottenere un piano (pavimento) che riflette l'ambiente circostante, ma che non si comporti come uno specchio. In questo modo le riflessioni più nitide sono quelle degli oggetti a diretto contatto con il piano che via via sfocano man mano che l'oggetto si allontana (o si innalza). Gli oggetti più lontani non verrebbero nemmeno riflessi o comunque le riflessioni non sarebbero percettibili.
Al momento ho già le riflessioni funzionanti (è presente una seconda camera specchiata rispetto alla prima, viene eseguito un render to texture e il blending del risultato con il piano), ma come dicevo il piano si comporta come uno specchio e quindi riflette tutto. Per gli oggetti più lontani posso banalmente risolvere rendendoli invisibili durante la fase di draw dalla camera riflessa. Ma per il resto? Dopo un po di ricerca e studio sono venute a galla queste due possibili soluzioni:
  • Disattivare il rendering degli oggetti più lontani dal piano e applicare un blur alla texture riflessa. Poi procedere normalmente, ovvero blend della texture riflessa con il piano.
  • Utilizzare le informazioni di profondità (depth buffer della camera riflessa) in fase di blending tra la texture riflessa e il piano.
Vorrei capire se queste due idee possono darmi l'effetto desiderato e se hanno senso (in particolare la seconda, anche perché poi va capito come usare l'informazione di profondità).
Altre idee?
Grazie. Occhiolino

Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
28-02-2012 10:19
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
MannyB
Posting Freak

Messaggi: 1,532
Registrato: Mar 2011
Offline Offline
#2 RE: Riflessioni basate sulla distanza dal piano
0
puoi anche usare fog nella scena riflessa, ti evita un extra zprepass, o anche ridurre il far plane della camera. Fog dovrebbe darti un effetto migliore

ps: nebbia nel caso non usi fixed pipeline te la ioplementi semplicemente nello shader:

passi come uniform il background color e nello shader blendi il colore degli oggetti con quel colore in base alla distanza dalla camera:

out.color = lerp(object_color, background_color, eye_distance);

Manuele Bonanno Fermofumo
(Questo messaggio è stato modificato l'ultima volta il: 28-02-2012 10:40 da MannyB.)
28-02-2012 10:29
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
kunos
Gatto Incavolato

Messaggi: 2,345
Registrato: Jul 2010
Offline Offline
#3 RE: Riflessioni basate sulla distanza dal piano
0
Sicuramente per portarti dietro il depth devi farti tutta la pippa dello shadow mapping, quindi portarti dietro anche la matrice per trovarti il depth giusto.. detto questo
I 2 possibili approcci che vedo sono:

1) Creare un riflesso, e poi una versione dello stesso blurrato. Interpolare fra le 2 in base alla distanza dal piano.
2) Crearti una cascata di mipmaps dal render target del riflesso e scegliere il livello da usare in base alla distanza dal piano.

Stefano Casillo

www.assettocorsa.net
www.netkar-pro.com
Twitter
[Immagine: acsign.jpg]
(Questo messaggio è stato modificato l'ultima volta il: 28-02-2012 10:51 da kunos.)
28-02-2012 10:50
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Maialovic
Member

Messaggi: 78
Registrato: Jul 2011
Offline Offline
#4 RE: Riflessioni basate sulla distanza dal piano
0
mah...un'idea malata che mi era bazzigata in testa: definita una distanza max possibile oggetto-piano di riflessione per potere essere riflessa, usare una specie di proiezione simil shadow-mapping, dove a distanza max otterrai solo 1 punto nel piano riflesso, sblurri e sei a posto.

fai quello che ti piace fare, anche se ci saranno ostacoli.....sarà lungo e duro..... ma Fallo
28-02-2012 14:18
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: