Primitifs emballés

 

Primitifs emballés

Introduction

Bon aperçu en début de cette bullet masterclass si vous préférez regarder plutôt que lire : https://vimeo.com/80840429

Les prims packagées sont un moyen de représenter beaucoup de géo par un seul point. Par exemple, prenez la tête de cochon, qui est de 2800 points, emballez-la, et maintenant c'est un seul point. Vous pourriez presque le considérer comme une transformation de forme dans maya, ou un nœud dans le réseau /obj de Houdini, mais en bas.

Pack cochon.gif

C'est pratique pour plusieurs raisons :

  • Il vous permet de manipuler plus de charges géographiques que vous ne le pourriez autrement ; Houdini ne traite qu'un seul point par paquet, donc bien que faire 50 000 copies du cochon ordinaire ralentira considérablement Houdini, il transpire à peine lorsque vous avez 50 000 cochons emballés.
  • Même pour un plus petit nombre de formes, il est plus facile de manipuler 20 points dans les sops contre 20 transformations dans le contexte /obj.
  • Mantra traite les prims emballés comme des instances, donc peut rendre plus de géo en moins de temps avec moins de mémoire
  • Les corps rigides peuvent utiliser des prims emballés , vous permettant de pousser des quantités folles de géo
  • Les packs peuvent être hiérarchiques, vous pouvez donc emballer une feuille, les mettre sur des branches, emballer la branche, mettre les branches sur des arbres, emballer l'arbre, disperser de nombreux arbres, vous obtenez des économies et une facilité d'édition en cours de route
  • Packed peut être décompressé si nécessaire (généralement mal vu, mais très bien si vous n'avez besoin que de décompresser et de modifier 2 arbres spécifiques sur 4000 arbres emballés)
  • Les fichiers d'alambic hiérarchiques sont traités comme des prims compressés, donc tout se conforme bien
  • On se concentre de plus en plus sur les outils pour éditer les prims compressées sans avoir besoin de les décompresser ; par exemple, vous pouvez affecter des matériaux à des sous-objets de prims emballés et à certaines autres propriétés de rendu.


Il existe plusieurs manières de créer des prims packagées :

  • Un sac à dos
  • Une copie, sur l'onglet tampon se trouve la bascule "Pack Geometry Before Copying"
  • Le fichier sop vous permet de charger la géo en tant que prim compressé via le menu déroulant "Charger"
  • Le sop de fusion d'objets a une option pour emballer avant de fusionner
  • L'alambic sop a plusieurs options pour le chargement comme emballé, ou emballé hiérarchiquement, ou autre
  • Le sop d'assemblage, souvent utilisé pour lier la géométrie fracturée, a une bascule "Créer une géométrie emballée"


Le sop d'assemblage peut être émulé en quelques étapes, c'est bien de savoir comment cela fonctionne sous le capot. Par exemple, si vous exécutez une fracture voronoi, voici comment convertir manuellement ces morceaux en primitives emballées :

  1. Créer un sop de connectivité en mode primitif pour identifier les îles
  2. Ajoutez un prim wrangle sop, entrez ce code : "s@name=itoa(i@class);"
  3. Ajoutez un pack sop, activez la bascule 'Name Attribute'.


Le sop de connectivité crée un attribut 'class', qui sera 0 pour tous les prims du premier îlot, 1 pour le suivant, 2 pour le suivant, etc. Le sop de pack s'attend à ce que l'identifiant unique par pack soit une chaîne, donc le vex wrangle convertit l'attribut 'class' en une chaîne et le stocke dans 'name'. Enfin, le pack sop recherche le « nom » pour faire l'emballage.

Alors que vous penseriez que vous pourriez simplement demander au pack sop de rechercher directement l'attribut 'class', il semble qu'il nécessite un attribut de chaîne, d'où l'étape intermédiaire pour passer de int à string.

Pourquoi une fonction int-to-string s'appelle-t-elle itoa() et non itos() ? Me bat.

0 Commentaires