Point Wrangle and Vex

Les nœuds Vops génèrent Vex sous le capot, le langage multithread natif de Houdini. Vous pouvez écrire des choses directement dans Vex si vous le souhaitez, et éviter complètement Vops. La syntaxe est assez simple :




@P.y = sin( @ptnum * @Frame * 0.002 );

Cela multiplie chaque id de point (@ptnum) par l’image actuelle (@Frame) et 0,002, et l’affecte à la position y de chaque point (@P.y ).


Hscript, Vops, Vex (et python), lequel utiliser? 

Contrairement au débat mel / python / pymel, ce n’est pas si clair, chacun a des avantages et des inconvénients.

Hscript correspond le plus près de mel. C’est le langage de script original de Houdini, et apparaît dans beaucoup d’endroits, en grande partie en raison de l’héritage. Les anciens tutoriels ont tendance à l’utiliser beaucoup, et je trouve sa syntaxe difficile à suivre. Parce qu’il apparaît souvent où vous pourriez écrire une expression maya (c’est-à-dire, sur un canal imable), l’édition a tendance à se sentir un peu à l’étroit, et les expressions de fin se sent comme une combinaison étrange de scripts mel et tcsh. En outre, les anciens nœuds houdini qui vous permettent uniquement de les piloter de manière procédurale avec hscript ont tendance à être monothread, donc ne vous mettez pas bien à l’échelle.

Hscript est encore beaucoup utilisé au niveau de la transformation; définir des propriétés sur les caméras, les lumières, les objets, les rops, etc., donc c’est utile là-bas, mais chaque fois que vous le voyez utilisé pour modifier des points (par exemple, avec un point sop), les sonnettes d’alarme devraient se déclenchant, et c’est probablement mieux de le remplacer par vops ou vex.


Vop et vex (querelles) sont deux vues de la même chose; vex est le langage de base, vops est une interface utilisateur de nœud pour générer du code vex sans que vous le sachiez. Vex est conçu pour être multi-thread et incroyablement rapide, il est donc idéal pour manipuler la géométrie, ou écrire des shaders, ou faire des filtres d’image ... chaque fois que vous devez exécuter le même code sur beaucoup de choses simultanément. Je ne peux pas insister assez sur la quantité de vex n’est PAS mel ou python; la seule façon de vous rapprocher de ce que vex fait en maya est d’écrire vos propres nuanceurs et déformeurs en C++.


Vops est idéal pour commencer, et même si vous vous familiarisez avec houdini, offrez un terrain de jeu glisser-déposer à expérimenter. Les réseaux vop plus grands peuvent être difficiles à suivre, et les opérations conditionnelles (si / pour / pendant) se sentent un peu inélégantes (bien que cela ait été rendu plus facile après H15).


Vex est rapide à taper et rapide à exécuter, mais bien sûr, vous devez savoir comment écrire vex, écrire vex. Être capable de faire un clic droit sur un réseau vop et de choisir « afficher le code vex » est un bon moyen d’apprendre, comme le sont les docs, vous commencez éventuellement à poivrer vos fichiers de hanche avec de jolis petits nœuds de querelle de liner 1 ou 2.


Si vous êtes à l’aise dans un autre paquet 3D, Vex devrait être assez facile à ramasser. J’ai écrit un petit guide de 20 courtes leçons, chaque leçon d’environ 20 minutes, ont lu: JoyOfVex


Vous pouvez toujours les combiner aussi; créez un réseau vop, puis créez à l’intérieur un vop de « code en ligne » et écrivez de petits morceaux de vex personnalisés à l’intérieur. Beurre et l'argent du beurre!


Python dans houdini est intéressant. En règle générale, il est utilisé comme colle de pipeline ou pour manipuler l’interface utilisateur. Si vous souhaitez créer/détruire des nœuds, lisez à partir d’une base de données d’actifs centrale, en relisant des fichiers texte ou des données curieuses de manière intéressante... typiquement des trucs pythony. Le mappage de base est assez bon, et vous pouvez piloter la plupart des choses à partir de python, mais parfois (comme avec pymel), vous devez revenir à hscript pour faire certaines choses. Rappelez-vous également que python dans houdini souffre du même problème de python ailleurs; il est conçu pour la lisibilité et l’usage général, pas pour les performances.


Cela dit, ces jours-ci, je fais très peu de python, beaucoup moins que je ne le faisais auparavant en maya. Je pense que la raison principale est que j’utiliserais python en maya pour contourner un problème d’interface utilisateur, ou pour répéter un flux de travail, ou automatiser un processus. En houdini, parce que la méthodologie de base vous oblige à penser de manière procédurale, généralement réutilisable, il y a beaucoup moins de scripts requis.


Donc je dirais vops d’abord, puis hscript, puis vex, puis python.






0 Commentaires