Jump to content
Sign in to follow this  
MitchFields

Growth Thingy Help!

Recommended Posts

Hello! This is my first post on odforce, I feel I'm finally taking a step in the right direction! I'm new to houdini only been using it for 4-5 ish months now. Anyways, just happy try and be a part of the community. Are there any other places besides the discord server that houdini people hang out at? Anyways, to the point --

 

The thing I'm having trouble with, is orienting geometry to the direction of the normal of what it's getting copied to. I've been orienting my geometry in Z and using @orient.z = @N; and @P.z = @N; to attempt it, but it's not giving me exactly what I want.

In the file, i'm using a for loop to run over each primitive and grabbing the centers, then blasting away everything but point 0, the instancing on 0. I'm using 0 because the for loop automatically sorts the points. (This is a different approach to Simon Holmedal's growth that he showed during his demo, I won't take credit.) 

Do i need another for loop inside of the one I currently have to orient the new geometry to the normal? 

I apologize if this is too vague, it's my first time posting a question, I can be more specific about things if needed.

 

I appreciate your time!

- Thanks  

triangleGrowthImage.jpg

triangleGrowth.hiplc

Share this post


Link to post
Share on other sites

Hey Mitch
Cool topic! Love the drawing!

As a general approach I would build the growth path so I get the hierarchy relations (tri25 is child of tri76) and the hierarchical distance from the start (tri45 is 13 steps away from the starting tri) which allows me to build the transforms between the tris and then control them by a gradient generated from the hierarchical distance.

I wondered about this recently because I've done something with regular hexes before. But unlike with regular polygons, where everything stacks into place neatly, with irregular ones you will have different shapes that stack weirdly and the chain of transforms they produce it's not as predictable as well. Is this going to be a field of regular triangles, or you're after applying to an arbitrary triangular surface, like for example a character? This will have an impact in the complexity of the setup, I think. I see  tetrahedrons in your file so I'm a bit confused. 

I'm not familiar with Simon's take. When I did the hexes the point was placed at the center of the rotation, i.e at the edge between hexagons; represented by those little matrix axes. In your case wouldn't it be the case you want the point also at the edge of the tetrahedron instead at the center of the face?

This video is part of a blog entry where I dumped elements of this topic. Nothing coherent or files to share, but may inspire you.  http://probiner.xyz/2017/06/20/rigging-chains-with-arrays-of-matrices/ 

Looking forward to see your progress as I also will dive into this again one day! Good luck!

Cheers

Edited by probiner

Share this post


Link to post
Share on other sites
On 9/10/2018 at 10:01 AM, vicvvsh said:

Hi Mitch

How about this approach? You only need to consider logic of growth direction.

triangleGrowth_01.hipnc

 

On 9/10/2018 at 9:30 AM, probiner said:

Hey Mitch
Cool topic! Love the drawing!

As a general approach I would build the growth path so I get the hierarchy relations (tri25 is child of tri76) and the hierarchical distance from the start (tri45 is 13 steps away from the starting tri) which allows me to build the transforms between the tris and then control them by a gradient generated from the hierarchical distance.

I wondered about this recently because I've done something with regular hexes before. But unlike with regular polygons, where everything stacks into place neatly, with irregular ones you will have different shapes that stack weirdly and the chain of transforms they produce it's not as predictable as well. Is this going to be a field of regular triangles, or you're after applying to an arbitrary triangular surface, like for example a character? This will have an impact in the complexity of the setup, I think. I see  tetrahedrons in your file so I'm a bit confused. 

I'm not familiar with Simon's take. When I did the hexes the point was placed at the center of the rotation, i.e at the edge between hexagons; represented by those little matrix axes. In your case wouldn't it be the case you want the point also at the edge of the tetrahedron instead at the center of the face?

This video is part of a blog entry where I dumped elements of this topic. Nothing coherent or files to share, but may inspire you.  http://probiner.xyz/2017/06/20/rigging-chains-with-arrays-of-matrices/ 

Looking forward to see your progress as I also will dive into this again one day! Good luck!

Cheers

I think you're right! I was attempting to copy onto the center of the primitive using it's normal to get the direction of the new copy, but I think using the previous matrices will give me more control. Instead of having to manipulate each normal. Thank you so much for a look into some of your work! It's very inspiring. I'm currently in finals week, so I might not be able to post the rework soon, but thank you so much for your help!

  • Like 1

Share this post


Link to post
Share on other sites

@vicvvsh

 This is close! There are some clipping issues that I was trying to avoid, but this setup using direction is very cool. I can probably tweak this so that there's no clipping. I appreciate it man! Thank you so much!

Edited by MitchFields

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×