Come rendere realistico il ghiaccio?


45

Sto cercando di scrivere uno shader di ghiaccio in Unity che abbia un bell'aspetto e almeno semi-realistico.

Se lo scatto seguente ( trovato su Google ) fosse CG, cosa includerebbe il suo shader? (la grotta in primo piano). Potrei sbagliarmi, ma sembra che abbia anche un modello di illuminazione diverso rispetto al diffuso predefinito.

inserisci qui la descrizione dell'immagine


Ecco un tutorial per DirectX 11 usando HLSL e C ++. Forse puoi capire i principi. Inoltre, dove hai visto che l'immagine era CG? È segnalato come reale.
MichaelHouse

Non ho detto che lo fosse. Ho detto "se" lo fosse. e grazie! Lo controllerò
Daniel Pendergast il

9
Questo fenomeno si chiama scattering del sottosuolo. È causato perché la luce penetra nella superficie del materiale ed è diffusa attraverso il mezzo stesso. Ecco perché, ad esempio, le orecchie umane sembrano rosse quando retroilluminate. Ecco un post sul blog che spiega il tentativo di qualcuno di ricreare un effetto ghiaccio con esso.

Ah, scusa se mi sono perso il "se".
MichaelHouse

@ Byte56, nessun problema
Daniel Pendergast,

Risposte:


53

Il ghiaccio è traslucido, quindi credo che la cosa più importante che devi simulare nel tuo shader per ottenere risultati realistici sia lo scattering del sottosuolo o in breve SSS. SSS in sostanza descrive come i raggi di luce penetrano nella superficie degli oggetti traslucidi e si disperdono al di sotto di esso, riflettendosi più volte in modo irregolare, prima di uscire infine da una posizione diversa.

Ecco un'immagine che penso dimostra bene l'effetto:

inserisci qui la descrizione dell'immagine

Dall'immagine nella tua domanda possiamo anche vedere che il ghiaccio è abbastanza riflettente, quindi probabilmente vorrai anche combinarlo con una sorta di mappatura ambientale per i riflessi e tonificare la specularità al fine di rafforzare i punti salienti.

Puoi anche provare altre cose come l'aggiunta di un po 'di rifrazione , la sovrapposizione di una sorta di trama del rumore per aggiungere un po' di variazione, o persino una sorta di bump mapping o mappatura di spostamento per dettagli molto piccoli e sottili.

risorse

Alcune altre risorse che ho trovato mentre scrivevo la risposta:


Potresti anche voler esaminare Ambient Occlusion ( en.wikipedia.org/wiki/Ambient_occlusion ) per simulare l'oscuramento delle falesie perché di solito è piuttosto difficile da ottenere giusto usando solo le ombre.
Koarl

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.