Why is houdini generating so many vertices on my sphere?

   6646   13   2
User Avatar
Member
15 posts
Joined: Feb. 2016
Offline
Hello!

I was simply wondering why is Houdini generating so many vertices? Normally when I would create a similar mesh in Maya, I obtain almost 4 times less vertices and they act more like points do in Houdini. So my question is basically why does Houdini seperate points and vertices as different things, and how could I go about having vertices that are positioned more like points?

User Avatar
Staff
5161 posts
Joined: July 2005
Offline
A Vertex in Houdini is unique to a polygon. A Point can be shared between adjacent polygons. They allow for different frequencies of attributes on the geometry, so that you can put uvs or normals on vertices (allowing for discontinuities between quads, like cusps) but still have a connected mesh.

The sphere above has a single point in the middle of those vertex clusters, shared by all 4 quads. If you turn on point display (Display Options, Markers, Point Markers) you'll see a blue dot in the middle representing the point.
User Avatar
Staff
4168 posts
Joined: Sept. 2007
Offline
This graphic was super helpful for me, illustrating what twod explained:

I'm o.d.d.
User Avatar
Member
4189 posts
Joined: June 2012
Offline
Yup - I think in the exact opposite way - why don't other apps have verts, points, prims and details like Houdini does. Translating to your native language until you get fluent I guess
User Avatar
Member
15 posts
Joined: Feb. 2016
Offline
Thank you for this graphic goldleaf, this cleared up some of my confusion about attributes in general as well.

twod
A Vertex in Houdini is unique to a polygon. A Point can be shared between adjacent polygons. They allow for different frequencies of attributes on the geometry, so that you can put uvs or normals on vertices (allowing for discontinuities between quads, like cusps) but still have a connected mesh.

The sphere above has a single point in the middle of those vertex clusters, shared by all 4 quads. If you turn on point display (Display Options, Markers, Point Markers) you'll see a blue dot in the middle representing the point.

The thing that really confused me the most is when I imported this mesh inside of UE4 and made the engine display all of the vertices. The extra 3 vertices were right on top of each other at the polygons intersections so they were kind of useless in my case. Is there a way to make Houdini treat vertices more like points when exporting? Or maybe a way to retrieve the position of the points inside UE4? Is the point position information even available once imported in UE4?

Could you explain how being able to add UVs and normals on vertices can be useful? I don't understand what you mean by “allowing for discontinuities between quads” and it's hard to visualize what having cusps in the mesh quads looks like. :p

Sorry if this is a lot of questions all at once, thanks for all the information so far everybody.
User Avatar
Staff
5161 posts
Joined: July 2005
Offline
Maxime Bruneau-lavoie
Could you explain how being able to add UVs and normals on vertices can be useful? I don't understand what you mean by “allowing for discontinuities between quads” and it's hard to visualize what having cusps in the mesh quads looks like.

Sure. Take for example a cube. When you place a Box SOP down in the viewport, it looks very oddly shaded because the normals are computed on the points themselves (of which there are 8 ). This is because it's putting one normal at each point which is shared by all 3 vertices, and it gives the box a “smooth shaded” look.

If you dive inside the box object and switch “Add Vertex Normals” on, you'll see it now looks like a proper cube. This is because all the normals are now on the vertices (4/face) and the normals are unique to each face, and they're all pointing in the same direction.

Now, if you turn on “Display Normals” on the right viewport toolbar (sort of looks like a pizza cutter icon halfway down), you can see the diffference in the normals when you toggle “Add Vertex Normals” on and off. There will be 24 vertex normals drawn when it's on, and 8 point normals when it's off.

UVs can also be treated the same way - with vertex UVs, you can have a fully connected mesh with no “double points” and a clean separation between two UV islands - say, where the clothes and skin meet on a character. One polygon edge will have one set of vertex UVs, and the other polygon that shares that edge will have a different set of vertex UVs, making this clean texture separation possible.


As for exporting to UE4, I don't know much about that You may want to post that question on the Unreal Engine forum below for the Engine folks to answer.
User Avatar
Member
15 posts
Joined: Feb. 2016
Offline
twod
Maxime Bruneau-lavoie
Could you explain how being able to add UVs and normals on vertices can be useful? I don't understand what you mean by “allowing for discontinuities between quads” and it's hard to visualize what having cusps in the mesh quads looks like.

Sure. Take for example a cube. When you place a Box SOP down in the viewport, it looks very oddly shaded because the normals are computed on the points themselves (of which there are 8 ). This is because it's putting one normal at each point which is shared by all 3 vertices, and it gives the box a “smooth shaded” look.

If you dive inside the box object and switch “Add Vertex Normals” on, you'll see it now looks like a proper cube. This is because all the normals are now on the vertices (4/face) and the normals are unique to each face, and they're all pointing in the same direction.

Now, if you turn on “Display Normals” on the right viewport toolbar (sort of looks like a pizza cutter icon halfway down), you can see the diffference in the normals when you toggle “Add Vertex Normals” on and off. There will be 24 vertex normals drawn when it's on, and 8 point normals when it's off.

UVs can also be treated the same way - with vertex UVs, you can have a fully connected mesh with no “double points” and a clean separation between two UV islands - say, where the clothes and skin meet on a character. One polygon edge will have one set of vertex UVs, and the other polygon that shares that edge will have a different set of vertex UVs, making this clean texture separation possible.


As for exporting to UE4, I don't know much about that You may want to post that question on the Unreal Engine forum below for the Engine folks to answer.

Hey twod thank you for the explanation. I can clearly see the difference in shading with the vertex normals added so that does answer my initial question. That got me curious so I looked at how the vertex normals for a cube in Maya were setup, and they do indeed have 4 vertices per face as well. But why is it that Houdini needs to have a vertex for each normal, whereas Maya has the normals shared by a single vertex and obtains the same result?

Houdini:
http://imgur.com/0fZS8Nd [imgur.com]

Maya:
http://imgur.com/l6nQGfp [imgur.com]

So going from that example alone, this doesn't answer the question of why have so many more vertices. That example does explain why you need those extra normals but it doesn't explain why you need to have a vertex for each normal instead of having one vertex for 3 normals like Maya does for example.
User Avatar
Member
622 posts
Joined: Nov. 2013
Online
Maya vertex is just Houdini point, and they are same count.

In Houdini ,you can see polygon reference point (vertex) clearly. But maya hide this info. So you can't see them.
User Avatar
Member
702 posts
Joined:
Offline
I believe in your maya example, there are the same number of vertices, that actually live on top of one another, which is why you see 1 vert, but 3 normals

In houdini, the verts also live on top of one another, but the display is shown such that you can actually see that there are 3 vertices at the corners rather than obscuring the fact as is done in the maya viewport
User Avatar
Staff
5161 posts
Joined: July 2005
Offline
sidenimjay
In houdini, the verts also live on top of one another, but the display is shown such that you can actually see that there are 3 vertices at the corners rather than obscuring the fact as is done in the maya viewport

Yes, we offset all Vertex decorations into the parent polygon slightly so that you can read them and tell them apart (Vertex Markers, Normals, Numbers). In reality, all vertex markers are in the same location as the point they reference.
User Avatar
Member
15 posts
Joined: Feb. 2016
Offline
sidenimjay
I believe in your maya example, there are the same number of vertices, that actually live on top of one another, which is why you see 1 vert, but 3 normals

In houdini, the verts also live on top of one another, but the display is shown such that you can actually see that there are 3 vertices at the corners rather than obscuring the fact as is done in the maya viewport

That's what I assumed at first, but that doesn't explain why the actual vertex count is higher in Houdini compared to Maya. If Maya simply made these vertices invisible in the viewport because they're on top of each other, the vertex count would be equal.
User Avatar
Member
702 posts
Joined:
Offline
I stay out of Maya as much as possible, where are you seeing that the vertex count is lower than Houdini?

Typically in computer graphics, you need a minimum of 3 vertices for a triangle and four per quad…points can be independent or shared as twod stated
User Avatar
Member
15 posts
Joined: Feb. 2016
Offline
sidenimjay
I stay out of Maya as much as possible, where are you seeing that the vertex count is lower than Houdini?

Ignore that, I did another test today and simply made a cube in both maya and houdini and they both came out with the same amount of vertices. So it was probably a dumb mistake on my part when I was trying with different meshes. This makes a lot more sense now :p
User Avatar
Member
702 posts
Joined:
Offline
Cool! Glad it is clear for you now!
  • Quick Links