Page 1 sur 2

VertexColor et arêtes franches

Publié : 28 Avr 2014 14:54
par boubouk50
Bonjour,

Après avoir fait le tour du forum, il ne me reste plus qu'une seule question encore sur les Vertex Color: Comment faire pour avoir une arête franche peinte en Vertex Color?
Après plusieurs tests, je ne suis pas parvenu à avoir une arête franche sans avoir a découper le mesh pour avoir plusieurs sommets au même endroit avec une couleur différente. Le problème, c'est que justement le mesh est découpé donc on perd le lissage (Sauf, bien sur, en éditant les normales à la main), et ça fait du boulot juste pour ça...
Existerait-il une solution simple, une case à cocher que j'ai oubliée ou toute autre solution pour avoir un Vertex Color dans Unity qui corresponde exactement à celui dans 3Dsmax?

Merci,
Antoine.

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 10:37
par mel68
Salut, je connait pas trop le vertex color et donc ne comprend pas forcément tout ce que tu nous dit mais peut être que cette vidéo peu t'aider :

http://cgcookie.com/unity/2013/03/22/qu ... ex-colors/

sur Max ça commence à 9:05

en, espérant que c'est ce qu tu cherche ^^

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 11:51
par boubouk50
Merci Mel68,
Ça ne répond pas à mon problème, donc pour être plus clair, je vais illustrer mon propos:

Image

A gauche: dans 3dsmax. A droite: dans Unity. Il n'y a pas de texture, juste du Vertex Color et de l'éclairage.

Unity semble considérer qu'il n'y a qu'un seul vertex avec une seule couleur de vertex, d'où l'interpolation dégueulasse et cet effet flou.
Pour avoir cette arête franche dans Unity, il faut que je découpe le mesh au niveau de ces arêtes franches pour avoir 2 vertices avec 2 couleurs de vertex différentes. Je perds donc la topologie de mon mesh qui se retrouve ouvert et je dois éditer les normales pour ne pas avoir de coupure visible. Bref, ça représente trop de travail à fournir, je ne trouve pas cette solution valide. Je cherche donc un moyen d'avoir le même résultat en plus simple.
J'ai joué avec les options d'import: Optimisation de mesh, split tangent, etc. Rien n'y fait. Peut-être est-ce l'export FBX, je ne sais pas.

Antoine.

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 13:50
par F@B
huuum regarde par la :
http://forum.unity3d.com/threads/158048 ... esn-t-show!

question bonus l'uvmap et texture classique ne te suffisent pas?

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 14:26
par boubouk50
Simple question d'optimisation. Moins j'ai de textures et de DrawCall mieux c'est.
En fait je fait un baking d'illumination dans le VertexColor depuis max, pour ne pas avoir à illuminer mon objet dans Unity. Je travaille sur de grosses maquettes environnementales (>50km*50km), qui doivent être portées sur tout support. Un simple shader qui multiplie la texture avec le VertexColor fait l'affaire pour optimiser un maximum.
Sinon soit tout est éclairé dynamiquement soit tout est lightmappé, ce qui ne sont absolument pas des solutions viables: le framerate tombe en flèche pour mes scènes.
A l'heure actuelle j'ai quelque chose de correct, mais aucune arrête franche, ce qui est pas top au niveau des batiments, murs, etc... (tout ce qui a l'aspect cubique)

Merci pour le lien, mais je n'ai pas de soucis en ce qui concerne le shader, j'ai déjà codé ce qu'il me fallait.
J'ai cette perte d'information quelque part, je n'arrive pas à savoir exactement où et donc comment y remédier au mieux.
Si ça se trouve, c'est juste pas possible, mais peut être quelqu'un est déjà passé par là, et ça pourrait m'éviter de perdre du temps de prod que je n'ai pas trop.

Antoine.

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 14:50
par boboss
Salut
regarde du coté de ton filter mode de ta texture ( en cliquant dessus) qui doit être en Point et non en Bilineair ou trilineair.

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 15:44
par F@B
ok je comprend mieux ton soucis, en effet mon lien n'est probablement pas utile et tu as deja ce qu'il te faut.

Boboss si c'est du vertex il n'y a pas de problème de filtre de texture je pense.

bon courage je vais faire quelques test si j'ai 5min!

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 15:48
par boboss
Oui je suis bête c'est un vertex color

alors ca vient surement du pixel shader qui interpole la couleur fournit par le vertex shader.
si ta sphère possède moins de sommet ça doit encore être pire

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 16:03
par boubouk50
Je vois que c'est réactif sur ce forum. ;)
Entrain de répondre que déjà c'est fait à ma place.

La question que je me pose: comment sont passées les infos.
Une face est composée de 3 vertex, un vertex au milieu de 4 faces sont donc en fait 4 vertex identiques.
Admettons que Unity décide que c'est le même vertex alors je me retrouve qu'avec un seul vertex et une seule couleur de vertex possible à ce point. De ce fait je suis baisé.
La question que je me pose ensuite, si je prends un vertex sur une arête qui définit 2 smoothing groups, alors j'ai un vertex avec 2 normales différentes, donc deux vertex(? car 2 infos), donc je peux également avoir deux couleurs de vertex -> ce n'est pas le cas. (en plus je perds le lissage, mais c'est pour le test).

Est ce que j'ai l'info de plusieurs couleurs au vertex et ou est ce que je la perds? Le shader peut être une piste.

Merci.

Re: VertexColor et arêtes franches

Publié : 30 Avr 2014 20:39
par Alesk
Salut,

Je ne sais pas trop comment max gère sa tambouille, mais coté carte graphique : un vertex <=> une normale <=> une couleur
Tu ne pourras pas avoir plusieurs couleurs/normales pour un même vertex, il faudra donc obligatoirement avoir des doublons :/

Si max te permet de générer proprement les couleurs et le normales dans un fichier obj, ça peut se tenter, sinon il va falloir coder toi-même un script d'export pour max ou d'import dans unity pour obtenir exactement ce que tu désires (je pourrais te filer quelques conseils plus détaillés à ce sujet, si besoin)