Salut à tous
ça fait maintenant 2/3 jours que je me penche sur le monde mystérieux des shaders pour gérer un aspect de mon projet. C'est très intéressant, on peut faire des choses fascinantes, mais je dois dire que je suis encore bien loin de tout comprendre, encore plus de maitriser
Pour en venir au sujet, j'essaye d'affecter une texture différente selon la "hauteur" du vertex de mon mesh. Je mets des guillemets car en réalité il s'agit de planètes, donc je me base plutôt sur la distance entre le vertex et le centre du mesh.
Jusqu'ici j'ai réussi à affecter une couleur différente selon la hauteur tel que ci-dessous :
ou encore d'affecter une _MainTexture + récupérer la couleur de textures annexes pour colorer la texture :
Seulement, je ne sais pas comment récupérer l'info du vertex puis l'exploiter dans la fonction surf pour afficher une texture différente par niveau de hauteur.
J'espère que ma question est compréhensible
Merci pour votre aide !
Sebela
[DB - AL] Texture en fonction de la hauteur d'un vertex
Re: [DB - AL] Texture en fonction de la hauteur d'un vertex
dans la void vertex, tu peut assigner une couleur à chaque vertex en fonction de la position de ce vertex .
en fonction de la distance du vertex, tu assigne une couleur différente, bien definie.
par exemple :
-if : de 0 a 1m => Color(1,0,0,0)
-if : de 1 a 2m => Color(0,1,0,0)
-if : de 2 a 3m => Color(0,0,1,0)
-if : de 3 a 4m => Color(0,0,0,1)
tu peux donc facilement gérer 4 texture dans la void surf ( 4 canaux pour une couleur) en multipliant chaque canal de couleur a une des 4 texture.
rouge * texture1, vert*texture2, bleu*texture3 et alpha * texture4
et tu additionne le tout pour le Albedo
pas oublier d'ajouter une info avec COLOR dans la struct input : half4 Col : COLOR; par exemple que tu récupère dans la void surf avec IN.Col
En se creusant un peu la tete sur comment assigner les couleur aux vertex et les récupérer distinctement, peut monter a plus de 12 texture, rien qu'avec les vertex color.
J'avais d’ailleurs partager un shader dans ce topic, fin de première page
en fonction de la distance du vertex, tu assigne une couleur différente, bien definie.
par exemple :
-if : de 0 a 1m => Color(1,0,0,0)
-if : de 1 a 2m => Color(0,1,0,0)
-if : de 2 a 3m => Color(0,0,1,0)
-if : de 3 a 4m => Color(0,0,0,1)
tu peux donc facilement gérer 4 texture dans la void surf ( 4 canaux pour une couleur) en multipliant chaque canal de couleur a une des 4 texture.
rouge * texture1, vert*texture2, bleu*texture3 et alpha * texture4
et tu additionne le tout pour le Albedo
pas oublier d'ajouter une info avec COLOR dans la struct input : half4 Col : COLOR; par exemple que tu récupère dans la void surf avec IN.Col
En se creusant un peu la tete sur comment assigner les couleur aux vertex et les récupérer distinctement, peut monter a plus de 12 texture, rien qu'avec les vertex color.
J'avais d’ailleurs partager un shader dans ce topic, fin de première page
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: [DB - AL] Texture en fonction de la hauteur d'un vertex
Un immense merci Djulio !!
J'ai passé un peu de temps à comprendre comment ça marchait et j'ai fini par comprendre ^^
J'arrive maintenant à afficher une texture différente par hauteur
Mais dis-donc, t'es allé vachement loin dans ton projet d'île ! Chapeau pour le boulot réalisé !!
J'ai passé un peu de temps à comprendre comment ça marchait et j'ai fini par comprendre ^^
J'arrive maintenant à afficher une texture différente par hauteur
Mais dis-donc, t'es allé vachement loin dans ton projet d'île ! Chapeau pour le boulot réalisé !!
Re: [DB - AL] Texture en fonction de la hauteur d'un vertex
Ave plaisir Sebela !
héhé merci beaucoup, faudra je m'y remette un jour! ^^
héhé merci beaucoup, faudra je m'y remette un jour! ^^
______________________________________________________________
\_______________________ Impossible is nothing _______________________/