PDA

Voir la version complète : Aligner les normales, polygones discontinus d'un objet ( résolu ! )



luistappa
03/05/2007, 16h44
Dans la série, on en découvre tous les jours, il semble que l'alignement des normales dans le cas de polygones discontinus d'un objet ne marche pas.

Voila les poly en question, ils forment un objet unique composé de polygones qui ne se touchent pas forcément.
http://pplatiau.9online.fr/normales1.jpg

Très embêtant car, ce que je vous montre n'est qu'un morceau d'un export DXF et s'il me faut sélectionner un à un les poly dans le mauvais sens pour inverser leur normales, c'est un gros travail un peut bête ;-)
Et je ne m'explique pas que C4D n'arrive pas à aligner les normales alors qu'il les identifie parfaitement, pusqu'il leur donne bien des couleurs différentes...

Alors Bug, mauvaise manip ou mystère qui m'échappe...

Edit: Ha oui le fichier si vous voulez voir avec vos yeux à vous ;-)
Le fichier est là! (http://pplatiau.9online.fr/normales.c4d)

xs_yann
03/05/2007, 16h51
Oui, apparement c'est un problème (dont je n'ai pas la solution désolé).
Si l'on séléctionne la face d'un cube puis inverser les normales et enfin déconnecter. On ne peut plus aligner les normales :poucebas:

Thierry HL
03/05/2007, 17h27
Il faut peut-être faire un "optimiser" avant d'aligner les "normal"

luistappa
03/05/2007, 17h30
Vi Mr Gong, je pensaiis que le salut était là moi aussi... Ben non... Zut!
Mais il me viens une idée... Je teste.

Sir Gong
03/05/2007, 17h32
J'ai rien dit, moi.

shtl
03/05/2007, 17h33
Arf oui je rêve moi aussi d'un système permettant d'utiliser l'orientation des normales afin de les réorienter, sélectionner etc etc...(normales +Y mode monde, normales vers XY mode locale, etc)
Ce serai tellement pratique :prie:

Mais je me suis déjà retrouvé plein de fois dans la même situation, et même l'optimiser ne sert à rien. En fait j'ai du déjà perdre des jours entiers à chercher vainement.... Même essayé un masquage des faces cachées pour séléctionner celles qui reste, mais en gros ça marche pas vraiment :cry2:

Bon courage, en attendant qu'une solution nous illumine.


Gong ça suffit :lol: :mrgreen:

luistappa
03/05/2007, 17h42
Wouaf!
Gong n'a rien fait je suis témoin :lol:
THL sorry ;-) Désolé.... Quoi que je suis certain que t'aimerais bien dessiner aussi bien que Gong, nous prendrons ce lapsus comme un compliement alors.

Une idée d'Aurety que j'essaye de mettre en oeuvre, on doit pouvoir jour sur la visibilité des normales... Sauf que c'est où ce truc?

shtl
03/05/2007, 17h47
Dans les options du viewport/vue active, mais ça marche que dans les géométrie les plus simples. :?

luistappa
03/05/2007, 18h00
Nickel SHTL!

1)Viewport : Display --> backface culling
les facettes inversées disparaissent
2)Sélectionner toute la forme avec l'outils de selection rectangle, ça ne prend pas en compte les léments cachés du viewport
3)remettre toutes les faces vu dans le viewport
4) inverser la sélection
5) inverser les normales

C'est OK

C'est ce qu'il doit y avoir de plus simple, que d'aller à la pêche aux poly... 20secondes montre en main et je suis lent.
Bravo donc pour cette soluce à Aurety et SHTL

tarlack
03/05/2007, 18h34
et le fait que ca ne marche de maniere globale que si tout est connecté est compréhensible, parce que l'ordi n'a aucun moyen de savoir si 2 normales sont alignées ou pas dans le cas de polys n'ayant aucun lien entre eux. Quand tout est connecté, les aretes reliant un poly à un autre permet d'aligner de proche en proche toutes les normales car il visitera tout le mesh en partant d'un seul poly de depart qu'il prendra comme reference et en inversant les normales des polys connectés si necessaire (ce qu'il peut calculer), mais dans le cas où il n'y y a aucun lien je vois mal comment il pourrait choisir de maniere arbitraire, pour des meshs quelconques, quoi faire de sa normale. Dans ton cas simple Luis, c'est faisable vu que tout est aligné et le calcul peut etre fait "comme si c'etait connecté" en trichant et en prenant la normale elle meme comme reference absolue (et non pas son orientation par rapport au polygone), mais dans le cas de 6 polys sans aucun lien entre eux ayant la forme d'un cube dites moi comment faire pour les faces se faisant face (:lol: c'est du francais de ouf ca)...parce que si vous vous savez que ca a la tete d'un cube, avec toutes les propriétés qui vont avec (les faces reliées etc), l'ordi il en sait rien lui, il a juste 6 polygones independants.

luistappa
03/05/2007, 18h51
Wéche, Tarlack! C'est l'analyse que je fais aussi. Il faudrait, pour le faire simplement ajouter une option d'alignement des normales dans la vue.

Utile je crois, car ce cas est courant lors d'import de DXF, donc pour ceux qui partent de fichier Autocad.

tarlack
03/05/2007, 18h59
pour des fichiers aussi particuliers que ceux là, ca serait assez simple de faire un aligneur pour quiconque connait le coffee...xs ? majoul ? paspas ? :D
par exemple, tu selectionnes un poly, tu lances ton plugin, il recupere la normale n au poly, et pour tous les autres polys, si leur normale n_autre est telle que n.x * n_autre.x + n.y * n_autre.y + n.z * n_autre.z < 0 (produit scalaire quoi), on inverse la normale de l'autre poly. a plus qu'à coder pour ceux qui le peuvent, mais dans l'idée c'est tout bete, et ca marche pour toute forme plane, qu'elle soit alignée avec les axes ou pas :art:

lenogre
07/05/2007, 17h59
Y a un script qui fait ça (angle select) :
http://iangorse.co.uk/blogs/index.php

Le gros pb c'est que ça marche en valeur absolue et pas uniquement en + et -. Je crois que le script est éditable donc pour ceux qui veulent mettre les mains dans le cambouis.

arno
20/02/2008, 16h20
Hello tout le monde!

J'appréçie la technique mise en avant dans ce poste.
Pour ma part j'ai reçu des objets modélisés dans un autre programme.
Je les ai importés dans C4D et ils présentent pour la plupart des problèmes d'alignement
des normales, des fois elles sont dans un sens sur une partie de ma pièce et des fois dans un autre.
Aucun moyen d'uniformiser cela avec l'outil d'alignement. J'ai essayé la technique dont vous parlez,
mais impossible, ça ne fonctionne pas. Que faire? si je ne veux pas tout sélectionner à la main (à chaque fois c'est des milliers de polys..)
Si depuis que ce post existe quelqu'un a trouvé une solution, je suis preneur!

Merci,
Arnaud

lenogre
20/02/2008, 20h33
Aucune méthode miracle, c'est l'école de la patience. Souvent, je préfère refaire plutôt qu'essayer de sauver ce qui pourrait l'être.

shtl
20/02/2008, 22h30
Aucune méthode miracle, c'est l'école de la patience. Souvent, je préfère refaire plutôt qu'essayer de sauver ce qui pourrait l'être.


Yup, Idem.

luistappa
26/02/2008, 01h39
1)Viewport : Display --> backface culling
les facettes inversées disparaissent
2)Sélectionner toute la forme avec l'outils de selection rectangle, ça ne prend pas en compte les éléments cachés du viewport
3)remettre toutes les faces vu dans le viewport
4) inverser la sélection
5) inverser les normales
C'est OK

C'est ce qu'il doit y avoir de plus simple, que d'aller à la pêche aux poly... 20secondes montre en main et je suis lent.
Bravo donc pour cette soluce à Aurety et SHTL


Heu Arno, tu dis que cette technique ne marche pas?
Etrange chez moi elle marche nickel