Comment créer un bon shader métal?
Pour différents métaux et dire plus ou moins érodé / rouillé et ainsi de suite.
Je sais qu'une différence par rapport aux matériaux ordinaires est que le métal devrait «colorer» la lumière spéculaire mais quand je le fais avec de l'or par exemple, il a juste l'air «jaune», pas métallique du tout.
Toute aide appréciée!
graphics
shaders
graphic-effects
Valmond
la source
la source
Réponses:
J'ai récemment créé des shaders pour les métaux propres et brossés pour mon jeu en cours et je suis assez satisfait des résultats.
Métal propre: La caractéristique la plus importante de mes expériences était les réflexions de l'environnement avec les cartes de cube. Je les ai implémentés avec des environnements de rendu en texture en temps réel, mais les images statiques donnent souvent de bons résultats et il est plus facile de les estomper. La deuxième caractéristique la plus importante était l'effet Fresnel, ce qui améliore les silhuettes des objets. Cela donne par exemple un look plus rond pour les balles. Un éclairage spéculaire n'est pas nécessairement nécessaire, car la carte du cube peut fournir les reflets directement. Le rendu HDR est également important pour que les réflexions de la carte du cube soient bonnes.
Métal brossé: pour les métaux brossés, vous obtenez assez facilement de bons résultats en utilisant une texture de pinceau, quelque chose comme ceci, avec éclairage anisotrope. Pour l'éclairage anisotrope, vous pouvez trouver des tutoriels sur le Web, mais j'ai implémenté le mien en utilisant blinn-phong comme base, mais du demi-vecteur, j'ai éliminé 80% de la direction tangente. Cela signifie que vous avez besoin de tangentes ou de bitangentes en plus des normales dans vos modèles. Les reflets de l'environnement sont délicats pour le métal brossé. Vous pouvez échantillonner à partir de plusieurs directions à partir de la carte du cube en fonction des directions tangentes / bitangentes, mais vous aurez peut-être besoin de nombreux échantillons pour obtenir de bons résultats. Cependant, cela n'est pas nécessairement nécessaire, car la texture et l'éclairage anisotrope avec plusieurs sources de lumière sont déjà assez agréables. Le résultat final dans mon cas ressemble à ceci:
la source
Comme l'a dit Nicol dans son commentaire, il y a beaucoup de choses qui entrent dans un shader métallique de haute qualité. Pour de meilleurs résultats, votre moteur de rendu doit être gamma-correct et utiliser des modèles d'ombrage à base physique (voir en particulier les deux articles de Naty Hoffman sur ce lien).
Compte tenu de ces éléments, la façon typique de fabriquer un matériau métallique est d'avoir une couleur diffuse très faible ou inexistante et une réflectance spéculaire élevée, allant de 50% à 100% (dans l'espace colorimétrique linéaire). Comme vous l'avez noté, pour certains métaux, le spéculaire sera coloré.
Parce que l'apparence du métal est entièrement spéculaire avec peu ou pas de diffusion, la réflexion sera extrêmement importante. S'il ne reflète que spéculairement des lumières ponctuelles, vous obtiendrez l'apparence d'un matériau noir car le reste de l'environnement est manquant (même un métal très rugueux reflétera une image floue de son environnement). Une manière typique d'obtenir plus de réflexion est d'utiliser un cubemap. La réflexion réaliste dans les graphiques en temps réel est un sujet énorme, cependant, et il existe de nombreuses approches différentes.
la source