Introduction au nœud Custom Vertex 3D
Le nœud Custom Vertex 3D est un nœud avancé pour la géométrie 3D qui permet des manipulations personnalisées par sommet. Si vous avez une expérience modérée en script ou en programmation C++, vous trouverez la structure et la terminologie utilisées par ce nœud familières.
En utilisant des fonctions mathématiques de script et des tables de correspondance issues d’images, vous pouvez déplacer les positions des sommets sur la géométrie 3D. Les sommets peuvent être plus que de simples positions dans l’espace 3D ; vous pouvez manipuler les normales, les coordonnées de texture, les vecteurs et la vélocité.
Par exemple, le nœud Custom Vertex 3D peut être utilisé pour faire onduler un plan plat comme un drapeau, ou pour créer des modèles en spirale.
En plus de fournir une entrée de scène 3D et trois entrées d’image, l’inspecteur comprend jusqu’à huit champs numériques et jusqu’à huit valeurs de position XYZ provenant d’autres contrôles et paramètres dans l’arbre des nœuds.
Normals/Tangents
Après avoir manipulé des sommets à l’aide du nœud Custom Vertex 3D, vous pouvez utiliser un nœud ReplaceNormals pour recalculer les normales/tangentes.
ASTUCE : Toutes les géométries n’ont pas tous les attributs. Par exemple, la plupart des géométries de Fusion n’ont pas de couleurs de sommet, à l’exception des particules et de certains maillages FBX/Alembic importés. Aucune géométrie ne possède actuellement de coordonnées d’environnement, et seules les particules ont des vitesses. Si un attribut n’est pas présent sur la géométrie d’entrée, il est supposé avoir une valeur par défaut.
Entrées
Le nœud Custom Vertex 3D comprend quatre entrées. L’entrée de scène orange est la seule des quatre qui est requise.
— SceneInput : L’entrée de scène orange reçoit la géométrie 3D ou une scène 3D à partir de la sortie d’un nœud 3D. Il s’agit de la scène ou de la géométrie 3D manipulée par les calculs effectués dans le nœud Custom Vertex 3D.
— ImageInput1, ImageInput2, ImageInput3 : Les trois entrées d’image, utilisant les couleurs verte, magenta et bleu sarcelle, sont des entrées optionnelles qui peuvent être utilisées pour la composition.
REMARQUE : Les attributs manquants sur la géométrie d’entrée sont créés si l’expression pour un attribut n’est pas triviale. Les valeurs des attributs sont données comme indiqué ci-dessus. Par exemple, si la géométrie d’entrée n’a pas de normales, les valeurs de (nx, ny, nz) seront toujours (0,0,1). Pour changer cela, vous pouvez utiliser un nœud ReplaceNormals au préalable pour les générer.
Configuration de base du nœud
L’objet que vous souhaitez manipuler doit être connecté à l’entrée de scène orange du nœud Custom Vertex 3D. La sortie est généralement connectée à un nœud Merge 3D, l’intégrant ainsi dans une scène plus large.
Inspecteur du node Custom Vertex 3D
Onglet Vertex
Dans l’onglet Vertex, vous pouvez effectuer des calculs de sommet sur les attributs suivants : Position, Normals (normales), Vertex Color (couleur du sommet), Texture Coordinates (coordonnées de texture), Environment Coordinates (coordonnées d’environnement), UV Tangents (tangentes UV) et Velocity (vitesse).
- Position : Les sommets sont définis par trois valeurs de position XYZ dans l’espace mondial, nommées px, py, pz.
- Normals : Les normales définissent la direction vers laquelle le sommet pointe en tant que vecteur, avec les composantes nx, ny, nz.
- Vertex Color : La couleur du sommet est définie par les valeurs de Rouge (vcr), Vert (vcg), Bleu (vcb), et Alpha (vca).
Onglet Numbers
Numbers 1-8
Les Numbers 1-8 sont des variables avec un contrôle par molette qui peuvent être animées ou connectées à des modificateurs, tout comme n’importe quel autre contrôle. Ces nombres peuvent être utilisés dans des équations appliquées aux sommets à l’instant présent : n1, n2, n3, n4, etc., ou à n’importe quel moment : n1_at(float t), n2_at(float t), n3_at(float t), n4_at(float t), où t représente le moment souhaité. Les valeurs de ces contrôles sont accessibles aux expressions dans les onglets Setup et Intermediate.
Les Numbers peuvent être renommés et masqués du visualiseur en utilisant l’onglet Config.
L’onglet Points du noeud Custom Vertex 3D
Points 1-8
Les contrôles Points 1-8 représentent des points dans l’outil Custom Vertex 3D, et non les sommets eux-mêmes. Ces huit contrôles de points incluent des contrôles de position 3D en X, Y, Z pour positionner les points à l’instant présent : (p1x, p1y, p1z, p2x, p2y, p2z) ou à n’importe quel moment : p1x_at(float t), p1y_at(float t), p1z_at(float t), p2x_at(float t), p2y_at(float t), p2z_at(float t), où t représente le moment souhaité. Par exemple, vous pouvez utiliser un point pour définir une position dans l’espace 3D autour de laquelle faire tourner les sommets.
Ils peuvent être renommés et masqués du visualiseur en utilisant l’onglet Config. Ce sont des contrôles de position normaux et ils peuvent être animés ou connectés à des modificateurs comme n’importe quel autre nœud.
L’onglet LUT
LUTs 1-4
LUTs 1-4
Le nœud Custom Vertex 3D fournit quatre splines LUT (Look-Up Table). Une LUT est une table de correspondance qui renvoie une valeur en fonction de la hauteur de la spline LUT. Par exemple, vous pouvez utiliser les fonctions getlut1(float x), getlut2(float x),… où x = 0 … 1 pour accéder aux valeurs de la LUT.
Les valeurs de ces contrôles sont accessibles aux expressions dans les onglets Setup et Intermediate en utilisant la fonction getlut#. Par exemple, en définissant les expressions R, G, B et A sur getlut1(r1), getlut2(g1), getlut3(b1), et getlut4(a1) respectivement, le nœud Custom Vertex 3D imiterait le nœud Color Curves.
Ces contrôles peuvent être renommés en utilisant les options de l’onglet Config pour rendre leur signification plus évidente, mais les expressions continueront à voir les valeurs comme lut1, lut2,…lut8.
Onglet Setup
Setups 1-8
Jusqu’à huit expressions distinctes peuvent être calculées dans l’onglet Setup du nœud Custom Vertex 3D. Les expressions dans Setup sont évaluées une fois par image, avant que d’autres calculs ne soient effectués. Les résultats sont ensuite disponibles pour les autres expressions dans le nœud sous forme de variables s1, s2, s3, et s4. Considérez-les comme des scripts de configuration globaux qui peuvent être référencés par les scripts intermédiaires et les scripts de canal pour chaque sommet.
Par exemple, les scripts Setup peuvent être utilisés pour transformer un sommet de l’espace modèle à l’espace monde.
REMARQUE : Étant donné que ces expressions sont évaluées une seule fois par image et non pour chaque pixel, il n’est pas pertinent d’utiliser des variables par pixel comme X et Y ou des variables de canal comme r1, g1, b1, etc. Les valeurs autorisées incluent des constantes, des variables comme n1…n8, time, W et H, ainsi que des fonctions comme sin() ou getr1d().
Onglet Intermediate
Intermediates 1-8
Huit expressions supplémentaires peuvent être calculées dans l’onglet Intermediate. Les expressions Intermediate sont évaluées une fois par sommet, après l’évaluation des expressions Setup. Les résultats sont disponibles sous forme de variables i1, i2, i3, i4, i5, i6, i7, i8, qui peuvent être référencées par les scripts de canal. Considérez-les comme des scripts de configuration “par sommet”.
Par exemple, vous pouvez exécuter le script pour produire le nouveau sommet (c’est-à-dire une nouvelle position, normale, tangente, UVs, etc.) ou pour transformer de l’espace monde à l’espace modèle.
Onglet Config
Random Seed
Utilisez cette option pour définir la graine aléatoire pour les fonctions rand() et rands(). Cliquez sur le bouton Reseed pour définir la graine sur une valeur aléatoire. Ce contrôle peut être nécessaire si plusieurs nœuds Custom Vertex 3D sont requis avec des résultats aléatoires différents pour chacun.
Contrôles des Nombres (Number Controls)
Il y a huit ensembles de contrôles de nombres, correspondant aux huit curseurs dans l’onglet Numbers. Désactivez la case à cocher Show Number pour masquer le curseur de nombre correspondant, ou modifiez le champ texte Name for Number pour changer son nom.
Contrôles des Points (Point Controls)
Il y a huit ensembles de contrôles de points, correspondant aux huit contrôles dans l’onglet Points. Désactivez la case à cocher Show Point pour masquer le contrôle de point correspondant et son réticule dans le visualiseur. De même, modifiez le champ texte Name for Point pour changer le nom du contrôle.
Contrôles communs (Common Controls)
Les contrôles de l’onglet Settings sont communs à de nombreux nœuds 3D, et leurs descriptions peuvent être trouvées dans la section “Contrôles communs” à la fin de ce chapitre.