Point Wrangle et Vex

 

Point Wrangle et Vex

Point wrangle.jpg

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 les Vops. La syntaxe est assez simple :

@P . _ y = sin ( @ ptnum * @ Frame * 0,002 );        


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

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

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

Hscript cartographie le plus proche de mel. C'est le langage de script original de Houdini, et apparaît dans de nombreux 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 là où vous pourriez écrire une expression maya (c'est-à-dire sur un canal animable), l'édition a tendance à se sentir un peu à l'étroit, et les expressions de fin ressemblent à une étrange combinaison de scripts mel et tcsh. De plus, les nœuds houdini plus anciens qui ne vous permettent de les piloter de manière procédurale qu'avec hscript ont tendance à être à un seul thread, donc ne s'adaptent pas bien.

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 cordes, 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éclencher et il est probablement préférable de le remplacer avec 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 multithread et incroyablement rapide, il est donc idéal pour manipuler la géométrie, écrire des shaders ou créer des filtres d'image... chaque fois que vous avez besoin d'exécuter le même code sur beaucoup de choses simultanément. Je ne saurais trop insister sur le fait que vex n'est PAS mel ou python ; la seule façon de se rapprocher de ce que fait vex dans maya est d'écrire vos propres shaders et déformateurs en C++.

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

Vex est rapide à taper et à exécuter, mais bien sûr, vous devez savoir comment écrire vex, pour écrire vex. Pouvoir faire un clic droit sur un réseau vop et choisir "afficher le code vex" est un bon moyen d'apprendre, tout comme les docs, éventuellement vous commencez à parsemer vos fichiers hip avec de jolis petits nœuds de 1 ou 2 lignes.

Si vous êtes à l'aise dans un autre package 3D, alors Vex devrait être assez facile à prendre en main. J'ai écrit un petit guide de 20 leçons courtes, 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 "code en ligne" et écrivez de petits morceaux de vex personnalisés à l'intérieur. Le meilleur des deux mondes!

Python dans Houdini est intéressant. D'une manière générale, il est utilisé comme colle de pipeline ou pour manipuler l'interface utilisateur. Si vous voulez créer/détruire des nœuds, lisez à partir d'une base de données d'actifs centrale, analysez des fichiers texte ou des données curieuses de manière intéressante... généralement 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 que python ailleurs; il est conçu pour la lisibilité et l'usage général, pas pour la performance.

Cela dit, ces jours-ci, je fais très peu de python, beaucoup moins qu'avant dans maya. Je pense que la raison principale est que j'utiliserais python dans maya pour contourner un problème d'interface utilisateur, répéter un flux de travail ou automatiser un processus. Dans 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 d'abord vops, puis hscript, puis vex, puis python.

0 Commentaires