Cette section décrit les outils de modélisation de courbes et de surfaces NURBS de Ayam.
Notez que l'appui sur la touche <F1>
dans les fenêtres de dialogue des outils peut être utilisé pour passer directement à la sous-section appropriée de cette partie de la documentation.
Tous les outils de modélisation NURBS sont accessibles via le menu "Tools"
de la fenêtre principale ou de la boîte à outils.
En outre, il existe également des commandes correspondantes dans l'interface de script.
De nombreux outils de modification travaillent sur plusieurs objets sélectionnés et exécutent l'opération sélectionnée sur tous ces objets sélectionnés dans l'ordre de leur apparition dans le niveau courant.
Les outils qui prennent uniquement des courbes NURBS ou uniquement des surfaces NURBS dans la sélection avertiront si la sélection contient des objets de type inadéquat, mais le traitement se poursuivra quand même.
En cas d'erreur, cependant, le traitement de plusieurs objets sélectionnés s'arrête immédiatement, laissant éventuellement derrière lui des objets modifiés et non modifiés.
Si une opération est exécutée avec succès sur un objet, les points sélectionnés peuvent être retirés de l'objet. Ensuite, la notification de l'objet sera exécutée. La notification de l'objet parent sera exécutée une fois que le traitement de tous les objets sélectionnés sera terminé.
Les outils qui créent des objets outils peuvent utiliser le presse-papiers pour déplacer les nouveaux enfants, c'est-à-dire que le contenu du presse-papiers est perdu par la suite.
Ces outils permettent de créer des objets courbes paramétriques.
Radius, Arc, Sections, Order.
Cet outil crée une courbe B-Spline non rationnelle avec des points de contrôle Sections+1+Ordre (Arc=360,0) ou Sections+1+(Ordre/2) (autres valeurs d'Arc) dans le plan XY. Les points de contrôle sont disposés dans un cercle de rayon donné, centré autour de l'origine. Cela donne à la courbe un aspect circulaire (voir l'image ci-dessus) mais il ne s'agit pas d'un cercle véritable : Si seuls quelques points de contrôle sont utilisés, le rayon de la courbe circulaire est nettement inférieur à la valeur du rayon spécifié (voir la courbe de gauche sur l'image ci-dessus). De plus, la forme, le paramétrage et la courbure de la courbe B-Spline ne sont pas exactement comme on pourrait l'attendre d'un cercle. Pour créer de véritables courbes circulaires, il convient d'utiliser l'outil NURBCircle (voir ci-dessous) à la place.
Il doit y avoir au moins 1 section. Si Arc est 360,0, les n premiers points de contrôle de la nouvelle courbe seront identiques aux n derniers (où n est d'ordre 1). Comparez les courbes de gauche et du milieu de l'image ci-dessus qui sont respectivement d'ordre 4 et 2, la première ayant 3 et la seconde ayant juste 2-1=1 points de contrôle égaux. Si Arc est 360.0, la courbe sera également marquée de façon périodique et la génération de points multiples sera activée, de sorte que les actions d'édition de points sachent qu'elles peuvent avoir besoin de déplacer deux points (Voir aussi la section Points multiples).
Si Arc est inférieur à 360.0, la courbe sera ouverte et, comme il est naturel pour une courbe B-Spline, n'interpolera pas les premier et dernier points de contrôle à moins que l'ordre soit 2 (Voir la courbe de droite dans l'image ci-dessus, qui a été créée avec une valeur d'arc de 180.0, 10 sections, et l'ordre 4).
Radius, Arc.
L'outil "NURBCircle" crée une courbe NURBS circulaire de rayon et d'arc désirés dans le plan XY, centrée autour de l'origine (voir aussi l'image ci-dessus). L'ordre de la courbe sera 3. Le nombre de points de contrôle utilisés diffère selon l'arc, par exemple 9 points pour un cercle complet, 5 pour un demi-cercle, 3 pour un quart de cercle.
La courbe NURBS créée par l'outil NURBCircle est rationnelle (utilise des poids). Cela signifie que le fait de modifier la courbe (par exemple, en déplaçant des points de contrôle) peut entraîner des résultats imprévus (la courbe ne se comporte pas exactement comme on le souhaiterait). Si la courbe doit être modifiée davantage, il convient d'utiliser à la place une B-Spline fermée, créée avec l'outil " Circular B-Spline " (voir ci-dessus). En outre, la courbe créée sera marquée comme fermée et la génération de points multiples sera activée, de sorte que les actions de modification de points sachent qu'elles peuvent avoir besoin de déplacer deux points. Voir aussi la section Points multiples.
Un cercle NURBS créé par cet outil peut être utilisé pour créer facilement un tore NURBS en déplaçant le cercle le long de X un peu puis en le faisant tourner. La quantité de mouvement détermine le rayon du tore, tandis que le rayon du cercle détermine l'épaisseur.
Width, Height
L'outil rectangle crée une courbe NURBS non rationnelle, linéaire par morceaux, plane et centrée, de forme rectangulaire et de deux fois la largeur et la hauteur spécifiées dans le plan XY (voir aussi l'image ci-dessus).
La courbe créée sera marquée comme fermée et la génération de points multiples sera activée, de sorte que les actions de modification de points sachent qu'elles peuvent avoir besoin de déplacer deux points. Voir aussi la section Points multiples.
L'outil "TrimRect" prend les objets "NPatch" sélectionnés (ou "NPatch" fournissant des objets[∗]) de la sélection. Si le niveau actuel se trouve dans un objet "NPatch", l'objet parent correspondant est utilisé.
Pour chaque patch sélectionné, l'outil TrimRect crée une courbe NURBS non rationnelle, linéaire par morceaux, plane et de forme rectangulaire dans le plan XY, qui s'inscrit dans l'espace de paramètres (u, v) de ce patch NURBS, pour être utilisée comme courbe de trim externe.
Voir également l'image ci-dessus, qui représente un rectangle pour une pièce NURBS définie sur les intervalles de noeuds
0.0, 0.0, 1.0, 1.0
et
0.0, 0.083, 0.16, 0.25, ... , 0.75, 0.83, 0.916, 1.0.
La courbe créée sera marquée comme fermée et la génération de points multiples sera activée, de sorte que les actions de modification de points sachent qu'elles peuvent avoir besoin de déplacer deux points.
Voir aussi la section
Points multiples.
Si un objet "NPatch" est sélectionné, la nouvelle courbe sera liée en tant qu'enfant de cet objet "NPatch".
Sinon, elle sera liée au niveau actuel. L'option "CreateAtMark"
est ignorée.
Voir la section
Courbes de trim (coupe) pour une discussion plus détaillée sur les courbes de trim et l'utilisation de la courbe rectangulaire créée par l'outil "TrimRect".
L'outil de courbe d'interpolation prend deux courbes NURBS de la sélection et demande un paramètre r.
Les courbes NURBS sélectionnées seront interpolées (tweened) et une nouvelle courbe incorporant les caractéristiques des deux courbes d'origine sera créée. Voir aussi l'image ci-dessus. Le paramètre r définit le rapport d'influence de la première et de la deuxième courbe (cette dernière utilise un rapport de 1 - r).
|-NCurve |-NCurve
|-NCurve ==> |-NCurve
|-NCurve
Si une troisième courbe est sélectionnée, le paramètre r est ignoré et cette troisième courbe définit le rapport d'influence avec ses coordonnées y.
Les deux courbes doivent être de même longueur et de même ordre.
Cependant, elles n'ont pas besoin d'être définis sur le même vecteur de noeud.
La courbe de contrôle d'interpolation n'a pas besoin d'être compatible avec l'une des courbes d'origine.
Si l'un des types de vecteurs de noeuds courbes est "Custom"
ou si les types de vecteurs de noeuds respectifs sont différents, le type de vecteur de noeuds résultant sera "Custom"
et les valeurs de noeuds seront également interpolées.
Sinon, un vecteur de noeud correspondant sera généré en fonction du type.
Les courbes NURBS d'origine ne seront pas supprimées par cet outil.
Voir aussi la documentation de la commande d'interface de script correspondante
tweenNC et l'outil associé pour les surfaces
Outil d'interpolation de surfaces (Tween Surfaces).
Pour interpoler une courbe NURBS fournissant des objets ou des objets de courbe NURBS incompatibles, un objet Script doit être utilisé, comme indiqué dans l'exemple distribué de fichier de scène "tweenc.ay"
et le script "tweenc.tcl"
.
Ces outils modifient les objets courbes paramétriques.
Sauf indication contraire, les balises PV sont non prises en charge/modifiées par ces outils.
L'outil "Revert" prend tous les objets "NCurve", "ICurve", "ACurve", "NCircle" et "ConcatNC" de la sélection. De plus, les types d'objets de courbe définis par plugin peuvent prendre en charge l'opération de retour.[∗]
La direction des courbes sélectionnées sera inversée.
Cet outil inverse également les distances de noeuds relatives des courbes NURBS de sorte que, par exemple, une courbe NURBS définie sur le vecteur noeud (asymétrique)
[ 0 0 0 0.75 1 1 1 ]
obtiendra le nouveau vecteur de noeud
[ 0 0 0 0.25 1 1 1 ]
après inversion.
Cela garantit que la forme d'une courbe NURBS ne change pas pendant l'inversion.
Les courbes d'interpolation et d'approximation peuvent changer de forme car les algorithmes d'interpolation/approximation sous-jacents ne sont pas invariants en fonction de la direction.
Pour l'interpolation des courbes, les dérivées finales sont également inversées correctement.
L'outil "Revert" peut être facilement invoqué à partir des fenêtres de visualisation en utilisant le raccourci clavier <!>
(exclamation mark).
Les points éventuellement sélectionnés le seront encore après cette opération.
Voir aussi la documentation de la commande correspondante de l'interface de script
revertC et les outils correspondants pour les surfaces
Outil de reversement sur U (Revert U) et
Outil de reversement sur V (Revert V).
L'outil d'ouverture prend tous les objets "NCurve", "ICurve", "ACurve" et "ConcatNC" de la sélection. De plus, les types d'objets de courbe définis par plugin peuvent prendre en charge l'opération d'ouverture.[∗]
Les courbes seront ouvertes.
Pour les objets "NCurve" fermés, le dernier point sera éloigné du premier (les points d'extrémité multiples seront gérés correctement), voir aussi l'image ci-dessus.
Pour les courbes NURBS périodiques, les derniers points p seront éloignés du premier p (où p est le degré de la courbe).
Pour les objets "ACurve", "ICurve" et "ConcatNC", l'attribut "Closed"
sera effacé et aucun point de contrôle ne sera modifié.
L'outil d'ouverture peut être facilement invoqué à partir de fenêtres de visualisation en utilisant le raccourci clavier <(>
.
Voir également la documentation de la commande correspondante de l'interface de script
openC.
L'outil "Close" prend tous les objets "NCurve", "ICurve", "ACurve" et "ConcatNC" de la sélection. En outre, des types d'objets de courbe définis par des plugins peuvent prendre en charge l'opération de fermeture[∗]
Les courbes seront fermées.
Pour les objets "NCurve", le dernier point sera rendu identique au premier, cependant, cela ne garantit pas une forme de courbe fermée à moins que le vecteur noeud soit serré, voir aussi l'image ci-dessus.
Pour les objets "ACurve", "ICurve" et "ConcatNC", l'attribut "Closed"
sera défini et aucun point de contrôle ne sera modifié.
L'outil de fermeture peut être facilement invoqué à partir des fenêtres de visualisation en utilisant le raccourci clavier <)>
.
Voir également la documentation de la commande correspondante de l'interface de script
closeC.
L'outil d'affinage prend tous les objets "NCurve", "ICurve" et "ACurve" de la sélection. [∗] De plus, des types d'objets courbes définis par plugin peuvent prendre en charge l'opération de raffinage.[∗]
Les courbes sélectionnées seront affinées en insérant un point de contrôle au milieu de chaque intervalle de points de contrôle, ce qui modifiera la forme de la courbe. Les points de contrôle d'origine ne seront pas modifiés. Pour les courbes NURBS périodiques, aucun point de contrôle ne sera inséré dans les derniers intervalles p (où p est le degré de la courbe), cela permet de maintenir la périodicité, voir aussi l'image ci-dessous où une courbe périodique de longueur 9 (8 sections) a été affinée, ce qui donne une courbe périodique de longueur 15 (et non 17).
L'outil d'affinage peut être facilement invoqué à partir de fenêtres de visualisation en utilisant le raccourci clavier <#>
.[∗]
Voir également la documentation de la commande correspondante de l'interface de script refineC.
L'outil de raffinement des noeuds prend un certain nombre de courbes NURBS dans la sélection.
Les vecteurs de noeuds des courbes NURBS sélectionnées seront affinés en insérant un noeud au milieu de chaque intervalle de noeud intérieur sans modifier la forme de la courbe.
De nouveaux points de contrôle seront ajoutés et la position des anciens points de contrôle pourra être modifiée au fur et à mesure.
Voir aussi l'image ci-dessus où une courbe définie sur le vecteur noeud :
[ 0 0 0 0 1 1 1 1 ]
est successivement affiné jusqu'au vecteur noeud :
[ 0 0 0 0 0.5 1 1 1 1 ]
et donc
[ 0 0 0 0 0.25 0.5 0.75 1 1 1 1 ].
Comme les nouveaux noeuds ne sont insérés que dans les intervalles intérieurs, l'état de serrage des vecteurs de noeuds ne change pas.
En outre, les vecteurs de noeuds de type "NURB"
ne changent pas de type, les autres vecteurs de noeuds sont changés en type "Custom"
.
Le type de courbe des courbes périodiques "NURB" sera conservé.
La sélection de points sera supprimée des objets traités.
Voir également la documentation de la commande correspondante de l'interface de script
refineknNC et l'outil correspondant pour les surfaces
Outil de raffinage des noeuds de surface (Refine Knots Surface).
Cet outil prend un certain nombre de courbes NURBS de la sélection et demande un vecteur de nouvelles valeurs de noeuds.
Les vecteurs noeuds des courbes NURBS sélectionnées seront affinés en insérant tous les noeuds du vecteur spécifié en une seule fois. De nouveaux points de contrôle seront ajoutés et la position des anciens points de contrôle pourra être modifiée en cours de route. Le vecteur de noeuds résultant doit être valide, sinon une erreur sera signalée et la courbe respective ne sera pas modifiée.
Notez que les formes des courbes ne changent pas, mais la position de certains points de contrôle, si. La sélection des points sera supprimée des objets traités. Voir également la documentation de la commande correspondante de l'interface de script refineknNC et l'outil correspondant pour les surfaces Outil de raffinage des noeuds avec la surface(Refine Knots With Surface).
L'outil d'approximation prend tous les objets "NCurve", "ICurve" et "ACurve" de la sélection. [∗] De plus, des types d'objets courbes définis par plugin peuvent prendre en charge l'opération d'approximation.[∗]
Un point de contrôle sur deux dans les vecteurs de contrôle des courbes sélectionnées sera supprimé. Si la nouvelle longueur de la courbe est inférieure à l'ordre actuel, l'outil "Coarsen" ne changera rien.
Pour les courbes NURBS périodiques, l'outil d'approximation ne supprime pas les points de contrôle des premiers (derniers) intervalles p (où p est le degré de la courbe).
Pour les courbes fermées, l'outil d'approximation ne supprime pas le dernier point.
L'outil d'approximation supprimera également les valeurs de noeuds des courbes NURBS avec des vecteurs de noeuds personnalisés.
S'il y a des points sélectionnés, seuls les intervalles entre le premier et le dernier point sélectionné sont affectés.
La sélection des points sera modifiée de manière à ce que l'outil puisse être appliqué plusieurs fois.[∗]
L'outil d'approximation peut être facilement invoqué à partir des fenêtres de visualisation en utilisant le raccourci clavier <Shift-#>
.[∗]
Voir également la documentation de la commande correspondante de l'interface de script
coarsenC.
L'outil d'élévation prend un certain nombre de courbes NURBS de la sélection et demande en plus une valeur entière.
L'ordre des courbes NURBS sélectionnées sera augmenté de la valeur entière spécifiée sans modifier la forme de la courbe. Voir également l'image d'exemple ci-dessus.
Si le vecteur noeud de la courbe n'est pas serré, il le sera automatiquement.
Le type de noeud de la courbe sera modifié en "Custom"
.
De nouveaux points de contrôle seront ajoutés et la position des anciens points de contrôle pourra être modifiée en cours de route.
La sélection des points sera supprimée des objets traités.
Voir également la documentation de la commande correspondante de l'interface de script
elevateNC et l'outil correspondant pour les surfaces
Outil d'augmentation de l'ordre de la surface (Elevate Surface).
L'outil de réduction prend un certain nombre de courbes NURBS dans la sélection et demande en outre une valeur de tolérance.
L'ordre des courbes NURBS sélectionnées sera diminué de un si la forme des courbes réduites ne s'écarte pas des courbes originales de la tolérance donnée en un point quelconque.
Voir également l'exemple d'image ci-dessus où une courbe d'ordre 5 et de longueur 11, définie sur le vecteur noeud
[ 0 0 0 0 0 0.25 0.25 0.5 0.5 0.75 0.75 1 1 1 1 1 ],
a été réduit à l'ordre quatre et est maintenant de longueur sept et défini sur le vecteur noeud
[ 0 0 0 0 0.25 0.5 0.75 1 1 1 1 ].
Si le vecteur noeud de la courbe n'est pas serré, il le sera automatiquement.
Le type de noeud de la courbe sera modifié en "Custom"
.
Les points de contrôle seront supprimés et la position des anciens points de contrôle pourra être modifiée en cours de route.
La sélection des points sera supprimée des objets traités.
La possibilité de réduire une certaine courbe peut être améliorée en augmentant d'abord la multiplicité des noeuds internes.
En outre, si la forme de la courbe réduite a la priorité sur la distribution des points de contrôle appropriés pour une édition ultérieure, l'outil d'approximation de la courbe peut être en mesure de fournir un résultat même si la réduction de la courbe échoue, voir la section
Outil d'approximation (Approximate).
Voir également la documentation de la commande correspondante de l'interface de script reduceNC et les outils de surface correspondants Outil de réduction de l'ordre des surfaces (Reduce Surface).
L'outil d'extension prend un certain nombre de courbes NURBS de la sélection et demande en plus un point dans l'espace.
Les courbes NURBS sélectionnées seront étendues jusqu'au (???) point spécifié dans l'espace sans modifier la forme déjà existante des courbes.
Le vecteur noeud des courbes sera redimensionné à l'échelle [0, 1].
Si le vecteur noeud d'une courbe n'est pas serré à la fin, il le sera automatiquement.
Le type de noeud de chaque courbe sera modifié en "Custom"
.
Un nouveau point de contrôle sera ajouté et la position des anciens points de contrôle pourra être modifiée en cours de route.
En raison des contraintes liées au fait qu'un seul point de contrôle sera ajouté à la courbe et que la forme actuelle doit être conservée, la nouvelle courbe peut former des arcs de grande taille inhabituels/non désirés si le nouveau point s'écarte trop de la tangente à l'extrémité de la courbe initiale. La sélection du point sera retirée des objets traités. Voir également la documentation de la commande correspondante de l'interface de script extendNC.
L'outil de serrage prend un certain nombre de courbes NURBS à partir de la sélection.
Les vecteurs de noeuds des courbes NURBS sélectionnées seront modifiés par insertion de noeuds de sorte que le premier et le dernier noeud aient une multiplicité égale à l'ordre de la courbe, sans modifier la forme de la courbe.
La courbe interpolera ensuite le premier et le dernier point de contrôle (à moins que les poids de ces points ne soient pas de 1,0).
Voir aussi l'image ci-dessus, où une courbe de longueur sept et d'ordre quatre, définie à l'origine sur le vecteur noeud :
[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 ]
a été serrée et est maintenant défini sur le vecteur du noeud :
[ 0.3 0.3 0.3 0.3 0.4 0.5 0.6 0.7 0.7 0.7 0.7 ].
Le type de noeud des courbes sera modifié en "Custom"
.
Dans les versions de Ayam antérieures à 1.18, c'était une erreur si la courbe était déjà serrée de part et d'autre, ce n'est plus le cas.
En outre, les courbes comportant plusieurs noeuds dans la ou les régions d'extrémité ne pouvaient pas être serrées, ce qui fonctionne bien maintenant.
Voir aussi la documentation de la commande correspondante de l'interface de script
clampNC et l'outil correspondant pour les surfaces
Outil de serrage de surface (Clamp Surface).
L'outil de desserrage prend un certain nombre de courbes NURBS dans la sélection.
Les vecteurs de noeuds des courbes NURBS sélectionnées seront modifiés de manière à ce qu'il n'y ait pas de noeuds multiples aux extrémités respectives des vecteurs de noeuds.
La forme de la courbe ne sera pas modifiée, mais la position de certains points de contrôle le sera.
Le type de noeud de la courbe peut être modifié en tapant "Custom"
.
Voir aussi l'image ci-dessus où une courbe NURBS de longueur quatre et d'ordre trois, définie sur le vecteur noeud
[ 0 0 0 0.5 1 1 1 ],
a été déserrée et utilise maintenant le nouveau vecteur de noeud :
[ 0 0.1333 0.3333 0.5 0.6667 0.8333 1 ].
Le desserrage n'est pas l'exacte opposé du serrage (et vice et versa). En outre, comme l'opération de desserrage ne fonctionne que sur les courbes complètement serrés, l'outil de desserrage peut devoir brider la courbe en premier. Voir également la documentation de la commande correspondante de l'interface de script unclampNC et de l'outil de desserrage des surfaces correspondant Outil de desserrage des surfaces (Unclamp Surface).
L'outil d'insertion de noeuds prend un certain nombre de courbes NURBS dans la sélection et demande deux valeurs supplémentaires, une valeur paramétrique u et une valeur entière i.
Un noeud ayant la valeur spécifiée u sera inséré i fois dans le vecteur noeud des courbes sélectionnées, sans modifier la forme des courbes.
Voir également l'image ci-dessus, où un noeud a été inséré à u = 0,5 une fois dans une courbe de longueur quatre et d'ordre quatre qui a été définie à l'origine sur le vecteur noeud :
[ 0 0 0 0 1 1 1 1 ].
La courbe traitée de longueur cinq est définie sur le vecteur noeud :
[ 0 0 0 0 0.5 1 1 1 1 ].
Le type de noeud des courbes sera modifié en "Custom"
.
La sélection de points sera supprimée des objets traités.
Voir également la documentation de la commande correspondante de l'interface de script
insknNC et l'outil correspondant pour les surfaces
Outil d'insertion de noeuds (Insert Knot Surface).
L'outil de suppression de noeud prend un certain nombre de courbes NURBS dans la sélection et demande trois valeurs supplémentaires, une valeur paramétrique t, une valeur entière r, et une valeur de tolérance tol.
Le noeud à la valeur paramétrique spécifiée t sera supprimé r fois du vecteur noeud des courbes sélectionnées si la forme de la courbe résultante ne s'écarte pas de plus de tol de la courbe originale en un point quelconque.
Depuis Ayam 1.20, le noeud à supprimer peut également être spécifié en utilisant son indice (basé sur le zéro) dans le vecteur noeud ; par exemple en entrant "-i 3"
au lieu de "0.5"
pour le vecteur noeud :
[ 0 0 0 0.5 1 1 1 ].
Si le noeud ne peut être enlevé r fois en raison de la tolérance donnée, une erreur est signalée et la courbe originale est laissée inchangée.
Cette opération échoue également, si l'élimination du noeud entraîne une courbe d'ordre inférieur.
Voir également l'image ci-dessus, où le noeud t = 0,5 a été supprimé une fois sur une courbe de longueur cinq et d'ordre quatre qui a été définie à l'origine sur le vecteur du noeud :
[ 0 0 0 0 0.5 1 1 1 1 ].
La courbe traitée de longueur quatre est définie sur le vecteur noeud :
[ 0 0 0 0 1 1 1 1 ].
Si tol est "0.0"
l'outil de suppression des noeuds essaie de travailler sans modifier la forme de la courbe, c'est-à-dire que seuls les noeuds superflus seront supprimés.
Si tol est "Inf"
(infini), le noeud spécifié sera supprimé indépendamment des modifications potentielles de la courbe.
La sélection de points sera supprimée des objets traités.
Voir également la documentation de la commande correspondante de l'interface de script
remknNC et de l'outil de surface correspondant
Outil de suppression de noeuds (Remove Knot Surface).
L'outil de suppression des noeuds superflus prend un certain nombre de courbes NURBS dans la sélection et demande une valeur de tolérance tol.
Tous les noeuds qui ne contribuent pas à la forme de la courbe seront supprimés du vecteur noeuds des courbes sélectionnées si la forme de la courbe résultante ne s'écarte pas de plus de tol de la courbe originale en un point quelconque.
Il n'y a pas d'erreur si aucun noeud ne peut être enlevé.
Voir également l'exemple d'image ci-dessus où une courbe créée par l'algorithme de concaténation avec le type de noeud "Custom"
et donc des noeuds superflus a été nettoyée par l'outil de suppression des noeuds superflus.
La courbe originale d'ordre trois avec 28 points de contrôle est définie sur le vecteur de noeuds :
[ 0 0 0 1 1 1 1.5 2 2 2 3 3 3 3.5 4 4 4 5 5 5 5.5 6 6 6 7 7 7 7.5 8 8 8 ].
La courbe traitée comporte 21 points de contrôle et est définie sur le vecteur noeud :
[ 0 0 0 1 1 1.5 2 2 3 3 3.5 4 4 5 5 5.5 6 6 7 7 7.5 8 8 8 ].
La sélection de points sera retirée des objets traités. Voir également la documentation de la commande correspondante de l'interface de script remsuknNC et les outils de surface correspondants Outil de suppression des noeuds superflus (Remove Superfluous Knots).
L'outil de lissage prend un certain nombre de courbes NURBS de la sélection et demande une valeur de tolérance tol.
Les points de contrôle des courbes seront modifiés de manière à ce que la forme de la courbe soit un peu plus lisse. Le mouvement d'un seul point de contrôle est limité par la valeur de tolérance spécifiée. Il est également possible d'appliquer l'outil plusieurs fois jusqu'à ce que la forme de la courbe réponde aux exigences.[∗]
S'il y a des points sélectionnés, seuls ceux-ci seront modifiés.
Voyez également les images ci-dessus où un pli sur le bord d'attaque d'un profil d'aile (a) a été supprimé en appliquant deux fois l'outil de lissage avec une valeur de tolérance de 0,1, ce qui donne la courbe inférieure (b). Comparez également les tracés de courbure des deux courbes (c et d).
L'algorithme de lissage utilise les quatre points de contrôle voisins directs et indirects de chaque point à traiter. Cela pose un problème pour les points d'extrémité d'une courbe ouverte. Par conséquent, le vecteur de contrôle des courbes ouvertes sera étendu, de sorte que chaque point de la courbe originale ait quatre voisins. Cependant, la qualité du lissage pour le premier, le deuxième, l'avant-dernier et le dernier point de contrôle d'une courbe ouverte sera un peu plus faible. L'algorithme original ne donne des résultats optimaux que pour les courbes cubiques (d'ordre quatre), l'utilisation de courbes d'autres degrés fonctionnera également mais donnera des résultats moins bons. Du fait que l'algorithme utilise des points déjà lissés comme points d'entrée pour d'autres points à caréner, il n'est pas invariant en direction s'il est utilisé sur tous ou plusieurs points voisins. De plus, les points de contrôle déjà placés sur des positions très bonnes, voire optimales, peuvent être déplacés vers des positions moins favorables. D'autres problèmes se posent pour les points de contrôle multiples, utilisés pour modéliser des angles vifs. En cas de doute, il suffit de sélectionner un seul point de contrôle pour être juste. Voir également la documentation de la commande correspondante de l'interface de script fairNC.
L'outil de concaténation prend toutes les courbes NURBS et la courbe NURBS fournissant des objets de la sélection et demande les paramètres de fermeture, de type de noeud et de création de filet.[∗]
Les courbes sélectionnées seront concaténées et une nouvelle courbe NURBS sera créée.
|-NCurve |-NCurve
|-NCurve ==> |-NCurve
|-NCurve
L'ordre de la nouvelle courbe est repris de la première courbe. Si l'une des courbes a des poids, la courbe résultante en aura aussi. Les courbes NURBS originales ne seront pas supprimées par cet outil. Voir aussi la section L'objet ConcatNC (Concatène les courbes NURBS) et la documentation de la commande correspondante de l'interface de script concatC.
L'outil de fractionnement de courbes prend un certain nombre de courbes NURBS dans la sélection et demande en outre une valeur paramétrique u. En outre, une option append peut être définie.
Les courbes NURBS sélectionnées seront fractionnées en deux courbes NURBS à la valeur paramétrique désignée u.
Le processus de fractionnement implique l'application de l'insertion de noeuds, de sorte que toutes les nouvelles courbes obtiendront un vecteur de noeuds personnalisé.
Voir également l'image ci-dessus, où une courbe de longueur et d'ordre quatre, définie à l'origine sur le vecteur de noeud
[ 0 0 0 0 1 1 1 1 ],
a été fractionné à la valeur paramétrique 0,5, ce qui a donné une nouvelle courbe de longueur et d'ordre quatre qui est définie sur le vecteur noeud
[ 0.5 0.5 0.5 0.5 1 1 1 1 ].
La courbe originale sera définie sur le vecteur noeud
[ 0 0 0 0 0.5 0.5 0.5 0.5 ]
après cette opération.
Les objets de la courbe NURBS sélectionnés à l'origine seront modifiés. La ou les nouvelles courbes seront insérées dans le niveau juste après la ou les courbes respectives à fractionner, à moins que l'option append ne soit définie.[∗]
|-NCurve ==> |-NCurve
|-NCurve
La sélection de points sera supprimée des courbes initiales.
Voir également la documentation de la commande correspondante de l'interface de script
splitNC et l'outil correspondant pour les surfaces
Outil de fractionnement de la surface (Split Surface).
L'outil de courbes trim prend toutes les courbes NURBS sélectionnées dans la sélection et demande en outre deux valeurs paramétriques, umin et umax.
Les courbes NURBS sélectionnées seront ajustées à la plage paramétrique désignée (umin, umax).
Voir également l'image ci-dessus, où une courbe de longueur et d'ordre quatre, définie à l'origine sur le vecteur noeud
[ 0 0 0 0 1 1 1 1 ],
a été ajustée aux valeurs paramétriques 0.1 0.5, ce qui a donné une nouvelle courbe de longueur et d'ordre quatre qui est définie sur le vecteur de noeud
[ 0.1 0.1 0.1 0.1 0.5 0.5 0.5 0.5 ].
Le processus de trim implique l'application d'une insertion de noeuds afin que les courbes obtiennent un vecteur de noeuds personnalisé. La sélection de points sera retirée des objets originaux. Voir également la documentation de la commande correspondante de l'interface de script trimNC.
L'outil de tracé de courbure prend un certain nombre de courbes NURBS dans la sélection et demande trois valeurs supplémentaires : le nombre de points de données, la valeur de la largeur et la valeur de la hauteur.
Une nouvelle courbe NURBS, décrivant la courbure de la courbe NURBS sélectionnée, sera créée pour chacune des courbes NURBS sélectionnées. Les tracés de la courbure auront une longueur définie par le nombre de points de données et seront mis à l'échelle en fonction de la largeur et de la hauteur spécifiées. Voir également l'image ci-dessus.
L'outil d'interpolation prend un certain nombre de courbes NURBS de la sélection et demande cinq paramètres supplémentaires.
Les courbes seront modifiées de manière à interpoler tous les points de contrôle d'origine avec l'ordre d'interpolation, le type de paramétrage et les dérivées finales souhaités. Pour une description détaillée des paramètres, voir la section Propriété ICurveAttr.
Voir aussi l'image ci-dessus.
Les informations relatives au poids des courbes initiales seront éventuellement ignorées. La sélection de points sera supprimée des objets originaux. Voir également la documentation de la commande correspondante de l'interface de script interpNC et l'outil correspondant pour les surfaces Outil d'interpolation de surface (Interpolate Surface).
L'outil d'approximation prend un certain nombre de courbes NURBS de la sélection et demande cinq paramètres supplémentaires.
Les courbes seront modifiées de manière à ce qu'elles se rapprochent de leur(s) forme(s) originale(s) respective(s) en utilisant une nouvelle courbe NURBS avec un nombre réglable de nouveaux points de contrôle et d'ordre. Pour une description détaillée des paramètres, voir la section Propriété ACurveAttr.
Voir également l'image ci-dessus où une courbe avec sept points de contrôle d'origine d'ordre quatre a été approchée par une courbe avec seulement trois points de contrôle et d'ordre trois (au milieu) et par une courbe avec sept points de contrôle et d'ordre trois (à gauche).
La sélection de points sera retirée des objets originaux. Voir également la documentation de la commande correspondante de l'interface de script approxNC.
L'outil de décalage de courbe fermée prend un certain nombre de courbes fermées (les objets "NCurve", "ICurve" et "ACurve" sont pris en charge), à partir de la sélection et demande un paramètre entier supplémentaire i.
Les points de contrôle de la (des) courbe(s) seront décalés i fois.
Le paramètre i peut être négatif pour inverser le sens du décalage.
Pour une courbe fermée simple, en se décalant avec i = 1, le premier point de contrôle obtiendra les coordonnées de l'ancien dernier point de contrôle.
Cela signifie que des décalages positifs se produisent dans la direction de la courbe.
Notez que pour les courbes NURBS fermées et périodiques, les points multiples seront gérés correctement.
Les points éventuellement sélectionnés le seront encore après cette opération. Voir aussi l'image ci-dessus. Voir aussi la documentation de la commande correspondante de l'interface de script shiftC.
L'outil "To XY" prend un certain nombre d'objets NCurve, ACurve ou ICurve dans la sélection. Les courbes doivent être planes. Les courbes qui forment une seule ligne droite ne sont pas prises en charge.
Les points de contrôle des courbes seront tournés, de sorte qu'ils se trouvent dans le plan XY de l'espace objet respectif défini par les objets de la courbe. En outre, les attributs de rotation des objets de la courbe seront modifiés de manière à ce que la courbe ne change pas d'orientation par rapport aux autres objets ou à l'espace mondial. Les attributs d'échelle seront remis à 1.0.
Voir aussi l'image ci-dessus, où la courbe de gauche, plane mais non définie dans le plan XY, sera modifiée, afin qu'elle soit définie dans le plan XY (attention aux deux différents systèmes de coordonnées de l'objet en conjonction avec le système de coordonnées du monde au milieu).
Une opération inverse, en dehors de l'annulation, consisterait à appliquer les attributs de transformation actuels aux points de contrôle des courbes. Voir également la documentation de la commande correspondante de l'interface de script toXYC.
L'outil make compatible prend un certain nombre de courbes NURBS de la sélection et demande un niveau.
Les courbes seront rendues compatibles, de sorte que, en fonction du paramètre de niveau donné, elles soient de la même longueur, du même ordre et définies sur le même vecteur de noeud.
Cela facilite l'application de l'outil de construction à partir de courbes (see section
Outil de construction à partir de courbes (Build from Curves)) ou l'application du skinning (see section
Les revêtements (Skin)).
Cet outil ne modifie pas la géométrie des courbes. Cependant, comme le serrage, l'élévation en degrés et l'insertion de noeuds peuvent être utilisés sur les courbes, leur ordre, les vecteurs de noeuds et les points de contrôle peuvent être adaptés.
Les ordres de toutes les courbes seront simplement augmentés jusqu'à l'ordre maximum de toutes les courbes ; aucune tentative n'est faite pour vérifier si l'abaissement des ordres conduirait à un résultat plus simple.
La sélection de points sera retirée des objets originaux.
Voir également la documentation de la commande correspondante de l'interface de script makeCompNC et l'outil connexe pour les surfaces Outil pour rendre les surfaces compatibles (Make Surfaces Compatible).
L'outil de répartition des noeuds sur une plage prend un certain nombre de courbes NURBS dans la sélection et demande une gamme (deux valeurs flottantes).
Les vecteurs de noeuds des courbes seront mis à l'échelle, de sorte que leurs première et dernière valeurs correspondent à la plage donnée.
Depuis Ayam 1.20, le type de noeud de la courbe ne doit plus être "Custom"
.
De plus, le fait de répartir les noeuds ne change pas le type de noeud.
Cet outil ne modifie pas la géométrie des courbes.
Voir également la documentation de la commande correspondante de l'interface de script
rescaleknNC et l'outil correspondant pour les surfaces
Outil de redimensionnent des noeuds en fonction de la plage (Rescale Knots to Range).
L'outil de répartition des noeuds à distance minimale prend un certain nombre de courbes NURBS dans la sélection et demande une valeur de distance minimale.
Les vecteurs de noeuds des courbes seront mis à l'échelle, de sorte qu'aucun noeud n'ait une distance inférieure à la distance minimale donnée (sauf pour les noeuds multiples).
Depuis Ayam 1.20, le type de noeud de la courbe ne doit plus être "Custom"
.
De plus, le fait de redimensionner les noeuds ne change pas le type de noeud.
Cet outil ne modifie pas la géométrie des courbes.
Voir également la documentation de la commande correspondante de l'interface de script
rescaleknNC et l'outil correspondant pour les surfaces
Outil Redimensionnent des noeuds à la distance minimale (Rescale Knots to Mindist).
L'outil de regroupement attend un certain nombre d'objets sélectionnés avec des points de contrôle sélectionnés (balises) (voir la section Sélection/traçage de points pour savoir comment sélectionner les points de contrôle (balises)).
Les points de contrôle sélectionnés seront transformés en un seul point multiple, tous les points recevront les valeurs des coordonnées du point central respectif. Cela signifie que la forme de la courbe/surface traitée peut changer.
Cette commande est utilisé uniquement à créer des points multiples pour les objets de courbe/surface NURBS et à effacer la sélection des points.
Dans les fenêtres de visualisation, cet outil est lié à la clé <q>
.
L'outil d'éclatement s'attend à ce que certains objets comportent un certain nombre de points multiples sélectionnés (balises) (voir la section Sélection/traçage de points pour savoir comment sélectionner (balises) les points de contrôle).
Les points formant les points multiples sélectionnés seront éloignés les uns des autres. Les formes des objets traités changeront.
Cette commande est utilisée uniquement pour supprimer les points multiples des courbes/surfaces NURBS déjà existants qui ont été créés par l'option "CreateMP"
ou l'outil de regroupement ci-dessus.
Dans les fenêtres de visualisation, cet outil est lié à la clé <Q>
.
Ces outils permettent de créer des objets de surface paramétriques.
Radius.
L'outil "NURBSphere" crée une courbe NURBS en demi-cercle de rayon donné et la fait tourner autour de l'axe Y, formant ainsi une sphère.
En raison de la méthode de construction, la surface des NURBS est dégénérée aux pôles, ce qui peut conduire à des artefacts d'ombrage (comparer l'image ci-dessus).
Aucun.
L'outil "NURBSphere2" crée une sphère Cobb NURB de rayon 1.0, composée de six patchs NURBS disposés dans une configuration ressemblant à une boîte, voir aussi l'image ci-dessus.
Les patchs NURBS sont d'un niveau relativement élevé (5). Contrairement à la sphère NURBS standard, la sphère de Cobb n'est pas dégénérée et aucun artefact d'ombrage n'en résulte.
L'outil de révolution prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Revolve" et y déplace les objets sélectionnés.
|-NCurve ==> +-Revolve
\-NCurve
Voir la section Les surfaces de révolution (Revolve) pour plus d'informations concernant l'objet revolve.
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche<Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil "swing" prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Swing", déplace les objets sélectionnés vers celui-ci et fait tourner la première courbe vers le plan YZ et la seconde courbe vers le plan XZ. Si l'objet courbe respectif est de type NCurve, ICurve ou ACurve, les points de contrôle seront modifiés et les attributs de rotation seront réinitialisés, les objets d'autres types seront tournés par leurs attributs de transformation. [∗] La rotation sera enregistrée dans le tampon d'annulation.
|-Cross_section(NCurve) +-Swing
|-Trajectory(NCurve) ==> |-Cross_section(NCurve)
\-Trajectory(NCurve)
Voir la section Les surfaces par balayage (Swing) pour plus d'informations concernant l'objet "Swing".
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, les courbes paramètres restent sélectionnées et le niveau actuel est également modifié.
L'outil d'extrusion prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Extrude", et y déplace les objets sélectionnés.
|-Outline(NCurve) +-Extrude
|-Hole(NCurve) ==> |-Outline(NCurve)
\-Hole(NCurve)
Voir la section Les surfaces par extrusions (Extrude) pour plus d'informations concernant l'objet Extrude.
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil de balayage prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Sweep", déplace les objets sélectionnés vers celui-ci et propose de faire pivoter le premier objet de la courbe vers le plan YZ (s'il n'est pas déjà défini dans ce plan). Si cet objet courbe est de type NCurve, ICurve ou ACurve, les points de contrôle seront modifiés et les attributs de rotation seront réinitialisés, les objets d'autres types seront tournés par leurs attributs de transformation. [∗] La rotation sera enregistrée dans le tampon d'annulation.
|-Cross_section(NCurve) +-Sweep
|-Trajectory(NCurve) ==> |-Cross_section(NCurve)
\-Trajectory(NCurve)
Voir la section Les surfaces par glissements (Sweep) pour plus d'informations concernant l'objet "Sweep".
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil de biseau prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Bevel", et y déplace les objets sélectionnés.
|-NCurve +-Bevel
==> \-NCurve
Voir la section Les biseaux (Bevel) pour plus d'informations concernant l'objet "Bevel".
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil "Cap" prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Cap", et déplace les objets sélectionnés vers celui
|-Outline(NCurve) +-Cap
|-Hole(NCurve) ==> |-Outline(NCurve)
\-Hole(NCurve)
Voir la section Les bouchons (Cap) pour plus d'informations concernant l'objet "Cap".
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil "Birail1" prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Birail1" et y déplace les objets sélectionnés.
|-Cross_section(NCurve) +-Birail1
|-Rail1(NCurve) ==> |-Cross_section(NCurve)
|-Rail2(NCurve) |-Rail1(NCurve)
\-Rail2(NCurve)
Voir la section L'objet Birail1 pour plus d'informations concernant l'objet Birail1.
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil "Birail2" prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Birail2" et y déplace les objets sélectionnés.
|-Cross_section1(NCurve) +-Birail2
|-Rail1(NCurve) |-Cross_section1(NCurve)
|-Rail2(NCurve) ==> |-Rail1(NCurve)
|-Cross_section2(NCurve) |-Rail2(NCurve)
\-Cross_section2(NCurve
Voir la section L'objet Birail2 pour plus d'informations concernant l'objet Birail2.
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil "Gordon" prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Gordon" et y déplace les objets sélectionnés.
|-NCurve +-Gordon
|-NCurve |-NCurve
|-Level |-NCurve
|-NCurve ==> |-Level
|-NCurve |-NCurve
\-NCurve
Voir la section Surface de Gordon pour plus d'informations concernant l'objet "Gordon".
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil de revêtement prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Skin", et y déplace les objets sélectionnés.
|-NCurve +-Skin
|-NCurve ==> |-NCurve
|-NCurve |-NCurve
\-NCurve
Voir la section Les revêtements (Skin) pour plus d'informations concernant l'objet "Skin".
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil de trim prend les objets sélectionnés dans la sélection.
L'outil crée un objet "Trim", et y déplace les objets sélectionnés.
|-NPatch +-Trim
|-NCurve ==> |-NPatch
|-NCurve |-NCurve
\-NCurve
Voir la section Les découpes ou ajustements (Trim) pour plus d'informations concernant l'objet Trim.
Cet outil utilise le presse-papiers des objets pour déplacer les objets de sorte que le contenu original du presse-papiers soit perdu lorsque cet outil se termine.
En maintenant la touche <Ctrl>
enfoncée tout en cliquant sur l'icône correspondante dans la boîte à outils, la courbe paramètre reste sélectionnée et le niveau actuel est également modifié.
L'outil "Tween" prend deux patchs NURBS de la sélection et demande un paramètre r.
Les patchs NURBS sélectionnés seront interpolés (tweened) et un nouveau patch intégrant les caractéristiques des deux patchs originaux sera créé. Le paramètre r définit le rapport d'influence du premier et du second patch (ce dernier utilise un rapport de 1 - r).
|-NPatch |-NPatch
|-NPatch ==> |-NPatch
|-NPatch
Si une troisième surface est sélectionnée, le paramètre r est ignoré et cette troisième surface définit le rapport d'influence avec ses coordonnées y.[∗]
Les deux patchs doivent être de la même largeur, hauteur, uordre et vordre.
Elles ne doivent cependant pas être définies sur les mêmes vecteurs de noeuds.
La surface de contrôle d'interpolation n'a pas besoin d'être compatible avec l'un des patchs d'origine.
Si l'un des types de vecteurs de noeuds des patchs est "Custom"
ou si les types de vecteurs de noeuds respectifs sont différents, le type de vecteur de noeud résultant sera "Custom"
et les valeurs de noeuds seront également interpolées/intercalées.
Sinon, un vecteur de noeud correspondant sera généré en fonction du type.
Les patchs NURBS originaux ne seront pas supprimés par cet outil.
Les courbes trim sont complètement ignorées par cet outil.
Voir également la documentation de la commande correspondante de l'interface de script
tweenNP et de l'outil de courbes correspondant
Outil courbes interpolées (Tween Curve).
Ces outils modifient les objets de surface paramétriques.
Sauf indication contraire, les balises PV ne sont pas prises en charge/modifiées par ces outils.
L'outil de reversement sur U prend un certain nombre de patchs NURBS, "IPatch", "BPatch" ou des objets "PatchMesh" de la sélection.
Les tableaux de points de contrôle des objets sélectionnés seront inversés dans la dimension U (largeur).
Pour les patchs NURBS, cet outil inverse également les distances relatives des noeuds du vecteur noeud correspondant afin que la surface ne change pas de forme.
Cependant, les courbes trim ne seront pas modifiées.
Pour les objets "IPatch", les dérivés respectifs sont inversés.
Les balises PV ne seront pas modifiées. Voir aussi la documentation de la commande correspondante de l'interface de script revertuS et l'outil de courbes correspondant Outil de renversement (Revert).
L'outil de reversement sur V prend un certain nombre de patchs NURBS, "IPatch", "BPatch" ou des objets "PatchMesh" de la sélection.
Les tableaux de points de contrôle des objets sélectionnés seront inversés dans la dimension V (hauteur).
Pour les patchs NURBS, cet outil inverse également les distances relatives des noeuds du vecteur noeud correspondant afin que la surface ne change pas de forme.
Cependant, les courbes trim ne seront pas modifiées.
Pour les objets "IPatch", les dérivés respectifs sont inversés.
Les balises PV ne seront pas modifiées. Voir aussi la documentation de la commande correspondante de l'interface de script revertvS et l'outil de courbes correspondant Outil de renversement (Revert).
L'outil de swap uv prend un certain nombre de patchs NURBS, "IPatch", "BPatch", ou des objets "PatchMesh" de la sélection.
Les dimensions U et V des objets sélectionnés seront échangées (la largeur, la hauteur et tous les autres paramètres liés aux dimensions seront échangés) sans modifier la forme des patchs.
La sélection de points sera retirée des objets originaux. Les balises PV ne seront pas modifiées. Les courbes trim ne seront pas non plus modifiées. Voir aussi la documentation de la commande correspondante de l'interface de script swapuvS.
L'outil de raffinage des noeuds de surface prend un certain nombre de patchs NURBS dans la sélection.
Les vecteurs de noeuds respectifs des patchs NURBS sélectionnés seront affinés en insérant un noeud au milieu de chaque intervalle de noeud intérieur sans modifier la forme des patchs.
De nouveaux points de contrôle seront ajoutés et la position des anciens points de contrôle pourra être modifiée au fur et à mesure.
Voir aussi l'image ci-dessus où une surface définie sur le vecteur noeud
[ 0 0 0 0 1 1 1 1 ]
est successivement affiné jusqu'au vecteur noeud
[ 0 0 0 0 0.5 1 1 1 1 ]
et donc
[ 0 0 0 0 0.25 0.5 0.75 1 1 1 1 ].
Comme les nouveaux noeuds ne sont insérés que dans les intervalles intérieurs, l'état de serrage des vecteurs de noeuds ne change pas.
En outre, les vecteurs de noeuds de type "NURB"
ne changent pas de type, les autres vecteurs de noeuds sont changés en type "Custom"
.
La sélection de points sera supprimée des objets originaux.
Il existe également des outils permettant d'affiner uniquement les noeuds U ou V.
Voir également la documentation des commandes correspondantes de l'interface de script
refineuNP et
refinevNP et l'outil de courbes correspondant
Outil d'affinage des noeuds (Refine Knots).
L'outil de raffinement des noeuds avec surface prend un certain nombre de patchs NURBS de la sélection et demande un vecteur de nouvelles valeurs de noeuds.
Les vecteurs de noeuds respectifs des patchs NURBS sélectionnés seront affinés en insérant tous les noeuds du vecteur spécifié à la fois.
La forme du patch ne sera pas modifiée.
De nouveaux points de contrôle seront ajoutés et la position des anciens points de contrôle pourra être modifiée en cours de route.
Voir aussi l'exemple d'image ci-dessus où une surface définie sur le vecteur noeud
[ 0 0 0 0 0.5 1 1 1 1 ]
a été affiné avec les nouveaux noeuds 0.2 et 0.7 dans la direction U vers le nouveau vecteur de noeud :
[ 0 0 0 0 0.2 0.5 0.7 1 1 1 1 ].
Le vecteur de noeud résultant doit être valide, sinon une erreur sera signalée et le patch respectif ne sera pas modifié.
Le type de noeud respectif du patch peut être modifié en "Custom"
.
La sélection de points sera supprimée des objets originaux.
Il existe également des outils permettant d'affiner uniquement les noeuds en U ou en V.
Voir aussi la documentation des commandes correspondantes de l'interface de script
refineuNP et
refinevNP et l'outil correspondant pour les courbes
Outil d'affinage des noeuds avec un outil (Refine Knots With Tool).
L'outil d'élévation de la surface prend un certain nombre de patchs NURBS de la sélection et demande en plus deux valeurs entières.
L'ordre des patchs NURBS sélectionnés sera augmenté des valeurs entières spécifiées sans modifier la forme des patchs.
De nouveaux points de contrôle seront ajoutés et la position des anciens points de contrôle pourra être modifiée en cours de route.
Voir également l'image ci-dessus, où une surface d'ordre quatre et de largeur cinq, définie à l'origine sur le vecteur de noeud sur U :
[ 0 0 0 0 0.5 1 1 1 1 ]
a été élevé à l'ordre cinq dans la direction U et est maintenant de largeur sept et défini sur le vecteur noeud U :
[ 0 0 0 0 0 0.5 0.5 1 1 1 1 1 ].
Si le vecteur de noeud du patch n'est pas serré, il sera serré automatiquement.
Le type de noeud du patch sera modifié en "Custom"
.
La sélection de points sera supprimée des objets originaux.
Il existe également des outils qui permettent d'élever une pièce dans la direction U ou V uniquement.
Voir aussi la documentation des commandes correspondantes de l'interface de script
elevateuNP et
elevatevNP ainsi que l'outil correspondant pour les courbes
Outil d'élévation (Elevate).
Les outils de réduction de surface prennent un certain nombre de surfaces NURBS dans la sélection et demandent en outre une valeur de tolérance.
L'ordre des surfaces NURBS sélectionnées sera diminué de un si la forme des surfaces réduites ne s'écarte pas des surfaces originales de la tolérance donnée en un point quelconque.
Voir aussi l'exemple d'image ci-dessus où une surface d'ordre quatre et de hauteur quatre, définie sur le vecteur noeud v
[ 0 0 0 0 1 1 1 1 ],
a été réduit dans la direction V à l'ordre trois et est maintenant de hauteur trois et défini sur le vecteur noeud V
[ 0 0 0 1 1 1 ].
Si le vecteur noeud respectif de la surface n'est pas serré, il le sera automatiquement.
Le type de noeud respectif de la surface sera modifié en "Custom"
.
Les points de contrôle seront supprimés et la position des anciens points de contrôle pourra être modifiée en cours de route.
La sélection des points sera supprimée des objets traités.
La capacité de réduire une certaine surface peut être améliorée en augmentant d'abord la multiplicité des noeuds internes.
Voir également la documentation des commandes correspondantes de l'interface de script
reduceuNP et
reducevNP ainsi que l'outil correspondant pour les courbes
Outil de réduction (Reduce).
L'outil de serrage de surface prend un certain nombre de patchs NURBS dans la sélection.
Les vecteurs de noeuds des patchs NURBS sélectionnés seront modifiés par insertion de noeuds de sorte que le premier et le dernier noeud (dans chaque direction) aient une multiplicité égale à l'ordre du patch (dans la direction respective).
Voir également l'image ci-dessus, où une surface de largeur/hauteur quatre et les deux ordres également quatre, définis à l'origine sur les vecteurs de noeuds :
[ 0 0.1428 0.2857 0.4285 0.5714 0.7142 0.8571 1.0 ]
a été serrée et est maintenant définie sur les vecteurs de noeuds :
[ 0.4285 0.4285 0.4285 0.4285 0.5714 0.5714 0.5714 0.5714 ].
La forme des patchs ne changera pas, mais la position de certains points de contrôle le sera.
Les patchs interpolent ensuite le premier et le dernier point de contrôle dans la direction respective (sauf si le poids de ces points n'est pas de 1.0).
Les types de noeuds des patchs seront changés en type "Custom"
.
Il existe également des outils qui permettent de brider un patch seulement dans la direction U ou V.
Voir également la documentation des commandes correspondantes de l'interface de script
clampuNP et
clampvNP et l'outil correspondant pour les courbes
Outil de resserrage (Clamp).
Outil de desserrage des surfaces prend un certain nombre de patchs NURBS dans la sélection.
Les vecteurs de noeuds des patchs NURBS sélectionnés seront modifiés de manière à ce qu'il n'y ait pas de noeuds multiples aux extrémités respectives des vecteurs de noeuds.
La forme des patchs ne changera pas, mais la position de certains points de contrôle le sera.
Les types de noeuds des patchs peuvent être changés en type "Custom"
.
Voir également l'image ci-dessus, où une surface de largeur/hauteur quatre et les deux ordres trois, définis à l'origine sur les vecteurs de noeuds :
[ 0 0 0 0.5 1 1 1 ]
a été déserrée et est maintenant défini sur les vecteurs de noeuds :
[ 0 0.1666 0.3333 0.5 0.6666 0.8333 1 ].
Le desserrage n'est pas exactement l'opération inverse du serrage (et vice et versa). En outre, comme l'opération de desserrage ne fonctionne que sur des surfaces complètement serrées, l'outil de desserrage peut devoir serrer la surface en premier. Il existe également des outils permettant de desserrer un patch dans le sens U ou V uniquement. Voir également la documentation des commandes correspondantes de l'interface de script unclampuNP et unclampvNP et l'outil correspondant pour les courbes Outil de desserrage (Unclamp).
L'outil d'insertion de noeuds prend un certain nombre de patchs NURBS dans la sélection et demande deux valeurs supplémentaires, une valeur paramétrique t et une valeur entière i.
Un noeud ayant la valeur spécifiée t sera inséré i fois dans le vecteur noeud des patchs sélectionnés, sans en modifier la forme.
Voir également l'image ci-dessus, où un noeud a été inséré à u = 0.5 une fois dans une surface de largeur quatre et d'ordre quatre qui a été définie à l'origine sur le vecteur de noeud U :
[ 0 0 0 0 1 1 1 1 ].
La surface transformée de largeur cinq est définie sur le vecteur noeud u :
[ 0 0 0 0 0.5 1 1 1 1 ].
Le type de noeud du patch sera changé en "Custom"
.
Cet outil ne modifie pas la géométrie des patchs.
La sélection de points sera supprimée des objets originaux.
Voir également la documentation des commandes correspondantes de l'interface de script
insknuNP and
insknvNP et l'outil correspondant pour les courbes
Outil d'insertion de noeud (Insert Knot).
L'outil de suppression de noeuds prend un certain nombre de surfaces NURBS dans la sélection et demande trois valeurs supplémentaires, une valeur paramétrique t, une valeur entière r, et une valeur de tolérance tol.
Le noeud à la valeur paramétrique spécifiée t sera supprimé r fois du vecteur noeud des surfaces sélectionnées si la forme des surfaces résultantes ne s'écarte pas de plus de tol des surfaces d'origine en un point quelconque.
Depuis Ayam 1.20, le noeud à supprimer peut également être spécifié en utilisant son indice (basé sur le zéro) dans le vecteur noeud ; par exemple en entrant "-i 3"
au lieu de "0.5"
pour le vecteur noeud :
[ 0 0 0 0.5 1 1 1 ].
Si le noeud ne peut être enlevé r fois en raison de la tolérance donnée, une erreur est signalée et la surface d'origine est laissée inchangée.
Cette opération échoue également, si l'élimination du noeud conduisait à une surface d'ordre moindre.
Voir également l'image ci-dessus, où le noeud t = 0.5 a été supprimé une fois sur une surface de largeur cinq et d'ordre quatre qui a été définie à l'origine sur le vecteur noeud u :
[ 0 0 0 0 0.5 1 1 1 1 ].
La surface traitée de largeur quatre est définie sur le vecteur noeud :
[ 0 0 0 0 1 1 1 1 ].
Si tol est "0.0"
l'outil de suppression des noeuds essaie de travailler sans modifier la forme de la surface, c'est-à-dire que seuls les noeuds superflus seront supprimés.
Si tol est "Inf"
(infini), le noeud spécifié sera enlevé indépendamment des changements potentiels de la surface.
La sélection de points sera supprimée des objets originaux.
Voir également la documentation des commandes correspondantes de l'interface de script
remknuNP, et
remknvNP et l'outil correspondant pour les courbes
Outil de suppression de noeud (Remove Knot).
L'outil de suppression des noeuds superflus prend un certain nombre de surfaces NURBS dans la sélection et demande une valeur de tolérance tol.
Tous les noeuds qui ne contribuent pas à la forme de la surface seront éliminés du vecteur noeuds des surfaces sélectionnées si la forme de la surface résultante ne s'écarte pas de plus de tol de la surface d'origine en un point quelconque.
Il n'y a pas d'erreur si aucun noeud ne peut être enlevé.
La sélection de points sera retirée des objets traités. Voir également la documentation des commandes de l'interface de script correspondante remsuknuNP et remsuknvNP. Voir aussi l'outil correspondant pour les courbes Outil de suppression des noeuds superflus.
L'outil de fractionnement de la surface prend un certain nombre de patchs NURBS dans la sélection et demande une valeur paramétrique t (dans la dimension paramétrique U ou V, respectivement). En outre, une option append peut être définie.
Les patchs seront fractionnés à la valeur paramétrique t en deux patchs (en dimension paramétrique U ou V, respectivement) en utilisant l'insertion de noeuds.
|-NPatch ==> |-NPatch
|-NPatch
Le(s) objet(s) original(s) du patch NURBS sera (seront) modifié(s). La ou les nouvelles surfaces seront insérées dans le niveau juste après la ou les surfaces respectives à fractionner, à moins que l'option append ne soit définie.[∗] La sélection de points sera retirée des objets originaux. Les courbes trim éventuellement présentes ne seront paspas correctement respectées. Voir également la documentation des commandes correspondantes de l'interface de script splituNP, splitvNP et l'outil correspondant pour les courbes Outil de fractionnement (Split).
L'outil d'interpolation de surface prend un certain nombre de patchs NURBS dans la sélection et demande un paramètre supplémentaire o.
Les patchs seront modifiés de manière à interpoler tous les points de contrôle d'origine avec l'ordre d'interpolation souhaité o. Voir également l'image ci-dessus.
Les informations relatives au poids des patchs originaux seront finalement ignorées. La sélection de points sera supprimée des objets originaux. Voir également la documentation des commandes correspondantes de l'interface de script interpuNP et interpvNP, ainsi que l'outil correspondant pour les courbes Outil d'interpolation (Interpolate).
L'outil "Make Compatible" prend un certain nombre de surfaces NURBS dans la sélection et demande un côté et un niveau.
Les surfaces seront rendues compatibles, de sorte que, sur la base des paramètres de côté et de niveau donnés, elles soient du même ordre, largeur/hauteur, et définies sur le même vecteur de noeud.
Cet outil ne modifie pas la géométrie des surfaces. Cependant, comme le serrage, l'élévation en degrés et l'insertion de noeuds peuvent être utilisés sur les surfaces, leur ordre, les vecteurs de noeuds et les points de contrôle peuvent être modifiés. Les ordres de toutes les surfaces seront simplement augmentés jusqu'à l'ordre maximum de toutes les surfaces ; aucune tentative n'est faite pour vérifier, si l'abaissement des ordres ne conduiraient pas à un résultat plus simple. La sélection des points sera supprimée des objets originaux. Voir également la documentation de la commande correspondante de l'interface de script makeCompNP et l'outil correspondant pour les courbes Outil pour rendre compatible (Make Compatible).
L'outil de redimensionnent des noeuds en fonction de la plage prend un certain nombre de patchs NURBS dans la sélection et demande une plage.
Les vecteurs de noeuds des patchs seront mis à l'échelle, de sorte que leurs première et dernière valeurs correspondent à la plage donnée. Les courbes de trim, si elles existent, seront également mises à l'échelle pour correspondre à la nouvelle plage.
Depuis Ayam 1.20, le type de noeud de la surface ne doit plus être "Custom"
.
De plus, le fait de redimensionner les noeuds ne change pas le type de noeud.
Cet outil ne modifie pas la géométrie des patchs.
Voir également la documentation de la commande correspondante de l'interface de script
rescaleknNP et l'outil correspondant pour les courbes
Outil de répartition des noeuds sur une plage (Rescale Knots to Range).
L'outil de redimensionnement des noeuds à la distance minimale prend un certain nombre de patchs NURBS dans la sélection et demande une valeur de distance minimale.
Les vecteurs de noeuds des patchs seront mis à l'échelle, de sorte qu'aucun noeud n'ait une distance inférieure à la distance minimale donnée (sauf pour les noeuds multiples). Les courbes de trim, si elles existent, seront également mises à l'échelle pour correspondre à la nouvelle plage.
Depuis Ayam 1.20, le type de noeud de la surface ne doit plus être "Custom"
.
De plus, le fait de redimensionner les noeuds ne change pas le type de noeud.
Cet outil ne modifie pas la géométrie des patchs.
Voir également la documentation de la commande correspondante de l'interface de script
rescaleknNP et l'outil correspondant pour les courbes
Outil de répartition des noeuds à une distance minimale (Rescale Knots to Mindist).
Ces outils convertissent des objets paramétriques.
L'outil d'extraction de courbe prend le premier des objets sélectionnés dans la sélection.
L'outil crée une instance à partir du premier des objets sélectionnés, puis crée un objet "ExtrNC" et déplace l'instance vers celui-ci.
|-NPatch |-NPatch
==> +-ExtrNC
\-Instance_of_NPatch(Instance)
Cet outil utilise le presse-papiers des objets pour déplacer les objets de manière à ce que le contenu original du presse-papiers soit perdu lorsque cet outil est terminé. Voir la section L'objet ExtrNC (Extraction de courbe NURBS) Object pour plus d'informations concernant l'objet "ExtrNC".
L'outil d'extraction de patchs prend le premier des objets sélectionnés dans la sélection.
L'outil crée une instance à partir du premier des objets sélectionnés, puis crée un objet "ExtrNP" et déplace l'instance vers celui-ci.
|-NPatch |-NPatch
==> +-ExtrNP
\-Instance_of_NPatch(Instance)
Cet outil utilise le presse-papiers des objets pour déplacer les objets de manière à ce que le contenu original du presse-papiers soit perdu lorsque cet outil est terminé. Voir la section Extraction d'un patch NURBS (ExtrNP) pour plus d'informations concernant l'objet "ExtrNP".
Voir également la documentation de la commande correspondante de l'interface de script extrNP.
L'outil de décomposition en courbes prend tous les patchs NURBS de la sélection et demande certains paramètres.
Les patchs NURBS sélectionnés seront décomposés en courbes NURBS, selon la direction donnée (U ou V).
Si l'option "ApplyTrafo"
est définie, les transformations des objets "NPatch" seront appliquées aux points de contrôle et les objets "NCurve" seront créés avec des attributs de transformation par défaut, sinon les objets "NCurve" obtiendront les attributs de transformation du "NPatch" respectif.
Voir également l'image ci-dessus.
Si l'option "ReplaceOriginal"
est activée, les courbes remplaceront chaque objet "NPatch" original, cependant, par défaut, de nouveaux objets de courbe seront ajoutés au niveau actuel :
|-NPatch |-NPatch
|-NCurve
==> |-NCurve
|-NCurve
|-NCurve
Voir également la documentation de la commande correspondante de l'interface de script breakNP.
L'outil de construction à partir de courbes prend un certain nombre de courbes NURBS dans la sélection et demande certains paramètres.
Les courbes NURBS sélectionnées seront analysées, toutes les courbes qui sont de longueur égale ou supérieure à la première courbe sélectionnée seront utilisées pour former un nouveau patch NURBS aux dimensions suivantes :
Width: Nonmbre de courbes utilisées, Height: longueur de la première courbe sélectionnée.
Si l'ordre fourni est 0 (c'est l'ordre par défaut), l'ordre de la nouvelle surface dans la direction U (Order_U) sera égal au nombre de courbes utilisées pour les nombres de deux à quatre et quatre pour un nombre supérieur de courbes utilisées.
Le type de noeud dans la direction U (Knot-Type_U) sera toujours NURB.
Les autres paramètres (Order_V, Knot-Type_V, Knots_V) sont tirés de la première courbe.
Voir également l'image ci-dessus ; notez que le point de contrôle étranger de la courbe supérieure et le vecteur de noeud de la courbe inférieure sont ignorés.
Pour éviter cela, l'outil "Make Compatible" peut être utilisé en premier lieu, voir la section
Outil pour rendre compatible (Make Compatible).
Si l'option "ApplyTrafo"
est activée, les attributs de transformation des différents objets de la courbe seront appliqués aux points de contrôle, sinon ils seront simplement ignorés.
Si l'option "ReplaceOriginal"
est activée, le nouvel objet de surface remplacera la première des courbes et les autres courbes seront supprimées.
Cependant, par défaut, le nouvel objet NPatch sera ajouté au niveau actuel :
|-NCurve |-NCurve
|-NCurve |-NCurve
|-NCurve ==> |-NCurve
|-NCurve |-NCurve
|-NPatch
Voir également la documentation de la commande correspondante de l'interface de script buildNP.
L'outil de tessellation prend tous les patchs NURBS et les patchs NURBS fournissant des objets de la sélection.
Une boîte de dialogue modale (voir image ci-dessus) s'affiche, qui permet de sélectionner une méthode de tessellation via un menu déroulant et de régler le(s) paramètre(s) de tessellation correspondant(s) à l'aide d'un curseur et d'un widget d'entrée.
La méthode initiale et les valeurs des paramètres seront dérivées de la balise "TP"
du premier des objets sélectionnés (s'il possède une telle balise).
Les patchs NURBS sélectionnés ou fournis seront tesselés avec la méthode et les paramètres choisis. Les objets PolyMesh créés par la tessellation seront immédiatement affichés dans toutes les fenêtres de visualisation à la place des objets originaux. Chaque fois que la méthode ou les paramètres de tessellation sont modifiés, la tessellation sera recalculée et affichée, ce qui permettra une estimation immédiate de la qualité de la tessellation et du nombre d'éléments polygonaux créés.
Si l'option "LazyUpdate"
est activée, les mises à jour de la tessellation qui se produisent normalement en faisant glisser le(s) curseur(s) seront reportées jusqu'à ce que le bouton de la souris soit relâché.
La valeur initiale de cette option sera déterminée par le paramètre de préférence "LazyNotify"
.
Les options "UseTexCoords"
et "UseVertColors"
contrôlent le traitement des coordonnées de texture et des couleurs de sommet stockées sous forme de balises PV dans les objets à tesseler (Voir aussi la section
Balise PV (Primitive Variable)).
Lorsqu'ils sont activés, les objets PolyMesh résultants auront également des balises PV du type respectif.
Notez que les balises PV doivent être nommées comme défini par les options de préférences cachées "PVTexCoordName"
et "PVColorName"
respectivement.
Par défaut, ces options sont définies comme "st"
et "Cs"
.
Si l'option "UseTexCoords"
est activée, mais qu'aucun tag PV correspondant n'est présent, les coordonnées de texture seront générées à partir des données fournies par un tag TC ou (si aucun tag TC n'est présent) à partir des valeurs des noeuds des surfaces NURBS à tesseler.[∗]
Voir aussi la section
Balise TC (Texture Coordinates).
L'option "UseVertNormals"
contrôle le traitement des normales des sommets stockées sous forme de balises PV dans les objets à tesseler (Voir aussi la section
Balise PV (Primitive Variable)).
Lorsqu'il est activé, les objets PolyMesh résultants auront des normales dérivées de ces balises au lieu de normales dérivées de la surface NURBS.
Notez que les balises PV doivent être nommées comme défini par l'option de préférence cachée "PVNormalName"
.
Par défaut, cette option est définie à "N"
, de sorte qu'un exemple de balise correct ressemble à ceci :
PV N,varying,n,4,0,0,1,0,0,1,1,1,0,0,0,1
L'option "RefineTrims"
contrôle combien de fois les courbes de trim doivent être affinées avant la tessellation pour améliorer la fidélité de la tessellation le long des bords de trim.[∗]
Voir aussi les images ci-dessous.
L'option "Primitives"
permet de conserver les triangles créés par la tessellation (mode "TrianglesEtQuads"
) ou de synthétiser de nouveaux triangles à partir de triangles compatibles (mode "Quads"
).[∗]
Si le bouton "Ok"
est enfoncé, l'outil de tessellation sera fermé et tous les objets sélectionnés seront remplacés par leurs homologues tesselés.
Les objets originaux seront supprimés.
Si des objets référencés/maîtres font partie des objets sélectionnés ou de leurs enfants, et si l'une de leurs références n'est pas sélectionnée ou est un enfant des objets sélectionnés (c'est-à-dire qu'elle ne sera pas également supprimée), alors ces objets maîtres ne seront pas supprimés mais déplacés dans le presse-papiers à la place.
Si le bouton "Save"
est utilisé, le dialogue de tessellation sera fermé et les balises "TP"
contenant la méthode et la valeur de paramètre actuellement sélectionnées seront ajoutées à tous les objets sélectionnés.
Ces balises peuvent être évaluées ultérieurement, lorsque les objets respectifs sont convertis en objets PolyMesh (par exemple, lors de l'exportation).
Depuis Ayam 1.11, le mécanisme de conversion des objets conserve les balises "TP"
intactes, de sorte que, par exemple, les paramètres de tessellation enregistrés sur une sphère ou un objet Revolve seront également préservés, et peuvent également être utilisés plus tard lorsque l'objet sera finalement converti en un objet PolyMesh (via un patch NURBS).
Si "Cancel"
est utilisé, le dialogue sera fermé et tous les objets sélectionnés resteront inchangés.
L'outil de tessellation bloquera la plupart des autres parties de Ayam pendant son exécution, c'est-à-dire qu'il n'est pas possible de modifier la sélection ou d'exécuter d'autres outils.
Il est toutefois possible de régler les paramètres de vue lorsque l'outil de tessellation est ouvert, afin d'examiner le résultat de la tessellation de plus près ou sous différents angles de vue.
Les valeurs des limites du curseur de paramètre peuvent être modifiées en entrant simplement les valeurs qui sont en dehors des limites actuelles dans le widget d'entrée respectif, puis en appuyant sur la touche <Tab>
.
La plage et la résolution du curseur seront recalculées automatiquement à partir de la valeur dans le widget d'entrée.
Les balises PV qui ne fournissent pas suffisamment de données pour la surface à tesseler seront ignorées en silence.
Les objets PolyMesh créés par cet outil ne seront pas optimisés.
La fonction de tessellation est basée sur le tessellator NURBS GLU (V1.3+).
Six méthodes d'échantillonnage sont disponibles :
"ParametricError"
garantit que la distance entre la surface tesselée et la surface d'origine n'est pas supérieure à la valeur spécifiée par "SParamU"
."PathLength"
garantit qu'aucun bord d'un polygone généré par la tessellation n'est plus long que la valeur spécifiée par "SParamU"
et la méthode de tessellation"DomainDistance"
(par défaut jusqu'à 1.22) permet simplement de paver la surface NURBS en morceaux de taille égale en ce qui concerne l'espace paramétrique ; "SParamU"
et "SParamV"
contrôlent le nombre de points de prélèvement dans la direction U et V respectivement par unité de longueur.
Cela conduit à un nombre différent d'échantillons pour des vecteurs de noeuds de différentes longueurs totales dans l'espace des paramètres."NormalizedDomainDistance"
assure que la tessellation crée le même nombre de points d'échantillonnage (comme indiqué via "SParamU"
et "SParamV"
) pour les vecteurs de noeuds de n'importe quelle longueur totale dans l'espace de paramètres[∗] et"AdaptiveDomainDistance"
ajoute en outre des points d'échantillonnage en fonction du nombre de points de contrôle (largeur ou hauteur du patch) pour permettre une meilleure adaptation aux patchs complexes.[∗]"AdaptiveKnotDistance"
normalise le nombre de points d'échantillonnage par rapport au nombre d'intervalles de noeuds et à la longueur [∗]"SParamU"
est un paramètre pour la méthode d'échantillonnage ci-dessus."AdaptiveKnotDistance"
est 3.
Des valeurs plus élevées conduisent à une meilleure qualité et à un plus grand nombre de polygones tesselés."DomainDistance"
est 8.
Des valeurs plus élevées conduisent à une meilleure qualité et à un plus grand nombre de polygones tesselés."PathLength"
est de 1.5.
Des valeurs plus petites permettent d'obtenir une meilleure qualité et un plus grand nombre de polygones tesselés."ParametricError"
est de 0.25.
Des valeurs plus petites conduisent à une meilleure qualité et à un plus grand nombre de polygones tesselés.
Notez que "SParamU"
est exprimé en unités d'espace objet pour les méthodes d'échantillonnage "PathLength"
et "ParametricError"
.
"SParamV"
est uniquement disponible pour les méthodes d'échantillonnage "DomainDistance"
, "NormalizedDomainDistance"
, et
"AdaptiveKnotDistance"
.
La valeur par défaut est égale à la valeur respective du paramètre "SParamU"
ci-dessus.
Voir aussi les deux images suivantes et les tableaux correspondants qui permettent de comparer les résultats des quatre principales méthodes d'échantillonnage avec des paramètres différents.
Method | ParametricError | PathLength | DomainDistance | AdaptiveKnotDistance |
Parameter | 0.25 | 1.5 | 8 / 8 | 3 / 3 |
Cylinder | 88 | 104 | 368 | 192 |
Sphere | 96 | 80 | 112 | 120 |
Box | 36 | 60 | 384 | 108 |
Total | 220 | 244 | 864 | 420 |
Method | ParametricError | PathLength | DomainDistance | AdaptiveKnotDistance |
Parameter | 0.125 | 0.9 | 12 / 12 | 4 / 4 |
Cylinder | 152 | 168 | 840 | 352 |
Sphere | 216 | 160 | 264 | 224 |
Box | 36 | 108 | 864 | 192 |
Total | 404 | 436 | 1968 | 768 |