Jump to content
Marcomeeuwse

finding the points for corner, u corner or straight wall placement

Recommended Posts

Hi,

Im creating a façade of a building, the lower part of the building can have indents. on these indents another model needs to be placed.

Also on the corner, a corner model needs to be placed. to specify the placement I simply use points with a copysop. These points vary

from position on the Z-axis to randomize the indents and corners.

I have made an example for just a representation of how it could look. The method used can be ignored.

I have tried to solve this issues by creating a pointVOP and setting the distance by using a constant. This didn't work. I have no idea

what I'm doing :). Another approach to solve it is to detect if a point has a neighbour by selecting it with a box. Again. I have no idea what

i'm doing. :) I hope I'm clear enough.

I hope someone can help me

thanks in advance

Model detection.hipnc

Share this post


Link to post
Share on other sites

What is it that you are trying to achieve? A procedural facade? What workflow do you seek to achieve?

 

You will need to use stamping on the copy sop to put different models on different points.

Keep in mind you can create arbitrary attributes with the attribute create SOP/ VOPs and manipulate those with VOPs. 

Share this post


Link to post
Share on other sites

sorry about that,

 

I do intend to make the entire wall,facade procedural with building blocks. Actually, every point should have stored

information so the procedure know when to place a straight wall, a left or right corner, or a U corner. Basically its a

wall with points that places models accordingly to the position of a point to others points.

 

I want to separate the ground floor with the higher floors since on those higher floors other models should be placed

than on the ground floor. But the whole facade consists out of straight pieces of walls, and corners, of which the

corners does not only exists on the most left or most right of a building. They could also occur in the centre to

have a indent.

 

I wanted to solve this by checking from every point if it has any neighbours. Has it 2 neighbours, left and right, than

a straight wall building block should be place on that point. If a point misses a point on the left, a left corner building

block should be placed. If a point misses a point on the right, a right corner building block should be place. If a point

does not have any neighbours, a U corner building block should be place.

 

Once the basic building block models are placed, I should swap them with an other type of that particular building block.

This is indeed done by using the stamp function in the copySOP. Which already kind of works for me.

 

Another issue is that I do understand(I think) how the procedural assets or tools are made, by logic and math. But I

have trouble translating this into Houdini. It gets easier but it still confuses me. Which is a reason why I am not doing

so well with VOPs.

I hope this block of text will clarify a lot of questions

Share this post


Link to post
Share on other sites

Clarifies questions but does not ask too accurately  ;)

maybe you can show a picture/mesh of what you want to achieve?

Edited by konstantin magnus

Share this post


Link to post
Share on other sites

Mathew Foscarini demonstrates how to detect corners and neighbors within fonts, in this video. You might be able to adapt the method.

Share this post


Link to post
Share on other sites

Hey Marco!

 

instead of using neighbours, you can also just do it per primitive and use the vertices (and their order)

 

that way if you check if the cross product of the normal (from the previous point) against the one (to the next point),

you can check if the corner is left/right by seeing if the cross product points upwards or downwards :)

(I did not watch Atom's video yet, but it is likely to touch on this as well)

 

also if you are translating code from stuff like stack overflow, maybe its an idea to just skip VOPS and go directly into Attrib Wrangles :P

I find that once you get used to it, its actually faster to work with, and easier to debug as well.

VOPS are still good for generating noises and such of course...

  • Like 1

Share this post


Link to post
Share on other sites

Hello @Atom!

I tried to follow the video but I can't get the results. The For Loops are different and I don't know what I should do.

Also, many nodes used on the video look different now, for example Neighbour and Import Attribute. The neighbour one asks for a file, should I just say First Input instead? Or does it automatically ignore that as soon as I plug something in? Should I use Get Attribute instead of import? I'm kind of lost, I got until the part where he creates a AddAttrib node, and can see the values either 0 or 1 assigned to each point. For me they're just all 0's. Any ideas on how to accomplish this using the newer nodes? Similarly to OP, I'd like to have a way to separate corner points into a group. I understand the principle and the math behind it, using the Dot product, but I just started learning Vex and VOP's still confuse me sometimes.

@acey195, could you elaborate on achieving this using the vertices instead? That would also interest me! I'm also experimenting with building facades and would like to optimize the placement of sub-assets, since my last effort became complicated very fast when trying to model from inside the same network, based on the prims and their attributes.

Thanks in advance, and sorry for bringing up an older thread!

edit: After a lot of struggle, I finally managed to get it working! But I still think there should be a better way of doing this, since the network I had to build inside the Attribute VOP became very large. If anyone could take a look at it and give me some advice would be really nice!

 

171102_Delete-Corners.hipnc

Edited by neblina
Issue partially resolved!

Share this post


Link to post
Share on other sites

I just found out another much, MUCH easier way of achieving this. It's so easy I'm actually mistrusting it a little, maybe someone can tell me if there are any complications in the long run?

Using the Measure SOP and setting it to Curvature, then append a new group having " @curvature>0 " as the base group. This select all the corner points in a curve or extruded prim. After just delete the selected or the non-selected, as needed.

Am I missing something?

Share this post


Link to post
Share on other sites
On 4/14/2016 at 6:26 AM, konstantin magnus said:

Clarifies questions but does not ask too accurately  ;)

maybe you can show a picture/mesh of what you want to achieve?

I just joined this forum and it really makes me upset to see stuff like this. I'm fairly new to Houdini, and I totally understand what the gentlemen is trying to do. You do as well! Sometimes I think people just say stuff like "I don't understand what you mean" because they actually don't know how to do it. He's trying to procedurally generate a building. He wants to know how to randomize (obviously corner and linear modular geometry) the components of the building. He's trying to figure out how to develop out a process to determine the difference between a corner and a linear section. What he's saying is very straight forward. He came to this forum for guidance, and it looks like some just like messing with him. Not cool at all. He conceptually has a plan, he's not asking you to build something for him, he's just looking for a little direction. That's why you left the wink emoji, just to let more experienced users know that you are messing with him. The fact that the moderator of the forum allows you to do this has just helped me decide that this is not the forum for me. It's arrogant, and you should be ashamed of yourself. 

Share this post


Link to post
Share on other sites
Posted (edited)
9 hours ago, CalypsoDevelopment said:

The fact that the moderator of the forum allows you to do this has just helped me decide that this is not the forum for me. It's arrogant, and you should be ashamed of yourself. 

This forum is not nearly as evil as you make it. I simply didn't fully understand the questioner back then.

Edited by konstantin magnus

Share this post


Link to post
Share on other sites

i can understand if ppl get put off by certain things in recent posts....

but to spend time to get annoyed over old posts ? Really ? bit of a waste of time, innit ?

Don't forget things might have been different back then, ie. someone you might see as 'expert' now might have been just an enthusiastic newcomer then...just trying to help/participate...

 

Share this post


Link to post
Share on other sites
Posted (edited)

True, but I just tried to calm down someone who is making a great fuss.

Let's please not discuss next whether I was able to select corner primitives on a building block 4 years ago. This is getting too pathetic! ; )

Edited by konstantin magnus

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

×