Jump to content

How to get sharpness on these edges using creases? (pic)


magneto

Recommended Posts

I want to set the crease on the green edges as highlighted in the image, but as groups Crease SOP only accepts primitive groups, which is shown highlighted on the left. But when I set the crease attribute for these to 2, then the rendering as shown below. I only want sharpness in the green edges, not on the sides as shown using arrows.

Is this possible using creases and Mantra's polygons as subdivision option? Or is adding additional detail (i.e. PolyBevel) the only way?

Thanks.

Abow6.png

Link to comment
Share on other sites

Despite your mentioning you'd rather not, I suspect you'll need to add those extra edge loops in close proximity to the edges you'd like to keep sharp. That is the method used in other software packages to counterbalance the smoothing effect of subDs and retain desired edge crispness, and I don't imagine Houdini's subD algorithms are that much different than what they are using (i.e it's a common problem with a common solution). Peter Quint regularly fields questions posted to his videos as well, so it might be worth asking for his take on it as well

Link to comment
Share on other sites

Thanks, I know what you mean. In other software packages, I also use the method of adding extra detail, but since I never used a software that has render-time subds, I am wondering if there is a way to solve this via creases and rendering. If crease data was stored in edges, this would be possible for instance, but it seems like it's stored per vertex. Maybe someone experienced in this, might have a way to solve this.

Link to comment
Share on other sites

I used the Crease SOP a couple of times and it works really well with edges too. You have to select those edges explicitly in the viewport and add the Crease SOP from within the viewport to make it work. Unfortunately the Crease SOP is not edge aware by itself and reselect for current tool does not work as expected. I'm always creating an Polybevel SOP (or any SOP that uses the weird syntax for edge selection) and do my edge selection there and reference its group parameter inside the Crease SOP.

In your case I would however also tend to use real geometry to sharpen those edges. It gets cleaner and more predictable results. I tend to use creasing when I want smooth transitions from hard to soft edges where its hard to create a nice egdeflow for newly introduced geometry.

-dennis

crease.hip

Edited by dennis.weil
  • Like 1
Link to comment
Share on other sites

Thanks, I know what you mean. In other software packages, I also use the method of adding extra detail, but since I never used a software that has render-time subds, I am wondering if there is a way to solve this via creases and rendering. If crease data was stored in edges, this would be possible for instance, but it seems like it's stored per vertex. Maybe someone experienced in this, might have a way to solve this.

See example. The accuracy it rather limited though. Note also, that Mantra rendertime subdivision needs some consideration in use. For example it renders much slower than polygons, it take much more memory, it ruins any instancing optimization. These days almost always subdividing a mesh in Sops works better, as computer can handle dense meshes pretty well. Rendertime subdivision works nice in character pipelines, when you have a dense mesh still not enough good for rendering. For things like screws may be not as useful :)

crease_example.hipnc

  • Like 1
Link to comment
Share on other sites

Do you need to select these edges procedurally?

If so, I've been using this asset. It will create a string of edge loops "0e1 0e2 0e3". etc. etc. and assign it to a detail attribute. I usually just copy/ref the parameter to where I need it.

It's been one of those very handy assets I use all the time. You can also use a mask to exclude edges you don't need.

I didn't make it. Downloaded it from somewhere.

edge_group.otl

  • Like 1
Link to comment
Share on other sites

Hey Hopbin, actually I do. So you create many of these as details attributes, one for each edge selection?

I wish Houdini supported edges as first class types though.

I was trying to select edges based on an angle procedurally using the Group SOP, but couldn't do it.

Do you know of a way to do that? Say selecting all edges that are shared by polys with an angle of 90+ degree? This would make it very useful for creasing at rendertime.

Edited by magneto
Link to comment
Share on other sites

Thanks, I just thought it stores your edge selection, not select them based on angle.

Also do you know if there is a way to do it using the built-in operators? I ask this because the Group SOP has an Edge tab but I couldn't get anything using the angle values there :)

Link to comment
Share on other sites

The Group SOP will not select edges, cause you can not store the 0e1 0e2 0e3 selection pattern as a group.

The EdgeGroup SOP uses the built in operators, but it just generates a string. You can then use that string in the Group parameter of other nodes. Which tricks them into thinking you made a manual selection.

I'd like to have other group features. Like grouping points by number of connected edges. Grouping polygons by number of edges. Growing groups outwards or in, and getting the edges around a group of primitives. Got to put that on my xtools want list.

Link to comment
Share on other sites

Thanks I will have to inspect that then. I am not sure how it tricks them though. If it uses the same string as 0e1 0e2 0e3, then edge storing is supported? Also does it work for all SOPs? I remember a lot of SOPs limiting their input, to points or prims, so even selecting what you want seem to get converted.

For instance the Edit SOP, if I move a single primitive that has 50 points, it will store that in the group field, instead of my primitive, which actually makes things hard, because if I want to reselect that primitive after changing the topology, I want to be able to type the index of that primitive and have the same transformation applied to it.

I wonder if H12 will have true edge support. I don't think so though because if it did, it would be in the H12 newsletter :)

But if that isn't done when the geometry engine is rewritten from scratch, I can't think of a more drastic change to make this happen :rolleyes:

  • Like 2
Link to comment
Share on other sites

Yea, I to wish they would add true edge support. Not only for grouping, but for storing attributes as well. It would also be nice to have functions like nedges() which tells you have many edges a polygon has. I'd also like to easily get the normal for and edge (based upon the shared polygons). I'd also like to edge select from hscript/hython or slide that selection.

hmmm...

I just had an idea. I'm going to go try something in Houdini. If it works. I might have a solution for working with edges.

Link to comment
Share on other sites

Yeah I want true edge support everywhere. I mean just because Sidefx excluded them years ago doesn't mean they should stick to it forever. Given Houdini's unique proceduralism, allowing edges will make the software infinitely more powerful. Not to mention the bulk of the subd/poly modeling tools lie with the realm of edges.

I don't see a reason why Houdini can't beat the best poly modelers out there. I use it, and it works fine but very limited because of limited edge support. With it, I think it could be right at the top.

Link to comment
Share on other sites

I asked this before but I wish we had this:

http://3dsmaxfeedback.autodesk.com/forums/76763-publicsmallannoyingthings

I don't know if anyone noticed but after this Max did fix some annoying issues, such as impractical defaults, etc.

The advantage also would be to be able to see all the requests publicly. But right now you have to ask for it, and then someone can say that there is already an RFE for this.

Also commenting about the use cases, etc would be beneficial.

Would Odforce users be interested in such a thing? It could be hosted by Odforce or someone like Hopbin can take the lead :D

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...