[DB - AL] Texture en fonction de la hauteur d'un vertex

Modérateur : Administrateurs Suppléants

Avatar de l’utilisateur
Sebela
Messages : 17
Inscription : 25 Juin 2014 21:39

[DB - AL] Texture en fonction de la hauteur d'un vertex

Message par Sebela » 09 Nov 2018 00:57

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 :roll:
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 :
Image

ou encore d'affecter une _MainTexture + récupérer la couleur de textures annexes pour colorer la texture :
Image

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 :gene3:
Merci pour votre aide !

Sebela

djulio74
Messages : 354
Inscription : 19 Déc 2009 22:55
Contact :

Re: [DB - AL] Texture en fonction de la hauteur d'un vertex

Message par djulio74 » 09 Nov 2018 01:46

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 ;)

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Sebela
Messages : 17
Inscription : 25 Juin 2014 21:39

Re: [DB - AL] Texture en fonction de la hauteur d'un vertex

Message par Sebela » 09 Nov 2018 14:56

Un immense merci Djulio !! :merci: :merci:
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 :D

Image

Mais dis-donc, t'es allé vachement loin dans ton projet d'île ! Chapeau pour le boulot réalisé !!

djulio74
Messages : 354
Inscription : 19 Déc 2009 22:55
Contact :

Re: [DB - AL] Texture en fonction de la hauteur d'un vertex

Message par djulio74 » 09 Nov 2018 15:07

Ave plaisir Sebela ! ;-)

héhé merci beaucoup, faudra je m'y remette un jour! ^^

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Répondre

Revenir vers « les Shaders »