Estou tentando escrever um shader de gelo no Unity que pareça bom e pelo menos semi-realista.
Se a foto a seguir ( encontrada no Google ) fosse CG, qual seria o seu shader? (a caverna do primeiro plano). Posso estar errado, mas parece que ele ainda tem um modelo de iluminação diferente do difuso padrão.
Respostas:
O gelo é translúcido, por isso acredito que a coisa mais importante que você deve simular no seu sombreador para obter resultados realistas seria a dispersão da superfície ou o SSS, resumidamente. O SSS basicamente descreve como os raios de luz penetram na superfície de objetos translúcidos e se espalham por baixo dela, sendo refletidos várias vezes de maneira irregular, antes de finalmente sair por um local diferente.
Aqui está uma foto que eu acho que demonstra bem o efeito:
Na imagem da sua pergunta, também podemos ver que o gelo é bastante reflexivo; portanto, você provavelmente também desejará combiná-lo com algum tipo de mapeamento do ambiente para reflexões e também tonificar a especularidade para reforçar os destaques.
Você também pode tentar outras coisas, como adicionar um pouco de refração , sobrepor algum tipo de textura de ruído para adicionar um pouco de variação ou até mesmo algum tipo de mapeamento de bump ou mapeamento de deslocamento para detalhes muito pequenos e sutis.
Recursos
Alguns outros recursos que encontrei ao escrever a resposta:
http://http.developer.nvidia.com/GPUGems/gpugems_ch16.html
http://graphics.ucsd.edu/~henrik/papers/fast_bssrdf/
http://www.jamiemccarter.com/Subsurface_Scattering_%26_Reflections_without_Rays.html
http://www.blender.org/development/release-logs/blender-244/subsurface-scattering/
http://littlecolourbakery.com/pages/research.html
fonte
Um dos meus alunos fez isso há alguns anos (usando renderman), mas com muita experiência na tese http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/index.html
fonte