Recentemente, criei shaders para metais limpos e escovados para o meu jogo em andamento e estou muito feliz com os resultados.
Metal limpo:
A característica mais importante em meus experimentos foram as reflexões do ambiente com mapas de cubos. Eu os implementei com ambientes de renderização para textura em tempo real, mas também imagens estáticas geralmente oferecem bons resultados e é mais fácil desfocá-las. A segunda característica mais importante foi o efeito fresnel, que melhora as silhuetas dos objetos. Isso, por exemplo, fornece uma aparência mais redonda para bolas. A iluminação especular não é necessariamente necessária, pois o mapa do cubo pode fornecer os destaques diretamente. A renderização HDR também é importante para que as reflexões do mapa do cubo tenham uma boa aparência.
Metal escovado:
para metais escovados, você obtém bons resultados com bastante facilidade usando uma textura de pincel, algo como isto, juntamente com iluminação anisotrópica. Para iluminação anisotrópica, você pode encontrar tutoriais da Web, mas eu implementei o meu usando blinn-phong como base, mas a partir do meio vetor, eliminei 80% da direção tangente. Isso significa que você precisa de tangentes ou bitangentes, além das normais em seus modelos. As reflexões do ambiente são difíceis para o metal escovado. Você pode fazer amostragens de várias direções no mapa do cubo com base nas direções tangentes / bitangentes, mas pode ser necessário muitas amostras para obter bons resultados. No entanto, isso não é necessariamente necessário, pois a textura e a iluminação anisotrópica com várias fontes de luz já parecem bastante agradáveis. O resultado final no meu caso é assim: