Je trouve la résolution trop faible, augmentons la valeur Level du noeud Subdivision Surface à 3.Pour voir les wireframes même en mode solide, c’est dans les Overlays.
☝🏼
Pour voir le wireframe même en mode solide ou weight paint, c’est dans les Overlays
Finalement, on va stocker (donc noeud Store Named Attribute) la position (donc noeud Position) avant simulation de tous les Vertex du mesh dans une nouvelle variable qu’ont va appeler “Repos”.
☝🏼
J’aime bien nommer mes variables en français pour être certain de ne pas entrer en conflit avec des noms de variables déjà existants dans Blender, puisque les variables on une porté globale.
La position “Repos” du mesh va nous aider à calculer la collision avec le Wireframe qu’on va créer à la prochaine étape. Z’allez voir.
Renommer notre Geo Node “Avant Simulation”.
☝🏼
Si votre Geo Node est épinglé, vous ne pourrez pas changer son nom dans le workspace Geo nodes, mais vous pouvez le faire dans le Geo Nodes Modifier.
- Voici le système de Geo Nodes jusqu’à maintenant, où j’ai corrigé le Store Named Attribute nommé repos, la valeur stockée est un vecteur et non pas un float puisqu’on stocke la position de chaque vertex du PinGroup:
☝🏼
Notez qu’on voit la valeur maintenant des store Named Attributes dans le Spreadsheet, ça ça aide beaucoup!
Le but ici, c’est de créer un mesh à partir des vertex du pin group. Ça tombe bien, c’est ce que Face Group Boundaries nous donne!
Avec l’objet sélectionnée (Il s’appelle Cube, vous vous rappelez?), dans le viewport, faites Shift-D pour le dupliquer.
Faites enter pour ne pas déplacer le nouvel objet (qui se nomme Cube.001). C’est ce dernier qui est maintenant sélectionné.
Cliquer sur le chiffre 2 à côté du nom du geo node (”Avant Simulation”) pour que ce ne soit pas un seul système utilisé deux fois (par les deux objets) mais pour que notre nouvel objet utilise son propre système de Geo Nodes basé sur le premier.
☝🏼
Dans l’image, c’est Vector et non pas Float qu’on devrait lire sur le noeud Store Named Attribute nommé “Repos”.
Donc mettez ce noeud à Vector au lieu de Float!
Renommer le nouveau système de Geo Nodes à “Wireframe”.
Dans ce nouveau système de geo nodes sur le nouvel objet (Cube.001), on va effacer les deux Store Named Attributes, on n’en a pas besoin ici.
L’idée maintenant, c’est de créer un mesh à partir du Face Group Boundaries, qui sont, rappelons-le, les Vertex du Pin Group.
Ajouter un Mesh to Curve juste avant le group output; ça va convertir le maillage (mesh) du deuxième cube en courbe. Pour la sélection, on ne va choisir que les bords des îlots, i.e. la sortie de Face Group Boundaries.
Si on “Hide” le premier objet (Cube), on va voir le résultat. On a maintenant des Curves qui correspondent aux bords des îlots.
On va maintenant convertir les courbes en Mesh (Noeud Curve to Mesh) sur lequel on va appliquer un Subdivision Surface de niveau 2.
Ensuite, un truc pour adoucir la forme, c’est de contrôler la position des vecteurs de ce mesh avec la fonction Blur Attribute avec une itération assez élevées (genre 150).
☝🏼
Je vous avais dit que c’était puissant les geo nodes.
P.S.: si vous cliquez droit sur un noeud, un menu “Online Manual” va apparaître. Allez voir le noeud Blur Attribute, qui “smooths attribute values between neighbouring gemetry elements; the goal of each step being the mixing of the values of each element with its neighbours.”.P.P.S.: Ce n’est pas important que les mesh ne se touchent pas. Ce wireframe ne sert pas de Vertex Pin Group (ça c’est le rôle justement de la variable PinGroup qu’on alimente dans le premier système de geo nodes).
Après moultes essais et erreurs, on a réalisé qu’on avait besoin de faire un “remesh topology”.
Une manière de le faire, c’est de convertir le mesh en points, les points en volume et le volume en mesh avec les bons paramètres pour la partie cruciale qui est le Points to Volume (ici Voxel amount à 256 et radius à 0.05.)
On va finalement et derechef adoucir la géométrie avec le noeud Blur Attribute, mais avec moins d’itérations cette fois-ci (e.g. 75).
☝🏼
Notez au passage cette manière de créer une structure complexe qu’il serait assez difficile à modéliser de manière traditionnelle.
Allez, faites “Play”. C’est beau, avouez!
Unhide du Cube.
Renommer “Cube.001” à “Collision” et “Cube” à “Coussin”. On va se servir du mesh Collision, plus tard, pour corriger la collision du Coussin.
Passer au Workspace Layout.
Assurez-vous d’être au Frame 1 dans la Timeline.
Avec l’objet Coussin sélectionné, aller dans les propriétés Physics et choisir Cloth.
Choisir le Preset “Silk”.
Réduire les valeurs de “Damping” à 0 et ajuster toutes les valeurs de Stiffness à 1, mais laisser Bending à 0.5.
Cela va donner un feel très “léger” au tissu, comme s’il était fait de papier.
☝🏼
Right-click sur un input et choisir Online Manual 🙂 ou refaire les cours sur la simulation de tissu dans la section Techart 2 😇
Désactiver la gravité également (valeur 0 à Gravity dans Fields Weights). Sinon, notre coussin va se mettre à tomber tant qu’il n’a pas de pin groups.
Maintenant, tout le but en était un de gonflette, alors activons la pression, avec une “Pressure” de 10 atmosphères.
Dans Shape, choisir le Pin Group “PinGroup”.
Ajuster le Shrinking Factor à -0.25, ça donne un coussin mieux froissé.
Cachez l’objet “Collision” et faire “Play” rien qu’un peu 🙂
☝🏼
Notez que “Play” tente de calculer la simulation en temps réel. Les résultats peuvent être très bizarres tout dépendant de votre RAM et puissance CPU.
Activons le Self-Collision avec une bonne précision (Distance à sa valeur minimale, i.e. 0.001) pour améliorer la simulation et empêche l’objet d’entrer en collision avec lui-même.
Revenir au Frame 1, aller dans la section Cache et faire Bake (des 250 frames si votre CPU est assez puissant, sinon baissez à 100 frames et ajuster aussi le End frame dans le Timeline à 100).
☝🏼
Pour le rendu final, dans les Simulation Nodes de l’objet Coussin, vous pouvez augmenter le niveau de Subdivision Surface à 4 au lieu de 3 et refaire Bake à partir du Frame 1.
Ça dépend de votre CPU. Si votre Frame Rate baisse trop lors du Play, ajuster le niveau de Subdivisions. L’idée, c’est que seulement à a la toute fin, quand on est prêt à faire un rendu final, on augmente les valeurs pour un résultat plus précis.
















