voxelfox 3 Posted January 15 (edited) Hello all, I have a built a rig that allows for the dynamic simulation of trees. I was able to define an instance point which is offset from the trees branches. This enables the copying of a packed leaf primitive onto the point. The next step is to update the rotation of the packed primitive. It seems like the copy to points has defaulted to using the z-axis (vector pointing in the {0,0,1} direction). The tree includes a central wire which captures the deformation as it moves through space. I have been able to construct a normal by using the following logic: Using a leaf point find the closest point of the wire compare point positions (@P{leaf point} - @P{wire point}) normalizing the compared vector and setting an @N attribute VEX CODE However, when using this @N (normal) on the copy to point the leaf geometry picks up this @N (built above in vex) and discards the desired z-axis vector of {0,0,1}. Here is a diagram demonstrating the results. Figure 1 - This is the result of the vex code written above (visualized left), notice when using the vex code normal the leaf is unable to correctly orient itself to the point (visualized right). The custom vex code normal is required to guide the orientation and the tree deforms. This is shown in the following .gif animation. Figure 2 - A .gif animation demonstrating the updating normal as the tree deforms I have also tried adding an @up vector to see if that resolves the issue, however, that route is also producing me undesirable results. I have though about using some form of quaternion or rotational matrix, however, I am currently studying these linear algebra concepts and I need time and guidance before fully understanding how to apply the knowledge in Houdini. Could someone please offer guidance in this regard. I am working on supplementary .hip file which should be posted shortly. Warm regards, Kimber Edited January 15 by voxelfox Share this post Link to post Share on other sites
Librarian 574 Posted January 15 Dive inside Labs Tree ..Bunch of Codes For those Stuff that You need I think Share this post Link to post Share on other sites
tamagochy 61 Posted January 15 You should build matrix fort static leaf and rotate this matrix by matrix from the nearest point on branch. Share this post Link to post Share on other sites
voxelfox 3 Posted January 18 (edited) Hello @tamagochy Would you mind explaining this in more detail? What are the steps one should take to build the matrices and rotate the leaf instance in accordance with the deforming geometry? Edit: Not a problem. I've figured it out! I'll post an update with my results for anyone who's interested or needs this as a reference for their own setups. Edited January 18 by voxelfox 1 Share this post Link to post Share on other sites