Nouvelle version de Houdini : 20.0.
Le 25 octobre 2023 avait lieu le Houdini 20 Hive dans le quartier de Soho à Londres. L’occasion d’en apprendre bien plus sur la dernière mais aussi la plus importante release de SideFX.
Pour l’instant on ne connait toujours pas la date exacte de la sortie d’Houdini 20. Néanmoins ce devrait être en novembre 2023.
Mise à jour du 9/11/23 :
Ça y est, la version 20 est téléchargeable sur le site officiel.
Cliquez ici pour accéder à la liste des principales features sur le site de SideFX.
Démo (5 minutes)
Retranscription du Houdini Hive (2h)
Plumes
Nouveau système pour modéliser, shaper, répartition, simulation et optimisation de plumes.
Alors que la sélection est simplifiée pour sélectionner les plumes entières, chaque plume est constituée de curves avec des points et reste modifiable comme n’importe quel mesh habituel.
La topologie est enregistrée de façon optimisée pour le GPU afin d’améliorer les performances de display en temps réel lors du grooming.
Des outils permettent de « shaper » les plumes de manière procédural ou via des brushes de façon semblable aux outils de grooming de hairs. Dans la démo on remarque que les outils de hairs sont directement utilisables sur les plumes, comme le ‘guide process‘ ou le ‘guide groom‘.
Un nouvel outil permet de créer une plume individuelle directement via des handles dans le viewport. Tout est à base de curves et d’édition de curves.
Un autre outil permet d’interpoler des formes de plumes entre deux plumes que vous auriez réalisées afin d’obtenir une collection de plumes plus rapidement. Chaque plume peut contenir des attributs de clump, de noise et d’autres qui seront eux aussi interpolés.
Un algrithme de ‘désintersection‘ accéléré via le GPU (sous entendu en OpenCL) permet de corriger les intersections de plumes de façon quasi temps réel.
Un nouvel outil de ‘texture mask’ dont je vous parle un peu plus bas car il n’est pas spécifique aux plumes.
La procédurale de plume est compatible avec tous les hydra render delegate (moteurs de rendu compatibles sur solaris)
Animation
L’animation est rendu bien plus user-friendly grâce à un environnement d’animation où la plupart des outils son accessibles directement depuis le viewport via des raccourcis. De très nombreuses fonctionnalités ont été ajoutées :
Il est possible de transformer un contrôleurs de rig en fonction du pivot d’un autre (même s’il fait parti d’un autre rig) à la volée et sans créer de contrainte, via le raccourci Ctrl + Shift + Click.
Le pose tool est grandement amélioré avec des raccourcis pour obtenir divers menu comme pour avoir une petite fenêtre avec seulement les paramètres animables ou un bouton pour réinitialiser les contrôleurs de rig sélectionnés, ou un menu radial pour la création de contraintes ou de locators ou encore la possibilité de baker l’animation sur la zone sélectionnée de la timeline.
Animation sliders : permettent de créer une clé d’animation rapidement par exemple en interpolant avec la clé précédente / suivante ou blender entre deux frames pour obtenir un slider permettant de passer d’une pose à l’autre.
Animation bookmarks : Permet d’avoir des zones de la timeline visible et de passer de l’un à l’autre
Dynamic motion : interpole les clés en simulant la dynamique nécessaire pour passer de l’un à l’autre. Générant une courbe d’animation physiquement correcte sans modifier les clés.
Editer les courbes d’animation est plus simple. Plus besoin de cliquer sur la poignée de tangente pour la modifier, simplement cliquer glisser sur la curve. Il est possible d’isoler la sélection de clés sur un channel en particulier en utilisant le raccourci ‘s‘. Modifier des clés fonctionne maintenant directement dans le temps et en valeur selon vers quel axe vous glissez la souris. (précédemment il fallait cliquer sur la clés pour modifier sa valeur ou sur la barre horizontale pour modifier son temps).
Petite précision, la plupart de ces nouveaux outils sont disponibles uniquement lorsque le rig à été conçu via APEX.
Contexte APEX et rig
APEX c’est un nouveau contexte, une nouvelle architecture où tout est enregistré sur de la géométrie. APEX pour ‘All Purpose EXecution graph‘ n’est pour l’instant disponible que pour le rig.
Les arbres de nodes sont entièrement enregistrés en géométrie même s’ils contiennent un rig, de l’animation ou quoi que ce soit. L’idée est de tout enregistrer en géométrie, comme le font les nodes de KineFX en enregistrant les transformations sur des points ou des packs. En parlant de ‘packed geometry‘, les géométries packées sont améliorées avec un système pour visualiser ce qu’elles contiennent comme un dossier avec ses fichiers. Avec APEX, le graph est enregistré en packed, mais il n’est pas calculé, ainsi avec le ‘delayed evaluation‘ seules les parties de l’arbre de nodes souhaitées sont compilées et exécutées au besoin, ce qui rend l’animation bien plus rapide à manipuler et le viewport bien plus réactif.
Les rigs générés dans ce contexte peuvent être fait via des nodes ou via des outils python directement dans le viewport.
Précédemment le rigging se faisait en contexte OBJ , et les connexions entre les nodes correspondaient à des parentages. Avec ces nouveaux outils, il est maintenant possible de visualiser en temps réel le résultat du rig, en descendant dans l’arbre de nodes en SOP. Chaque node activant des fonctionnalités supplémentaires.
APEX dispose déjà de son autorig modulaire.
Des outils en SOP permettent de convertir les contrôleurs de rig en squelette d’animation pour les ‘retargeter‘ sur une animation comme de la motion capture. Grâce aux outils d’animation, le mouvement des contrôleurs peut ensuite être baké et un animation slider permet de réduire le nombre de clés pour retrouver une animation avec quelques keyframes, sans en avoir sur toute la timeline.
Clouds / nuages
De nouveaux outils de modélisation de nuages sont disponibles.
CloudShapeGenerator permet de générer des formes de nuages en meshes à partir de sphères avec des présets par type de nuage.
CloudShapeFromIntersection permet de générer des sphères aux intersections (peut être utile pour faire des soudures)
CloudClip permet de recouper un nuage sans forcément le faire de façon parfaitement plane.
Les noises ont été repensés avec le node CloudbillowyNoise avec des overrides pour le look capable de baker une ambiant occlusion pour un rendu plus rapide et proche du scatter de la lumière.
CloudShapeFromLines pour générer des nuages sur une curve
Une skybox est disponible pour modéliser un ensemble de nuages rapidement avec de nombreux types de nuages possibles.
Karma
Karma XPU is GOLD, en clair : il est utilisable en production. De très nombreuses améliorations pour Karma.
Karma fonctionne avec de nombreux shader différents y compris lorsqu’il y a des transparences variées. Exemple avec le verre, le liquide et les glaçons.
Un nouveau système de Hex tiling permet de générer des UVs à la manière un texture bombing, c’est un concurrent du triplanar.
Un nouveau matrial X compatible karma appelé room map permet de générer une fausse perspective sur un plane (qui n’est pas forcément à 4 points, il peut être arrondi dans les angles par exemple) Cela permet de simuler la profondeur d’une pièce alors que le maillage n’est qu’un quad représentant la fenêtre. L’outil permet aussi d’ajouter des plans intermédiaires en les plaçant dans les angles de la texture.
Un outil permettant de générer ce type de map en bakant une scène 3D est aussi disponible.
Un shader de volume ambiant occlusion permet d’avoir un faux scattering de lumière accélérant le rendu des volumes.
Karma fog box disponible en XPU
Solaris
De très nombreuses améliorations pour Solaris.
Il y a enfin un material catalog. Disponible pour Karma. Il est aussi possible de se connecter aux catalogue de AMD (ce sont des materialX)
Il est possible d’obtenir des render statistiques détaillés, visualisables dans une fenetre ou exportables dans le jpg en metadata voir un html avec encore plus de détails par AOV.
Une nouvelle light le Physical sky, comme dans d’autres softs, il permet de jouer sur l’heure du jour afin d’incliner la direction de la lumière du soleil et d’en adapter la couleur.
Un nouveau node de material linker, fonctionne comme le light linker mais pour les matériaux, permettant d’appliquer un material sur toute la scène avant d’appliquer des overrides. On peut ici aussi utiliser les symboles de sélection pour rapidement appliquer un shader à un ensemble d’objets. Lors de la sélection de primitives, le résultat des expressions est maintenant visible, plus besoin de deviner si notre expression va bien sélectionner les bons éléments, on à un retour en direct.
La procédurale d’ocean est maintenant compatible avec tous les hydra render delegate (moteurs de rendu compatibles sur solaris). Le système d’ocean de houdini est donc maintenant rendable sur n’importe quel moteur sans baker de séquence de textures. (Il faudra tout de même exporter les bgeo)
Un node de prévisualisation de cette procédurale d’ocean permet de subdiviser le mesh dans le cadre de la caméra pour avoir une preview des vagues et de leur animation.
Un nouveau panneau permet le multi rendering. Le but est de pouvoir lancer plusieurs rendu en même temps. Il est donc possible de prévisualiser le rendu de la scène dans différentes caméras, mais il est aussi possible que chacun de ses rendus utilisent un arbre de nodes différent. Et donc de rendre des shots différents avec des overrides de lights, de transform ou quoi que ce soit.
Machine Learning (ML)
ONNX inference engine est intégré à Houdini. C’est un modèle de machine learning.
Vous allez pouvoir entrainer la machine à prédire des résultats.
En lui donnant deux éléments (par exemple deux images ou deux meshes que l’on appelle la source et le résutlat), la machine va les analyser et enregistrer le changement qu’il y à entre les deux.
En lui donnant une grande quantité de cas à analyser, la machine essaie de trouver le changement moyen qu’il y à entre la source et son résultat, tout en adaptant le résultat en fonction des particularités de la source. Elle est donc capable de prédire un résultat plausible sans avoir l’algorithme qui permet de passer de la source au résultat.
C’est clairement un processus utile pour les studios qui ont des taches lourdes répétitives.
Certains studios entrainent leur machine à prédire les déformations d’un mesh de personnage en fonction de contrôleurs alors qu’il n’a pas de rig ni de skin. D’autres tentent de prédire l’érosion d’un terrain sans avoir à la simuler. L’exemple de SideFX ici est la déformation du personnage via un skin + vellum, prédit par le machine learning.
Wind force shadow
Le node de force de vent a maintenant des réglages pour que les meshes projettent comme une ombre limitant son effet. Auparavant la force de vent était uniforme dans toute la scène (sauf via le noise), même derrière un objet sensé parer le vent, avec ces nouvelles options il est possible de supprimer ou d’atténuer la force du vent derrières les objets via une projection d’ombre.
Point cloud tools
Lidar : de nouveaux nodes permettent de mieux gérer les nuages de points.
Un node pour estimer les normales de la surface à partir du nuages points.
Un node pour générer la surface à partir du nuage de points, celui ci est conçu pour ne pas générer de trous, même s’il manque des points ce sera refermé en estimant au mieux la surface à produire.
Un autre pour réduire le nombre de points dans les zones plutôt planes.
Heigthfields
Le labs ajoute son lot de nouveautés pour les Heightfields.
Un système de road map pour générer des routes plausibles sur de grands terrains à partir de points (destinations qui seront reliées par des courbes évitants de monter les plus hautes montagnes).
Un système de génération de terrain à partir de zones de couleurs sur une image simple.
Une meilleure intégration des terrains dans Unreal.
Un nouvel outil d’édition de terrain à partir d’un mesh simple. L’exemple de la key note combine cet outil d’édition + un machine learning pour détailler le terrain et le nouveau texture mask paint tool.
Flip
Le flip solver était déjà arrivé dans le contexte SOP avec la version 19.5. C’est au tour du white water solver d’être intégré dans le contexte de géométrie avec un nouveau système de bulles.
De nouveaux attributs arrivent avec la simulation pour aider le calcul mais aussi à l’export pour le shading. On remarque ici la pressure, le stretch , le squish et la surface scale
Texture mask paint
Nouveau système pour peindre des maps sur un mesh sans devoir le subdiviser afin d’avoir une résolution correcte. Basé sur les UV le mesh nécessite l’attribut.
Le résultat est enregistré en volume et est disponible via la seconde sortie du node. Il est donc possible d’interroger le mask via un volume sample à base d’uv position, très pratique pour le grooming.
RBD
RBD Curved glass preset. Le node RBD material obtient un nouveau préset pour fracturer les meshes en verre incurvés. Le preset glass ne fonctionnait que pour des meshes à forme plate.
Le node RBD cone twist constraints existe maintenant aussi en SOP et à de nouvelles handles disponibles
Un HDA de RBD car rig utilisant les RBD cone twist constraint est maintenant disponible sur le store.
Edit 15/06/2024 : Le SOP node ‘RBD Car Rig’ est maintenant intégré à Houdini 20.5
Une scène de voiture dirigée par un RBD car rig sera disponible sur le site de side fx (content library)
Un nouvel outil de RBD sticky collision permet de faire en sorte qu’un RBD suive un mesh déformé lorsqu’il entre en collision avec, comme un flèche plantée dans un personnage (compatible crowd et ragdoll)
FrankenMuscles
Le système de géométrie tétraédrique pour combiner différents muscles avant de les simuler sort de sa version béta.
L’idée est de peindre sur un mesh unique (ou sur quelques meshes) un index de muscle pour que la zone peinte du maillage réagisse comme un muscle séparé qui peut être contracté sans changer les autres. C’est beaucoup plus simple que de modéliser les muscles séparés et faire attention à ce qu’ils ne s’interpénètrent pas.
La déformation de peau glissant sur les muscles à été amélioré.
Autres modeling tools
Bulles : Un nouvel outil permet de modéliser des bulles sans intersection. Le mesh se déforme pour éviter d’interpénétrer les bulles voisines. A la base pour générer des nuages, il est devenu un tool à part entière.
Vine growth, aucune image pour l’instant, mais il semble qu’il y ait un LABs tool pour simuler la poussée de vignes ou de lierre. A la façon d’un ivy tool.
Quad remeshing (beta) quelques problèmes persistent et donc il reste en béta. Néanmoins il semble fonctionner en grande partie. Le quad remesh à aussi la possibilité d’appliquer une symétrie au maillage.
TopoFlow, utilisant la même technique que le topotransfert, topoflow permet d’aller beaucoup plus vite en utilisant optical flow pour retrouver les points correspondant sur d’autres poses. Fini de retargeter les points sur différents meshes en chaine !
Crowd
La crowds est intégrée en SOP.
Un outil de motion path par agent est disponible, il permet de visualiser le chemin prévu de l’agent et est éditables directement dans le viewport. Les courbes représentant le trajet des agents s’adaptent automatiquement aux obstacles placés.
La crowd est compatible avec le RBD sticky collision tool.
Ripples solver
Le ripple solver est modifié pour fonctionner sur des mesh. Avec la version 19.5, il y avait un nouvel outil de shallow water. Celui-ci était plus comme un fluid solver utilisant les heightfields. Il à été réécrit en OpenCL pour obtenir des résultats bien plus rapides.
New OpenCL snippet
Le node d’OpenCl est simplifié et amélioré de façon plus confortable pour fonctionner plus comme le VEX avec des fonctions intégrées contournant la mise en place complexe qu’il pouvait y avoir précédemment.
Pour rappel l’OpenCL est un code très proche du VEX permettant de processer de la géométrie en utilisant la puissante du processeur graphique (GPU accéléré)
Autres notes
Les Houdini standard volumes peuvent maintenant être vectoriels ou integer (nombres entiers). Précédemment c’était réservé aux VDB
Le viewport est en train d’être réécrit en Vulkan. (le Vulkan à pour but de remplacer l’OpenGL en tirant un meilleur parti des composant informatiques modernes) Il sera disponible dans Houdini 20 mais sous forme expérimentale uniquement.
En simulation de volume, la gravité à maintenant la possibilité d’être basée sur la densité. Plus il est dense, plus il retombe vite.
Un nouvel outil du sideFX labs améliore la possibilité de faire des boucles sur des animations y compris en volumes.
De très nombreuses autres fonctionnalités arrivent, n’hésitez pas à aller voir la liste en fin de vidéo, certaines sont plus importantes pour les uns que pour les autres en fonction de vos habitudes de travail et du secteur dans lequel vous évoluez.
À propos de l’auteur