Gérer procéduralement UV
Placer element par rapport au local de l'objet
- Méthode 1
Dans un attrWrangle :
vector bbx = relbbox(0, @P);
//on veut displace que en haut pour faire des stalactics
f@ramp = chramp("ramp",bbx.y);
@Cd = @ramp;
Comme alpha :
- Le noir -> rien
- Blanc -> affiche
- méthode 2
Utiliser un group avant notre bend :
cela permet de prendre tout les élément dans le tube de manière precise. On peut set la taille du groupe avec des variable pour avoir un taille plus flexible. Le group est ensuite utile car on peut le recuperer et le modifier seulement le groupe en question.
- Méthode 3
Utilisation d'un group expression
@P.y < 0
Toutes les poitn en dessous de 0 seront séléctionner.
Les Vop
Les vop permettent de faire la même chose qu'un node wrangle mais en node. (Mais le VEX c'est mieux haha). On peut plus facilement vsualiser avec VOP.
On va faire stalactics par rapport au normal de notre objet. Pour visualiser nos normal on utilise cette outil :
Si on veut inverser les normal on peut utiliser la node reverse
Faire un displacement avec des noises :
- Méthode 1
Condition en vop
Comme en Vex il est possible de faire des conditions. Exemple concret : Je veux mes particules est moins de velocité en Z :
Center element par raport a quelque chose
Nous allons utiliser les vecteur et des maths pour ça ! On va set nos 2 vecteur pour pouvoir les deux direction opposé et ensuite prendre celui du centre.
Dans un Vop si on veut importer un attribut il faut utiliser un importpointatribute (si il s'agit d'un attribut de point):
les 2 direction sont de -1 a 1 :
Ensuite on va utiliser un Dot product qui est une formule mathématique :
Explication wikipédiaCross product :
Explication wikipédiaExpression savoir le centre du pivot :
$CEX // pour X
$CEY // pour Y
$CEZ // pour Z
Houdini gestion de la caméra
Sur blender nous allons créer un path qu notre caméra va suivre :
Puis nous le settons grace a une contrainte :
Randomiser nos objets -> les attributes
Pour randomiser nos objet il faut toucher les attributs de nos objets. Pour cela on peut utiliser la node attribrandomize. Avec cette node il faudra choisir l'attibut a modifier pour l'exemple j'ai utiliser pscale. liste des attibuts : https://www.sidefx.com/docs/houdini/dopparticles/attributes.html
- Méthode 1
- Méthode 2
Pour plus d'info ->
Doc houdini : Attribute wrangleEN VEX
Biensûr la plus part du temps il existe une solution node mais il y a également la solution VEX. Donc pour cela un attribute wrangle.
- 1ere solution :
float rand = rand(@ptnum * chf("seed"));
rand = fit01(rand, chf("min"), ch("max"));
f@pscale = rand;
Creer un terrain montagne
Tuto pour la base
### VEX quelque vidéo cool
Quelque expression a retenir
Tourner un objet autour d'un objet
sin($F * 8 ) * 2
Faire en sorte que toute les 10 frames un point apparait :
$F%10==0
Convertion node
Point vers vdb
- Volume Rasterize Attributes
Lien aide Houdini
Tout simplement la doc houdini haha. Sinon vous pouvez trouver des exemple de cas ici avec des fichier exemple que vous pouvez télécharger.
https://www.tokeru.com/cgwiki/index.php?title=HoudiniDops#Emit_packed_prims_into_RBD_simIl y a également des assets library procédurale, mais malheureusement les assets sont protéger, o ne peux pas voir comment ils ont été fait.
orbolt library