voxelfox Posted January 15, 2021 Share Posted January 15, 2021 (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, 2021 by voxelfox Quote Link to comment Share on other sites More sharing options...
Librarian Posted January 15, 2021 Share Posted January 15, 2021 Dive inside Labs Tree ..Bunch of Codes For those Stuff that You need I think Quote Link to comment Share on other sites More sharing options...
tamagochy Posted January 15, 2021 Share Posted January 15, 2021 You should build matrix fort static leaf and rotate this matrix by matrix from the nearest point on branch. Quote Link to comment Share on other sites More sharing options...
voxelfox Posted January 18, 2021 Author Share Posted January 18, 2021 (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, 2021 by voxelfox 1 1 Quote Link to comment Share on other sites More sharing options...
sipi Posted June 25, 2021 Share Posted June 25, 2021 On 2021. 01. 18. at 2:27 PM, voxelfox said: 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. Hello Michael! I'm very interested! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.